Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro irgendwie ..

Makro irgendwie ..
05.11.2005 17:17:53
Walter
Hallo Guten Abend,
habe folgendes Makro:
'--------------- Vorrats Nr. -------------------------------------------

Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If IsNumeric(TextBox3) = False And TextBox3 <> "" Then
MsgBox " Sie dürfen nur Ziffern eingeben", _
vbCritical, "Error !!!"
TextBox3 = Left(TextBox3, Len(TextBox3) - 1)
TextBox3 = ""
TextBox3.SetFocus
With TextBox3
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End Sub

Wenn ich die Zeile: TextBox3 = "" mit dem Format:TextBox3 = "0 000 00000"
formatiere, kommt Fehlermeldung, bzw. der Courser kommt auch nicht auf die Textbox3.
Ich hatte vorher das Format "0,00" hatte mir das einfach kopiert und läuft auch so, leider nicht.
Vielleicht hat jemand eine Idee,
gruß Walter

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro irgendwie ..
05.11.2005 18:03:01
Ramses
Hallo
du kannst einer Textbox kein Format zuweisen.
Ausserdem sind die Zeilen
TextBox3 = ""
TextBox3.SetFocus
überflüssig.
Mit der ersten Zeile löscht du den Inhalt der Textbox wieder komplett,.. dann wäre die Zeile
TextBox3 = Left(TextBox3, Len(TextBox3) - 1)
überflüssig.
SetFocus ist ebenfalls überflüssig, weil du ja schon in der Textbox bist
Das ist ausreichend
Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If IsNumeric(TextBox3) = False And TextBox3 <> "" Then
        MsgBox " Sie dürfen nur Ziffern eingeben", _
            vbCritical, "Error !!!"
        TextBox3 = Left(TextBox3, Len(TextBox3) - 1)
    End If
End Sub

Gruss Rainer
Anzeige
Habe ich gemacht aber...
05.11.2005 18:51:25
Walter
Hallo Rainer,
habe ich gemacht.
Wenn gelöscht wurde ist dann keine Format da, wenn es halt nicht geht na ja.
Habe allerdings gerade gestgestllt, wenn ich von der Textbox1 bis zur Textbox6 mit TAB
gehen will, bleibt der Courser bei der Textbox3 stehen, die Fehlermeldung kommt, und
die letzte Ziffer wird gelöscht.
Hier beide Makros:

Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If IsNumeric(TextBox3) = False And TextBox3 <> "" Then
MsgBox " Sie dürfen nur Ziffern eingeben", _
vbCritical, "Error !!!"
TextBox3 = Left(TextBox3, Len(TextBox3) - 1)
End If
End Sub


Private Sub TextBox3_AfterUpdate()
Worksheets("Muster").Range("a15") = Format(TextBox3, ("00 000 00000"))
TextBox3 = Format(Worksheets("Muster").Range("a15").Value,("00 000 00000"))
End Sub

Vielleicht kannst Du mir einen Tip geben,
Walter
Anzeige
AW: ... und noch ein Thread?
05.11.2005 19:21:24
Erich
Hallo Walter,
wie viele Leute willst du in wie vielen Threads noch mit immer dem selben Problembereich beschäftigen?
War der Vorschlag in https://www.herber.de/forum/messages/691800.html doch nicht gut genug? Dazu hast du geschrieben:

erst einmal herzlichen Dank für die Mühe, das war schon eine Menge Infos von DIR.
Natürlich habe ich dein Infos alle gelesen.
Wollte eine Einfache Lösung, das oben stehende Makro ist genau das was ich brauche.
Funktioniert auch.
Darf ich denoch eine Frage stellen ?
Wenn ja: Gibt es die Möglichkeit das man die Textbox nicht verlassen kann, bis man ein
RICHTIGES Datum eingesetzt hat ?
Hier jetzt beide Makros, wie gesagt funktionieren:
Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (Chr(KeyAscii) Like "[-0-9]") Then
MsgBox "Bitte nur Ziffern 0 bis 9 oder das Minuszeichen eingeben!", _
vbCritical, "Error !!!"
KeyAscii = 0
End If
End Sub
usw...

Ich halt mich da künftig raus - und dabei bin ich gar nicht müde...
(vgl. https://www.herber.de/forum/messages/691999.html )
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Mein Gott, Walter...
05.11.2005 21:05:40
HansH
ist das vielleicht Mike Krüger?
AW: Makro irgendwie ..
05.11.2005 18:04:30
Luschi
Hallo Walter,
wenn Du ereichen willst, daß nur bestimmte Tasten in der Textbox gedrückt erden dürfen, dann schau Dir mal folgenden Beitrag an:
https://www.herber.de/forum/messages/691775.html
Gruß von Luschi
aus klein-Paris
AW: Makro irgendwie ..
05.11.2005 18:32:45
Walter
Hallo Luschi,
nein das möchte ich nicht.
Ich wollt eigentlich nach der Fehlermeldung das die Textbox den Focushat und
das Format: "00 000 00000" zeigt.
Gruß Walter
AW: Makro irgendwie ..
05.11.2005 21:09:21
Luschi
Hallo Walter,
der Fehler tritt erst auf, nachdem man mit der Enter-Taste die Eingabe abgeschlossen hat. Nun ist es aber im Formular nur mit erhöhtem Aufwand möglich, in die selbe Textbox den Focus zurückzusetzen, die man soeben per Enter verlassen hat!
Statt dessen solten man alles unternehmen, ungültige Zeichen erst garnicht zuzulassen.
Man kann während der Eingabe überprüfen, an welcher Stelle welches Zeichen erlaubt ist.
Da Du aber etwas ganz Anderes willst, nämlich erst jedes Zeichen an jeder Stelle zulassen, dann mit einer Meldungsbox rumzumeckern, wenn die Eingabe falsch ist, denke ich, Du solltest noch mal ein bischen Theorie in Fornular-Vba zu pauken.
Für mich ist die Beantwortung dieses Threads damit beendet.
Gruß von Luschi
aus klein-Paris
Anzeige
Hallo Luschi, bitte...
06.11.2005 11:02:29
Walter
Guten Morgen Luschi,
da ich kein Profi bin und Theorie sicherlich noch viel Zeit in Anspruch nimmt,
habe ich die Bitte, gib mir doch ein Beispiel, damit ich es für mein Makro "hinfummeln kann".
Deine Aussage: Man kann während der Eingabe überprüfen, an welcher Stelle
welches Zeichen erlaubt ist.
Ich brauch ja nur die Möglichkeit des Leerzeichens also "00 000 00000" nach den den 2 Nullen soll das Leerzeichen "Freigegeben" werden können und nach den 3 Nullen.
Also NUR Zahlen sonst erlaubt.
Wenn dann ein Buchstabe eingegeben wird, soll die MSGBOX kommen.
Vielleicht kannst Du mir noch einen Tip geben , wenn nicht muß ich
sehen wie ich das geregelt bekomme.
Gruß Walter
Anzeige
AW: Hallo Luschi, bitte...
06.11.2005 18:04:47
Luschi
Hallo Walter,
hier ist meine Lösung:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim i1 As Integer, s0 As String, s() As String, s2 As String
'Eingabemuster "00 000 00000"
s1 = Me.TextBox1.Text
n = Len(s1)
Select Case n
'0 bedeutet, daß geprüft wird, ob gerade das 1. Zeichen in _
die Textbox eingegeben wird usw.
Case 0, 1, 3 To 5, 7 To 11
'nur Zahlen von 0 bis 9 erlaubt
If Not (Chr(KeyAscii) Like "[0-9]") Then
KeyAscii = 0
End If
Case 2, 6
'nur Lehrzeichen an der 3. und 6. Stelle erlaubt
If Not (Chr(KeyAscii) Like "[ ]") Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
gebe bescheid
06.11.2005 19:03:04
Walter
Hallo Luschi,
gebe nachher bescheid, schau Fußball..
gruß walter
AW: Hallo Luschi, bitte...
07.11.2005 20:05:20
Walter
Guten Abend Luschi,
habe das Makro so reinkopiert, leider gar keine Reaktion.
gruß walter
AW: Hallo Luschi, bitte...
Luschi
Hallo Walter,
welchen Namen hat denn die Textbox. Bei mir heißt sie TextBox1. Siehe 1. zeile der Prozedur. Eventuell mußt Du hier den Namen anpassen.
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Gruß von Luschi
aus klein-Paris
AW: Hallo Luschi, bitte...
07.11.2005 22:14:09
Walter
Hallo Luschi,
anbei dein kopiertes Makro, auf Textbo3 geändert.
Dim i1 und s() finde ich im Makro nicht wieder ?

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim i1 As Integer, s0 As String, s() As String, s2 As String
'Eingabemuster "00 000 00000"
s1 = Me.TextBox3.Text
n = Len(s1)
Select Case n
'0 bedeutet, daß geprüft wird, ob gerade das 1. Zeichen in _
die Textbox eingegeben wird usw.
Case 0, 1, 3 To 5, 7 To 11
'nur Zahlen von 0 bis 9 erlaubt
If Not (Chr(KeyAscii) Like "[0-9]") Then
KeyAscii = 0
End If
Case 2, 6
'nur Lehrzeichen an der 3. und 6. Stelle erlaubt
If Not (Chr(KeyAscii) Like "[ ]") Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub

gruß walter
Anzeige
so, nun ist es korrekt
08.11.2005 09:18:46
Luschi
Hallo Walter,
Du hast rechr, sa waren 1 paar Variablen zu viel.
so ist's richtig
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim s As String, n As Integer
'Eingabemuster "00 000 00000"
s = Me.TextBox3.Text
n = Len(s)
Select Case n
'0 bedeutet, daß geprüft wird, ob gerade das 1. Zeichen in _
die Textbox eingegeben wird usw.
Case 0, 1, 3 To 5, 7 To 11
'nur Zahlen von 0 bis 9 erlaubt
If Not (Chr(KeyAscii) Like "[0-9]") Then
KeyAscii = 0
End If
Case 2, 6
'nur Lehrzeichen an der 3. und 6. Stelle erlaubt
If Not (Chr(KeyAscii) Like "[ ]") Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
Leider nicht aber
08.11.2005 20:08:02
Walter
Hallo Luschi,
erst mal recht herzlichenDank für dein Hilfe !!!
habe deins getestet, konnte garnichts an Zahlen eingeben. Wieso ?
Ist aber jetzt egal habe hier das Makro, gebe halt die Zahl in einem durch an
z.b. 0121612345 >01 216 12345 wenn Text eingeben wird und man will die Textbox3 verlassen, wird dies festgestellt und das 00 000 00000 wird gesetzt.
Hier mein Makro:

Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox3.Value = "" Then
TextBox3.Value = "00 000 00000"
End If
If IsNumeric(TextBox3) = False Then
Cancel = True
MsgBox "Nur Zahlen erlaubt !", vbCritical
TextBox3 = "00 000 00000"
TextBox3.SetFocus
With TextBox3
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
ActiveCell.Offset(0, 2) = Format(TextBox3, ("00 000 00000"))
TextBox3 = Format(ActiveCell.Offset(0, 2), ("00 000 00000"))
End If
End Sub

Gruß Walter
Anzeige
AW: Leider nicht aber
09.11.2005 08:44:02
Luschi
Hallo Walter,
hier habe ich Dir mal 1 Beispiel gemacht: https://www.herber.de/bbs/user/28236.xls
Bitte den Vba-Code nicht nur kopieren sondern sich auch mal 1 bischen Zeit nehmen, um das Problem verstehen zu lernen.
Gruß von Luschi
aus klein-Paris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige