Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
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
Werte von TextBoxen übernehmen
11.04.2021 20:53:46
TextBoxen
Liebes Forum
Ich schlage mich aktuell mit einem Problem herum, für welches ich keine passable Lösung finde.
Ich habe in Excel auf einer UserForm 6 TextBoxen (TextBoxen 1 - 6) , 6 Labels (Label 1 - 6) und ein CommandButton.
Wenn ich auf den CommandButton drücke sollen die Werte der TextBoxen auf die entsprechenden Labels übergeben werden. Dies ist soweit kein Problem. Mit Label1.Caption = TextBox1.Value klappt das gut.
Nun zum eigentlichen Problem:
Wenn ich nachträglich zum Beispiel den Wert in der TextBox2 lösche und erneut auf den CommandButton drücke, dann soll das das Label1 weiterhin den Wert der TextBox1 erhalten, das Label2 soll aber den Wert der TextBox 3, das Label3 den Wert der TextBox4, etc. bekommen.
Wenn ich das mit Select Case mache gibt das 24 Case Fälle, was ziemlich umständlich und unsexy ist.
Ich bin mir sicher, dass dies wesentlich einfacher zu lösen ist, z.B. mit einem Loop. Nur mit den Loops habe ich so meine Schwierigkeiten.
Hat jemand von euch einen Vorschlag, wie ich das Problem einfacher lösen könnte.
Vielen Dank für eure Hilfe
Gruss, Thomas

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte von TextBoxen übernehmen
11.04.2021 21:35:13
TextBoxen
mache folgende kleine Schleife
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 6
If Not Me.Controls("TextBox" & i) = "" Then Me.Controls("Label" & i).Caption = Me.Controls(" _
TextBox" & i).Value
Next i
End Sub
Gruß Uwe
AW: Werte von TextBoxen übernehmen
11.04.2021 21:41:41
TextBoxen
du willst also das die Werte der Labels quasi nachrutschen. Dazu benötigt man nicht mal die Werte der Textboxen, da die ja schon an die Labels vergeben wurden. Welchen Wert erhält dann das letzte Label oder bleiben die Wert dann erhalten?
AW: Werte von TextBoxen übernehmen
11.04.2021 22:40:32
TextBoxen
Hoi Ralf
Genau das ist die Idee. Nach dem Nachrutschen soll das letzte oder die letzten (wenn mehrere TextBoxen nachträglich gelehrt werden) einfach leer sein.
Gruss, Thomas
Anzeige
AW: Werte von TextBoxen übernehmen
11.04.2021 22:21:45
TextBoxen
Hallo Thomas,
sorry hatte es nicht richtig gelesen. Anbei eine Lösung, welche aber nur so lang funktioniert, wie nur eine Textbox nachträglich geleert wird.
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 6
If Not Me.Controls("TextBox" & i) = "" Then
Me.Controls("Label" & i).Caption = ""
Me.Controls("Label" & i).Caption = Me.Controls("TextBox" & i).Value
End If
Next i
If TextBox1 = "" Then
Label1.Caption = Label2.Caption
Label2.Caption = Label3.Caption
Label3.Caption = Label4.Caption
Label4.Caption = Label5.Caption
Label6.Caption = ""
End If
If TextBox2 = "" Then
Label1.Caption = Label1.Caption
Label2.Caption = Label3.Caption
Label3.Caption = Label4.Caption
Label4.Caption = Label5.Caption
Label5.Caption = Label6.Caption
Label6.Caption = ""
End If
If TextBox3 = "" Then
Label1.Caption = Label1.Caption
Label2.Caption = Label2.Caption
Label3.Caption = Label4.Caption
Label4.Caption = Label5.Caption
Label5.Caption = Label6.Caption
Label6.Caption = ""
End If
If TextBox4 = "" Then
Label1.Caption = Label1.Caption
Label2.Caption = Label2.Caption
Label3.Caption = Label3.Caption
Label4.Caption = Label5.Caption
Label5.Caption = Label6.Caption
Label6.Caption = ""
End If
If TextBox5 = "" Then
Label1.Caption = Label1.Caption
Label2.Caption = Label2.Caption
Label3.Caption = Label3.Caption
Label4.Caption = Label4.Caption
Label5.Caption = Label6.Caption
Label6.Caption = ""
End If
If TextBox6 = "" Then
Label1.Caption = Label1.Caption
Label2.Caption = Label2.Caption
Label3.Caption = Label3.Caption
Label4.Caption = Label4.Caption
Label5.Caption = Label5.Caption
Label6.Caption = ""
End If
End Sub
Gruß Uwe
Anzeige
AW: Werte von TextBoxen übernehmen
11.04.2021 22:38:09
TextBoxen
Danke Uwe für deine rasche Antwort.
Wenn ich deinen Code übernehme und ausführe bekomme ich die Fehlermeldung "Fehler beim Kompilieren, Syntaxfehler" bei
If Not Me.Controls("TextBox" & i) = "" Then Me.Controls("Label" & i).Caption = Me.Controls(" _
TextBox" & i).Value
Woran könnte es liegen.
Gruss, Thomas
AW: Werte von TextBoxen übernehmen
11.04.2021 22:45:50
TextBoxen
Hoi Uwe
Funktioniert prima. Danke. Nun kann es aber dummerweise vorkommen, dass nicht nur 1 TextBox gelehrt wird, sondern dass eben halt gleichzeitig mehrere TextBoxen gelehrt werden. In diesem Fall gibt dein neuer Code nicht das gewünschte Ergebnis. Kann man das noch entsprechend anpassen?
Gruss, Thomas
Anzeige
AW: Werte von TextBoxen übernehmen
11.04.2021 22:56:51
TextBoxen
Hallo,
  • 
    Private Sub CommandButton1_Click()
    Dim i As Long, z As Long
    For i = 1 To 6
    Me.Controls("Label" & CStr(i)).Caption = ""
    Next i
    For i = 1 To 6
    If Me.Controls("TextBox" & CStr(i))  "" Then
    z = z + 1
    Me.Controls("Label" & CStr(z)).Caption = Me.Controls("TextBox" & CStr(i))
    End If
    Next i
    End Sub
    

  • Gruß Werner
    AW: Werte von TextBoxen übernehmen
    11.04.2021 23:39:20
    TextBoxen
    Hoi Werner
    Absolut perfekt - Das ist genau das, was ich gesucht habe. Danke dir vielmals.
    @Ralf und Alwin. Euch ebenfalls danke.
    Gruss an alle, Thomas
    AW: Werte von TextBoxen übernehmen
    12.04.2021 06:56:00
    TextBoxen
    Guten Morgen Werner
    Wie gestern geschrieben, macht der von dir erhaltene Code genau dass, was ich möchte. Der Code wurde zwischenzeitlich in meine UF eingebaut.
    Angespornt davon, wollte ich den selben Code für ein gleiches Problem in leicht abweichenden Form an einer anderen Stelle meiner UF verwenden:
    Die TextBoxen haben nun die Bezeichnung (TextBox 20, 26, 32, 38, 44 und 50) - nicht mehr TextBox 1 - 6
    Die Labels haben nun die Bezeichnungen (Label 22 - 27), nicht mehr Label 1 - 6
    Die Labels befinden sich zudem auf einer anderen UF, sagen wir UF2,
    Wollte die Startwerte bei i + z anpassen, sowie den Vermerk UserForm2 bei den Labels einfügen - das klappte aber nicht. Kannst mir da nochmals weiterhelfen.
    Vielen Dank und Gruss
    Thomas
    Anzeige
    AW: Werte von TextBoxen übernehmen
    12.04.2021 08:09:43
    TextBoxen
    Moin Werners Code basiert darauf das die Controls mit den Zahlen so benannt sind wie du es vorgegeben hast. Wenn diese auf einem andern UF sind, kannst du die Zahlenreihe doch übernehmen.
    Wenn du den einfachen Code verstehen würdest dann hättest du einfach +6 an die richtigen Stellen schreiben können und gut.
    AW: Werte von TextBoxen übernehmen
    12.04.2021 08:51:24
    TextBoxen
    Guten Morgen Ralf
    Danke für deinen Input. Bin halt leider kein so geübter VBA-Anwender (einfache Dinge klappen recht gut, sobald es mehr in die Tiefe geht, na ja, dann wirds halt schwierig, gebrauche VBA halt nicht jeden Tag).
    Gruss, Thomas
    AW: Werte von TextBoxen übernehmen
    12.04.2021 09:12:44
    TextBoxen
    Hoi Ralf
    Die Anpassung der TextBoxen und Labels mit Zusatz + Zahl habe ich zwischenzeitlich hingekriegt (Code klappt sofern sich die TextBoxen und die Labels in der gleichen UF befinden) - war nach deinem Tipp einfacher als ich gedacht habe.
    Wie ich den Code nun noch abändere, so dass die Werte der TextBoxen (in UF1) in die Labels (in UF2) übertragen, da stehe ich noch auf dem Schlauch.
    Hast du mir dazu ebenfalls eine Anregung, einen Tipp?
    Danke und Gruss
    Thomas
    Anzeige
    AW: Werte von TextBoxen übernehmen
    12.04.2021 09:30:18
    TextBoxen
    Hallo,
    da wäre es dann ja auch noch schön zu sehen, wie dein Code jetzt aussieht.
    Im Code sprichst du mit Me.... die Userform an, in der sich das Control, das du benutzt hast, befindet. Also gehe ich mal davon aus, dass sich bei dir auf der 1. Userform die verschiedenen Textboxen und die Schaltfläche befindet, mit der du die Daten in die Labels der zweiten Userform bringen willst.
    Um dann die Labels anzusprechen brauchst du nur den Namen der entsprechenden Userform davor zu setzen.
  • Private Sub CommandButton1_Click()
    Dim i As Long, z As Long
    For i = 22 To 27
    UserForm2.Controls("Label" & CStr(i)).Caption = ""
    Next i
    z = 21
    For i = 20 To 50 Step 6
    If Me.Controls("TextBox" & CStr(i)) "" Then
    z = z + 1
    UserForm2.Controls("Label" & CStr(z)).Caption = Me.Controls("TextBox" & CStr(i))
    End If
    Next i
    End Su

  • Es müssen natürlich beide Userformen in den Eigenschaften auf ShowModal = false eingestellt sein.
    Gruß Werner
    Anzeige
    AW: Werte von TextBoxen übernehmen
    12.04.2021 10:02:48
    TextBoxen
    Guten Morgen Werner
    Vielen Dank für deine ergänzenden Worte. Werde dies entsprechend umsetzten.
    Unten noch den Link zum angepassten Code (vor deinem neuen Input)
    https://www.herber.de/bbs/user/145465.xlsm
    Gruss, Thomas
    und was hat die Datei...
    12.04.2021 10:12:42
    Werner
    Hallo,
    ...jetzt mit deiner vorherigen Beschreibung zu tun? Würde mal meinen nichts.
    1. es gibt nur eine Userform
    2. die Textboxen sind fortlaufend benannt von 10-15 und nicht 26, 32, 38....
    3. die Label sind auf der gleichen Userform
    4. die Label sind benannt von 15-20 und nicht von 22-27
    Gruß Werner
    Anzeige
    AW: Werte von TextBoxen übernehmen
    12.04.2021 14:08:19
    TextBoxen
    Hoi Werner
    Die hochgeladene Datei von heute Morgen war Zustand vor den vorgenommenen Erweiterungen und Codeanpassungen.
    Hier der Zustand nach den vorgenommenen Anpassungen - Ist so rausgekommen, wie ich es mir gewünscht habe, mega cool.
    (Bemerkung dazu: Feinschliff Tabs muss ich noch machen, ist aber eine Kleinigkeit)
    Hier https://www.herber.de/bbs/user/145470.xlsm
    Vielen Dank für deine grosse Hilfe.
    Gruss, Thomas
    Gerne u. Danke für die Rückmeldung. o.w.T.
    12.04.2021 14:25:43
    Werner

    304 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige