Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Inhaltsverzeichnis

schleife zum anzeigen von Textbox bei tbox_change

schleife zum anzeigen von Textbox bei tbox_change
Textbox
Moin,
ich hab ein kleines Problem das ich bis jetzt leider nicht lösen konnte.
Eventuell kennt einer von euch ja eine Möglichkeit.
Ich habe eine Userform, welche 20 "Zeilen" a 6 Textboxen enthaelt (Textbox1 bis Textbox 120).
In der Userform Initialisierung habe ich zweite bis zwanzigste "Zeile" versteckt.
Erst wenn eine "Zeile" vollstaendig ausgefuellt ist wird die naechste "Zeile" sichtbar.
Im Augenblick muss ich das fuer jede Zeile einzeln schreiben.
Meine Frage waere, ob dies per Schleife möglich ist.
Bis jetzt habe ich es mit der "Textbox_Change" Methode, wie folgt realisiert.
Textbox1 und 2 sind statisch, sobald etwas in 3 und 4 eingetragen wird, wird der Inhalt von 5 und 6 daraus berechnet.
Sobald in 5 und 6 etwas (Zahl) drinsteht, wird die naechste Zeile mit 6 Textboxen eingeblendet.
Der Sinn der ganzen Sache ist, das die Userform nicht so ueberladen und unuebersichtlich aussieht.
Vielen Dank voraus.
Gruß
Yusuf
'Zeile 1
Private Sub TextBox3_Change()
If IsNumeric(TextBox3) Then
TextBox5 = TextBox3 * TextBox2
Else
TextBox5 = ""
End If
End Sub
Private Sub TextBox4_Change()
If IsNumeric(TextBox4) Then
TextBox6 = TextBox4 * TextBox2
Else
TextBox6 = ""
End If
End Sub
Private Sub TextBox5_Change()
If IsNumeric(TextBox6.Value) Then
TextBox7.Visible = True
TextBox8.Visible = True
TextBox9.Visible = True
TextBox10.Visible = True
TextBox11.Visible = True
TextBox12.Visible = True
Label21.Visible = True
Else
TextBox7.Visible = False
TextBox8.Visible = False
TextBox9.Visible = False
TextBox10.Visible = False
TextBox11.Visible = False
TextBox12.Visible = False
Label21.Visible = False
End If
End Sub
Private Sub TextBox6_Change()
If IsNumeric(TextBox5.Value) Then
TextBox7.Visible = True
TextBox8.Visible = True
TextBox9.Visible = True
TextBox10.Visible = True
TextBox11.Visible = True
TextBox12.Visible = True
Label21.Visible = True
Else
TextBox7.Visible = False
TextBox8.Visible = False
TextBox9.Visible = False
TextBox10.Visible = False
TextBox11.Visible = False
TextBox12.Visible = False
Label21.Visible = False
End If
End Sub
'Zeile 2

Private Sub TextBox9_Change()
If IsNumeric(TextBox9) Then
TextBox11 = TextBox9 * TextBox8
Else
TextBox11 = ""
End If
End Sub
Private Sub TextBox10_Change()
If IsNumeric(TextBox10) Then
TextBox12 = TextBox10 * TextBox8
Else
TextBox12 = ""
End If
End Sub
Private Sub TextBoX11_Change()
If IsNumeric(TextBox12.Value) Then
TextBox13.Visible = True
TextBox14.Visible = True
TextBox15.Visible = True
TextBox16.Visible = True
TextBox17.Visible = True
TextBox18.Visible = True
Label22.Visible = True
Else
TextBox13.Visible = False
TextBox14.Visible = False
TextBox15.Visible = False
TextBox16.Visible = False
TextBox17.Visible = False
TextBox18.Visible = False
Label22.Visible = False
End If
End Sub
Private Sub TextBox12_Change()
If IsNumeric(TextBox11.Value) Then
TextBox13.Visible = True
TextBox14.Visible = True
TextBox15.Visible = True
TextBox16.Visible = True
TextBox17.Visible = True
TextBox18.Visible = True
Label22.Visible = True
Else
TextBox13.Visible = False
TextBox14.Visible = False
TextBox15.Visible = False
TextBox16.Visible = False
TextBox17.Visible = False
TextBox18.Visible = False
Label22.Visible = False
End If
End Sub
'Zeile 3

Private Sub TextBox15_Change()
If IsNumeric(TextBox15) Then
TextBox17 = TextBox15 * TextBox14
Else
TextBox17 = ""
End If
End Sub
Private Sub TextBox16_Change()
If IsNumeric(TextBox16) Then
TextBox18 = TextBox16 * TextBox14
Else
TextBox18 = ""
End If
End Sub
Private Sub TextBoX17_Change()
If IsNumeric(TextBox18.Value) Then
TextBox19.Visible = True
TextBox20.Visible = True
TextBox21.Visible = True
TextBox22.Visible = True
TextBox23.Visible = True
TextBox24.Visible = True
Label23.Visible = True
Else
TextBox19.Visible = False
TextBox20.Visible = False
TextBox21.Visible = False
TextBox22.Visible = False
TextBox23.Visible = False
TextBox24.Visible = False
Label23.Visible = False
End If
End Sub
Private Sub TextBox18_Change()
If IsNumeric(TextBox17.Value) Then
TextBox19.Visible = True
TextBox20.Visible = True
TextBox21.Visible = True
TextBox22.Visible = True
TextBox23.Visible = True
TextBox24.Visible = True
Label23.Visible = True
Else
TextBox19.Visible = False
TextBox20.Visible = False
TextBox21.Visible = False
TextBox22.Visible = False
TextBox23.Visible = False
TextBox24.Visible = False
Label23.Visible = False
End If
End Sub
'Zeile 4

Private Sub TextBox21_Change()
If IsNumeric(TextBox21) Then
TextBox23 = TextBox21 * TextBox20
Else
TextBox23 = ""
End If
End Sub
Private Sub TextBox22_Change()
If IsNumeric(TextBox22) Then
TextBox24 = TextBox22 * TextBox20
Else
TextBox24 = ""
End If
End Sub
Private Sub TextBoX23_Change()
If IsNumeric(TextBox24.Value) Then
TextBox25.Visible = True
TextBox26.Visible = True
TextBox27.Visible = True
TextBox28.Visible = True
TextBox29.Visible = True
TextBox30.Visible = True
Label24.Visible = True
Else
TextBox25.Visible = False
TextBox26.Visible = False
TextBox27.Visible = False
TextBox28.Visible = False
TextBox29.Visible = False
TextBox30.Visible = False
Label24.Visible = False
End If
End Sub
Private Sub TextBox24_Change()
If IsNumeric(TextBox23.Value) Then
TextBox25.Visible = True
TextBox26.Visible = True
TextBox27.Visible = True
TextBox28.Visible = True
TextBox29.Visible = True
TextBox30.Visible = True
Label24.Visible = True
Else
TextBox25.Visible = False
TextBox26.Visible = False
TextBox27.Visible = False
TextBox28.Visible = False
TextBox29.Visible = False
TextBox30.Visible = False
Label24.Visible = False
End If
End Sub
'Zeile 5

Private Sub TextBox27_Change()
If IsNumeric(TextBox27) Then
TextBox29 = TextBox27 * TextBox26
Else
TextBox29 = ""
End If
End Sub
Private Sub TextBox28_Change()
If IsNumeric(TextBox28) Then
TextBox30 = TextBox28 * TextBox26
Else
TextBox30 = ""
End If
End Sub
Private Sub TextBox29_Change()
If IsNumeric(TextBox30.Value) Then
TextBox31.Visible = True
TextBox32.Visible = True
TextBox33.Visible = True
TextBox34.Visible = True
TextBox35.Visible = True
TextBox36.Visible = True
Label25.Visible = True
Else
TextBox31.Visible = False
TextBox32.Visible = False
TextBox33.Visible = False
TextBox34.Visible = False
TextBox35.Visible = False
TextBox36.Visible = False
Label25.Visible = False
End If
End Sub
Private Sub TextBox30_Change()
If IsNumeric(TextBox29.Value) Then
TextBox31.Visible = True
TextBox32.Visible = True
TextBox33.Visible = True
TextBox34.Visible = True
TextBox35.Visible = True
TextBox36.Visible = True
Label25.Visible = True
Else
TextBox31.Visible = False
TextBox32.Visible = False
TextBox33.Visible = False
TextBox34.Visible = False
TextBox35.Visible = False
TextBox36.Visible = False
Label25.Visible = False
End If
End Sub
'Zeile 6

Private Sub TextBox33_Change()
If IsNumeric(TextBox33) Then
TextBox35 = TextBox33 * TextBox32
Else
TextBox35 = ""
End If
End Sub
Private Sub TextBox34_Change()
If IsNumeric(TextBox34) Then
TextBox36 = TextBox34 * TextBox32
Else
TextBox36 = ""
End If
End Sub
Private Sub TextBox35_Change()
If IsNumeric(TextBox36.Value) Then
TextBox37.Visible = True
TextBox38.Visible = True
TextBox39.Visible = True
TextBox40.Visible = True
TextBox41.Visible = True
TextBox42.Visible = True
Label26.Visible = True
Else
TextBox37.Visible = False
TextBox38.Visible = False
TextBox39.Visible = False
TextBox40.Visible = False
TextBox41.Visible = False
TextBox42.Visible = False
Label26.Visible = False
End If
End Sub
Private Sub TextBox36_Change()
If IsNumeric(TextBox35.Value) Then
TextBox37.Visible = True
TextBox38.Visible = True
TextBox39.Visible = True
TextBox40.Visible = True
TextBox41.Visible = True
TextBox42.Visible = True
Label26.Visible = True
Else
TextBox37.Visible = False
TextBox38.Visible = False
TextBox39.Visible = False
TextBox40.Visible = False
TextBox41.Visible = False
TextBox42.Visible = False
Label26.Visible = False
End If
End Sub

AW: schleife zum anzeigen von Textbox bei tbox_change
05.05.2010 08:37:44
Textbox
Hallo Yusuf,
glaubst Du das schreibt jemand Live ohne testen?
Warum sollen wir das nachbauen, die Zeit hast Du doch schon investiert.

AW: schleife zum anzeigen von Textbox bei tbox_change
05.05.2010 09:34:16
Textbox
Hallo,
dachte der Codeschnipsel wuerde reichen, um die Situation zu verdeutlichen und dann einen Tipp zu geben wie es in eine Schleife gepackt werden kann.
Zur Zeit kleinere Probleme mit der Inetleitung hier, deshalb die Verzoegerung beim antworten.
Ich habe mal die Userform hochgeladen.

Die Datei https://www.herber.de/bbs/user/69418.xls wurde aus Datenschutzgründen gelöscht


Gruß
Yusuf
Anzeige
AW: schleife zum anzeigen von Textbox bei tbox_change
05.05.2010 09:37:07
Textbox
Hallo Yusuf,
Klasse Datei, die kann ich mir auch selbst erstellen. Einfach Datei Neu.
Die Datei ist leer.
Gruß Hajo
AW: schleife zum anzeigen von Textbox bei tbox_change
05.05.2010 09:41:44
Textbox
Hm,
kann mir das nicht erklaeren. hab eine neue Mappe erstellt und da die Userform importiert.
In der Upload Datei ist es nicht mehr enthalten.
Ich lade die Datei nochmal hoch.

Die Datei https://www.herber.de/bbs/user/69419.xls wurde aus Datenschutzgründen gelöscht


Gruß
Yusuf
Anzeige
Vielen Dank...
05.05.2010 11:15:43
Yusuf
hast mit mal wieder sehr gut weiterhelfen koennen.
Gruß
Yusuf
als Beispiel
05.05.2010 10:51:11
Rudi
Hallo,
musst du für die anderen gerechneten Txt auch anlegen.
Private Sub TextBox5_Change()
ZeileEin 5
End Sub
Private Sub TextBox6_Change()
ZeileEin 6
End Sub
Private Sub TextBoX11_Change()
ZeileEin 11
End Sub
Private Sub TextBox12_Change()
ZeileEin 12
End Sub
Private Sub TextBoX17_Change()
ZeileEin 17
End Sub
Private Sub TextBox18_Change()
ZeileEin 18
End Sub
Private Sub TextBoX23_Change()
ZeileEin 23
End Sub
Private Sub TextBox24_Change()
ZeileEin 24
End Sub
Private Sub ZeileEin(iTextBox As Integer)
Dim i As Integer, blnX As Boolean
blnX = iTextBox Mod 2 = 0
For i = iTextBox + 2 + blnX To iTextBox + 7 + blnX
Me.Controls("TextBox" & i).Visible = IsNumeric(Me.Controls("Textbox" & iTextBox + blnX))
Next
Me.Controls("Label" & (iTextBox + blnX - 5) / 6 + 21).Visible = IsNumeric(Me.Controls(" _
Textbox" & iTextBox + blnX))
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
Ausführen.Left = (Application.Width / 2) - Ausführen.Width / 2
Me.Height = Application.Height
Me.Width = Application.Width
For i = 7 To 120
Me.Controls("TextBox" & i).Visible = False
Next
For i = 21 To 39
Me.Controls("Label" & i).Visible = False
Next
End Sub

Gruß
Rudi
Anzeige
Danke Rudi...
05.05.2010 11:20:41
Yusuf
auch deine Lösung hilft mir weiter, jedoch muss ich folgenden Codeteil wegkommentieren, da er das Label nicht gefunden hat.
Ohne diese Zeile funktioniert auch dein Code.
Damit das Label auch angezeigt wird muss ich mir was ueberlegen.
Jetzt weiss ich auch wie ich die Elemente der Userform nacheinander in einer Schleife ansprechen kann.
Private Sub ZeileEin(iTextBox As Integer)
Dim i As Integer, blnX As Boolean
blnX = iTextBox Mod 2 = 0
For i = iTextBox + 2 + blnX To iTextBox + 7 + blnX
Me.Controls("TextBox" & i).Visible = IsNumeric(Me.Controls("Textbox" & iTextBox + blnX))
Next
Me.Controls("Label" & (iTextBox + blnX - 5) / 6 + 21).Visible = IsNumeric(Me.Controls("  _
_
Textbox" & iTextBox + blnX))
End Sub

Gruß
Yusuf
Anzeige
hast du die Label umbenannt? owT
05.05.2010 11:34:34
Rudi
AW: hast du die Label umbenannt? owT
05.05.2010 11:41:43
Yusuf
Es lag an umbenannten Labes.
Hatte deinen Code in die Datei von Hajo gezogen und dort getestet (die Datei war schon geoeffnet).
Hatte nur nicht bemerkt, das Hajo die Labels umbenannt hatte.
Danke nochmals, dein Code funktioniert.
Gruß
Yusuf

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige