Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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
VBA TextBox Formatierung
17.11.2012 08:16:50
Andy
Guten Morgen zusammen
Bin mal wieder auf der Suche nach Hilfe.
Habe ein UF mit Textboxen, in einer Textbox sollte ich zahlen eingeben.
und möchte das dies gleich auch in der UF so dargestellt wird und auch in der
Tabelle.
123.4.456.789 = Darstellung
123445679 = Eingabe in UF
So sollte es aussehen. Hat da jemand eine Idee wie ich das hinbekomme?
Meine sucherei hat mich zu nichts geführt
Danke und Gruss
Andy

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Rückfragen
17.11.2012 08:47:13
Erich
Hi Andy,
woher kommt die 8 in 123.4.456.789 ?
Was, wenn weniger oder mehr als 9 Ziffern eingegeben werden?
Was, wenn andere Zeichen eingegeben werden, z. B. der Text "weiß nich"?
Wie also sähen die Darstellungen aus zu folgenden Eingaben:
0
123456789012
123.567.9
weiß nich
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Rückfragen
17.11.2012 09:09:10
Andy
Hallo Erich
Also die Zahl hat immer Zehn Stellen das ist fix,
Sie dient als Identifikations Nr. zu einem Dokument.
Das sind automatisch generierte Nr.
gruss andy

Rückfragen und ein Code
17.11.2012 10:07:13
Erich
Hi Andy,
wie kommen die Ziffern in die Textbox? Per manueller Eingabe?
Oder per Programm? (wegen "automatisch generierte Nr.")
Bei manueller Eingabe hat der Text in der Textbox natürlich nicht immer die Länge 10 - die erreicht er erst am Ende der Eingabe.
Zu welchem Zeitpunkt willst du die Richtigkeit der Eingabe prüfen (erzwingen)?
Bei jedem Verlassen der Textbox? (kann mehrmals sein)
Oder hast du einen "OK"- uder "Speichern"-Button, in dessen Code die Prüfung laufen soll
(vor dem Speichern im Tabellenblatt)?
Du hast ja schon eine Mappe mit der UF und einer Textbox. Wie heißt die Textbox, um die es hier geht?
Ich geh mal aus vom Namen TextBox1:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim strT As String
strT = Replace(TextBox1, ".", "")
If Len(strT) = 10 Then
If IsNumeric(strT) Then
TextBox1 = Format(CLng(strT), "000\.0\.000\.000")
Else
MsgBox "Eingabe nicht nummerisch"
Cancel = True
End If
Else
MsgBox "Eingabe muss 10 Stellen lang sein"
Cancel = True
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
neuer Code
17.11.2012 10:31:14
Erich
Hi Andy,
"IsNumeric" reicht nicht aus - da kommen auch Dezimalzahlen (mit Komma) durch.
Hier ein neuer Code:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim iEin As Integer, ii As Integer, strT As String
iEin = Len(TextBox1)
For ii = 1 To iEin
If Mid(TextBox1, ii, 1) >= "0" And Mid(TextBox1, ii, 1) 
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: neuer Code
17.11.2012 10:49:47
Andy
Hi Erich
Also die Ziffern werden manuell eingetragen.
Mittels Button soll die Eingabe aller Daten in die Tabelle geschrieben werden.
Meine TextBox = TextBox2
Ist die Gruppierung dann auch im UF ersichtlich?
Gruss und Danke
Andy

Anzeige
mal testen
17.11.2012 11:11:01
Erich
Hi Andy,
meine Frage
"Zu welchem Zeitpunkt willst du die Richtigkeit der Eingabe prüfen (erzwingen)?
Bei jedem Verlassen der Textbox? (kann mehrmals sein)"
hast du nicht beantwortet. Mein Code behandelt die Prüfung beim Verlassen der Textbox.
Ändere überall im Code TextBox1 zu TextBox2 und probier ihn dann einfach mal aus. :-)
Mit der Zeile
TextBox1 = Format(CLng(strT), "000\.0\.000\.000")
wird die Anzeige der Eingabe in der Textbox aufbereitet.
Die Ausgabe im Blatt erledigst du ja woanders - wohl beim Button_Click.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: mal testen
17.11.2012 11:38:43
Andy
Hi Erich
Sorry habe ich nicht gesehen, würde gerne die Prüfung währed der Eingabe machen
dient zur besseren Lesbarkeit. Wenn das nicht allzu aufwendig ist
Sonst ist das genau das was ich gesucht habe, die Ausabe erfolgt über den Button_Click.
Danke und Gruss
Andy

AW: mal testen
17.11.2012 12:30:13
Andy
Hi Erich
Habe mal getestet mit dem Code bei Textbox2 wenn ich Ziffern eingebe
Z.B. 0201456987 ist alles Ok
Wenn ich z.B. 4401236547 eingebe kommt Laufzeitfehler 6 Überlauf
Wie kann man das beheben damit alle Ziffern funktionieren?
Danke und Gruss Andy

Überlauf
17.11.2012 13:01:33
Erich
Hi Andy,
au ja, das ist zu groß für Long, aber man kann strT ja aufteilen. Ersetze bitte die Zeile
TextBox1 = Format(CLng(strT), "000\.0\.000\.000")
durch

TextBox1 = Format(CLng(Left(strT, 5)), "000\.0\.0") & _
Format(CLng(Right(strT, 5)), "00\.000")
Beim Prüfen während der Eingabe gibt es ein Problem:
Es lässt sich dabei nicht prüfen, ob ausreichend viele (also 10) Ziffern eingegeben werden.
Wenn das 7. Zeichen eingegeben wird, kann man prüfen, ob nicht schon 10 Ziffern da sind
und ob das neue Zeichen auch eine Ziffer ist.
Aber man kann natürlich nicht prüfen, ob der Benutzer gleich noch ein Zeichen eingeben wird - das wäre Hellseherei.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Überlauf
17.11.2012 15:27:10
Andy
Hi Erich
Danke jetzt ist super, dass mit der Prüfung ist auch ok so, klar wäre das Helseherei :-)
Werde mich nun mal dran machen zu versuchen die Comboboxen mit zu füllen und dann ein neues UF wo ich die Ziffern eingebe und dann das entsprechende Ergebniss angezeigt wird hoffe ich kriege das hin.
Habe noch nicht so grosse Erfahrung mit VBA.
Bis Bald
Gruss Andy

Frage ist derzeit nicht offen (owT)
18.11.2012 08:23:26
Erich
owT:=ohne weiteren Text

AW: Frage ist derzeit nicht offen (owT)
18.11.2012 16:57:04
Andy
Hi Erich
Verstehe das mit dem owT:= ohne weiteren Text nicht was hat das für eine Bedeutung und wann braucht man das?
Gruss Andy

Frage ist derzeit nicht offen (mwT)
18.11.2012 17:31:50
Erich
Hi Andy,
owT oder etwas ähnliches kann man schreiben, wenn die gesamte Info im Betreff steckt und der Beitrag leer ist.
Das erspart allen Lesern ein überflüssiges und nutzloses Öffnen des Beitrags.
Es gibt hier nicht wenige Nutzer, die auch dann "owT" im Betreff schreiben, wenn sie wesentlichen Text im Beitrag haben.
Die laufen dann aber Gefahr, dass der Beitrag nicht gelesen wird...
Deshalb - wegen dieses wesentlichen Textes - habe ich jetzt "mwT" in den Betreff geschrieben. ;-)
(ist nur ein Scherz!)
Bei der Gelegenheit noch ein "offenes" Wort:
Einen Thread, eine Frage stellt man auf offen, wenn man potentielle Antworter veranlassen will, eine Antwort zu suchen.
So ein Thread erscheint in der Liste "noch offen" und ist in der normalen Forumsliste gekennzeichnet.
Überflüssig (und unpassend) ist die Kennzeichnung als offen, wenn wer Fragesteller selbst dran ist,
z. B. mit der Beantwortung von Rückfragen. Solange der Fragesteller nichts Neues geschrieben hat,
ist der Thread für potentielle Antworter ja nicht interessant.
Mein Beitrag "Frage ist derzeit nicht offen (owT)" sollte nur diesen Thread auf "nicht offen" stellen.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Frage ist derzeit nicht offen (mwT)
18.11.2012 18:04:49
Andy
HI Erich
Alles ich hoffe das ich das nun richtig verstanden habe.
und habe keinen Hacken gesetzt
Danke für deine Info
Gruss Andy

Überlauf - einfacher beseitgt
17.11.2012 13:04:37
Erich
Hi Andy,
du kannst auch einfach CDbl statt CLNG schreiben, also
TextBox1 = Format(CDbl(strT), "000\.0\.000\.000")
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige