Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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
Textbox Change ereignis
14.06.2019 06:13:27
Lisa
Guten Morgen,
bei Eingabe der Startzahl wir die erste Zahl in der Textbox "txtKD_NK_Anzeige2" nicht dagestellt.
Wie kann ich dies ändern?
Danke!
Gruß
Lisa
https://www.herber.de/bbs/user/130377.xlsm

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox Change ereignis
14.06.2019 12:25:23
Hajo_Zi
Hallo Lisa,
ich gebe 1 ein und es wird gleich angezeigt.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Textbox Change ereignis
14.06.2019 14:12:32
Lisa
Hallo Hajo,
wenn man 1 eingibt müßte es 165-1 heissen, angezeigt wird jedoch nut 65-1 erst nachdem man z.B. den Buchstaben wechselt wird die Anzeige korrekt angezeigt.
Danke!
Gruß
Lisa
AW: Textbox Change ereignis
14.06.2019 14:27:17
Hajo_Zi
Hallo Lisa,
im ersten Beitrag ging es um die Eingabe in einer Texbox die nicht angezeigt wird.
Deinenj Beitrag verstehe ich nicht. Es geht wohl niccht mehr um das was im ersten Beitrag Stand.
Viel Erfolg noch.
Gruß Hajo
Anzeige
AW: Textbox Change ereignis
14.06.2019 14:43:02
Lisa
Hallo Hajo,
in meinem ersten Beitrag habe ich geschrieben, "bei Eingabe der Startzahl wir die erste Zahl in der Textbox "txtKD_NK_Anzeige2" nicht dagestellt."
Dieser Fehler ist leider geblieben.
Gruß
Lisa
AW: Textbox Change ereignis
14.06.2019 14:46:55
Nepumuk
Hallo Lisa,
ohne auf deinen Code näher einzugehen, aber das: Public arrTextbox() As New Klasse1
ist eine ganz schlechte Idee. Damit werden alle TextBoxen die du der Klasse zuordnest wie eine TextBox behandelt. Das kann ganz unvorhergesehene Nebenwirkungen haben. Mach es besser so:
Public arrTextbox() As Klasse1
Public arrCbo() As Klasse1

'Klassenmodul für Textboxeingaben Prüfung
sI = 0
For Each obj In .Controls
    Select Case TypeName(obj)
        Case "TextBox"
            If obj.Name <> "" Then
                sI = sI + 1
                Redim Preserve arrTextbox(1 To sI)
                Set arrTextbox(sI) = New Klasse1
                Set arrTextbox(sI).txtTextbox = obj
            End If
    End Select
Next
'Klasse für Cbo erstellen
sI = 0
For Each obj In .Controls
    Select Case TypeName(obj)
        Case "ComboBox"
            sI = sI + 1
            Redim Preserve arrCbo(1 To sI)
            Set arrCbo(sI) = New Klasse1
            Set arrCbo(sI).Cbo = obj
    End Select
Next

Dein Problem, weswegen du fragst, habe ich nicht verstanden. Erklär das mal genauer was du eigentlich erreichen willst.
Gruß
Nepumuk
Anzeige
AW: Textbox Change ereignis
14.06.2019 15:04:40
Lisa
Hallo Nepumuk,
in meiner Original Mappe habe ich alle Klasse einzeln definiert
'Klassen KD
Public arrCmd() As New cls1 'CommandButton, Speichern, Löschen, Abbruch
Public arrCbo() As New cls1 'ComboBox ,Land, Anrede, Titel
Public arrOpt() As New cls1 'Kundennummer
Public arrLbl() As New cls1 'Label Abdeckungen 'Msgbox
Public arrLst() As New cls1 'ListBox 'Auswertung und ändern
Public arrKom() As New cls1 'Textboxen PLZ,Tele,Mobil (rein Funktionen)
Public arrTextbox() As New cls1 'Textboxen allgemein ' Sprung in nächstes Element 'Tabindex
Aber das nu am Rande.
Was ich erreichen will ist, dass bei Eingabe in Start Zahl die Zahlenfolge in Anzeige erscheint.
Wenn die UF geöffnet wird und man gibt z.B. 123 in Start Zahl ein, dann sollte die Anzeige, ohne das man den Buchstaben "A" und das Format der lfd. Zahl verändert, 12365-1 anzeigen.
Angezeigt wird jedoch 1265-1.
Lassen wir die 123 und verändern nun den Buchstaben auf "B" dann wird korrekt angezeigt 12366-1.
Lassen wir die 123 und verändern nun Format lfd. Zahl auf "00" dann wird korrekt angezeigt 12366-01.
Das ganze dient dazu eine Kundennummer aus einer beliebigen Zahl & ASCII Wert aus erstem Buchstaben - laufende Kundennummer mit dem gleichen Anfangsbuchstaben.
Ich hoffe ich habe mich verständlich ausgedrückt.
Danke für Deine Hilfe!
Gruß
Lisa
Anzeige
AW: Textbox Change ereignis
14.06.2019 15:12:18
Daniel
HI
so ganz genau habe ich mir deinen Code noch nicht angeschaut, weil ich mich mit der Klassenprogrammierung nicht auskenne.
Die Frage ist, brauchst du Klassenprogrammierung hier überhaupt oder macht das das ganze nicht nur unnötig kompliziert?
Soweit ich das verstanden habe, ist Klassenprogrammierung nur dann sinnvoll, wenn viele Steuerelemente hast, die die gleichen Eventmakros benötigen und das kann ich hier nicht erkennen.
so wie ich den Ablauf verstanden habe, verwendest du ja gar kein Change-Event für die TextBox, sondern machst das im Keypress-Event. Es wäre also durchaus möglich, dass zu dem Zeitpunkt, zu dem du den Textboxwert abfragst, die gedrückte Taste noch gar nicht in die TextBox übergeben wurde.
Gruß Daniel
Anzeige
AW: Textbox Change ereignis
14.06.2019 15:17:36
Lisa
Hallo Daniel,
in meiner Userform befinden sich mehr als 200 Steuerelemte (Textboxen und ComboBoxen) da macht es für mich schon Sinn alles über Klasse zu steuern.
Das Keypress-Event verwende ich nur um die Eingaben zu kontrollieren. z.B das bei Textboxen wo Mobilnummer eingebtragen werden
Public Function funcMobil(objTextBox As MSForms.TextBox, intKeyNumber As Integer) As Integer
Select Case intKeyNumber
Case 32, 43, 45, 47, 48 To 57: funcMobil = intKeyNumber
Case Else: funcMobil = 0
lMsg = MsgBox("Im Feld " & vbLf & "Mobil                                                 _
" & vbLf & _
"Trennzeichen  '/ ' " & " '-'  " & " " & " '+' " & vbLf & "und Leerzeichen" & vbLf & _
"erlaubt...", vbOKOnly + vbCritical, "Fehler: Eingabe Mobil...")
End Select
End Function
Danke trotzdem!
Gruß
Lisa
Anzeige
AW: Textbox Change ereignis
14.06.2019 15:46:44
Daniel
Hi
ich habs mir nochmal genau angeschaut:
es ist tatsächlich so, dass du das Makro, um die zweite TextBox zu befüllen, über das KeyPress-Event der ersten TextBox aufrufst.
das ist zu früh, zu diesem Zeitpunkt wurde das Zeichen der gedrückten Taste noch nicht in die TextBox geschrieben.
Das KeyPress-Event entspricht von der zeitlichen Positionierung wohl eher dem KeyDown als dem KeyUp
Private Sub txtTextbox_KeyPress(ByVal intKeyASc As MSForms.ReturnInteger) 'Prüfen  _
Zahleneingaben
Select Case txtTextbox.Name
Case "txtKD_AZ_NK"
intKeyASc = funcNK(txtTextbox, CInt(intKeyASc))
If txtTextbox.Tag  "" Then Run txtTextbox.Tag 

du müsstest dir hierfür noch ein Change-Event erstellen, denn dieses wird NACH der Änderung des Inhaltes der TextBox aktiv und dort diesen Aufruf durchführen.
Gruß Daniel
Anzeige
AW: Textbox Change ereignis
14.06.2019 16:18:34
Lisa
Hallo Daniel,
nochmals danke dür Deine Unterstützung.
Aber meine VBA Kenntnisse sind begrenzt. Ich erstelle die Klassen für die Textboxen wie folgt
'Klassenmodul für Textboxeingaben Prüfung
with UF
sI = 0
For Each obj In .Controls
Select Case TypeName(obj)
Case "TextBox"
If Split(obj.Name, "_")(1) = "PLZ" Then
sI = sI + 1
ReDim Preserve arrKom(1 To sI)
Set arrKom(sI).txtKom = obj
ElseIf Split(obj.Name, "_")(1) = "Telefon" Then
sI = sI + 1
ReDim Preserve arrKom(1 To sI)
Set arrKom(sI).txtKom = obj
ElseIf Split(obj.Name, "_")(1) = "AZ" Then
sI = sI + 1
ReDim Preserve arrKom(1 To sI)
Set arrKom(sI).txtKom = obj
end if
end with
usw.
So gibt es in meiner UF z.B. 5 Textboxen die die Eingabe einer PLZ erfordern. Alle haben den gleichen Namensaufbau : txtKD_PLZ_KD, txtP_PLZ_P usw.
Ich habe mich nun entschlossen, dass ich erst den Buchstaben auswählen muß und dann erst die Zahleneingabe, dann sind die Probleme weg.
Danke!
Gruß
Lisa
Anzeige
AW: Lösung anders erstellt
14.06.2019 16:34:50
Lisa
Hallo Daniel, Nepumuk,
habe jetzt eine andere Lösung.
Diese funktioniert so wie ich es haben will.
Danke für Eure Hilfe!
Gruß
Lisa
https://www.herber.de/bbs/user/130393.xlsm

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige