Registriert seit: 09.12.2014
Version(en): 2013
02.01.2015, 04:40
(Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2015, 00:03 von Rabe.)
Hallo zusammen, eventuell könnt ihr mir ja helfen. Ich habe eine Combobox in einer UF. in der Combobox habe ich bestimmte Zeit Intervalle (08:00 bis 09:00 usw.) hinterlegt. Wenn ich das erste Zeit Intervall auswähle und in die TextBox etwas eintrage, wird der Eintrag im Arbeitsblatt Tabelle1 Zeile D66 richtig eingetragen. Wenn ich aber nun das zweite Zeit Intervall auswähle, soll dieses in der Spalte E66 eingetragen werden. das funktioniert bei mir leider nicht. Hier mein Code: Code: Private Sub cboIntervalle_Click() 'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt If cboIntervalle.ListIndex <> 0 Then TextBox1 = Worksheets("Tabelle1").Cells(cboIntervalle.ListIndex + 66, 4) Else TextBox1 = "" End If 'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt If cboIntervalle.ListIndex <> 1 Then TextBox1 = Worksheets("Tabelle1").Cells(cboIntervalle.ListIndex + 66, 5) Else TextBox1 = "" End If End Sub
Private Sub CommandButton2_Click() 'Einträge aus TextBox werden beim Drücken des Button "übernehmen" in die Zellen geschrieben Dim xZeile As Long If TextBox1 = "" Then Exit Sub If cboIntervalle.ListIndex = 1 Then xZeile = [D78].End(xlUp).Row + 1 Else xZeile = cboIntervalle.ListIndex + 1 End If Cells(xZeile, 4) = TextBox1 TextBox1 = "" 'Einträge aus TextBox werden beim Drücken des Button "übernehmen" in die Zellen geschrieben If TextBox1 = "" Then Exit Sub If cboIntervalle.ListIndex = 2 Then xZeile = [E78].End(xlUp).Row + 1 Else xZeile = cboIntervalle.ListIndex + 1 End If Cells(xZeile, 5) = TextBox1 TextBox1 = "" End Sub
Vielen Dang und VG Mario
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Mario,
bitte benutze zum Darstellen des Codes den dritten Schalter von rechts (#). Er ist dadurch erheblich übersichtlicher.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Mario, so: Code: Private Sub cboIntervalle_Click() Dim i As Long 'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt If cboIntervalle.ListIndex > 0 Then TextBox1 = Worksheets("Tabelle1").Cells(66, 3 + cboIntervalle.ListIndex) Else TextBox1 = "" End If
End Sub
Wenn die Textboxen durchgängig nummeriert wären, könnte man sie in einer Schleife füllen, z.B. so: Code: Private Sub cboIntervalle_Click() Dim i As Long 'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt For i = 1 To 10 If cboIntervalle.ListIndex > 0 Then Me.Controls("TextBox" & i) = Worksheets("Tabelle1").Cells(65 + i, 3 + cboIntervalle.ListIndex).Value Else Me.Controls("TextBox" & i) = "" End If Next i
End Sub
sonst musst Du jede Box einzeln innerhalb der If Abfrage aufführen: Code: Private Sub cboIntervalle_Click() Dim i As Long 'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt If cboIntervalle.ListIndex > 0 Then TextBox1 = Worksheets("Tabelle1").Cells(66, 3 + cboIntervalle.ListIndex).Value TextBox2 = Worksheets("Tabelle1").Cells(67, 3 + cboIntervalle.ListIndex).Value TextBox3 = Worksheets("Tabelle1").Cells(68, 3 + cboIntervalle.ListIndex).Value '....usw Else TextBox1 = "" TextBox2 = "" TextBox3 = "" '....usw End If
End Sub
Und brauchst bei der Combo nur auf Listindex >0 zu prüfen. Ab 1 beginnen bei Dir die Zeiten. Bei Listindex 0 steht "Intervall". Dann würde ich beim Laden der Userform bei der Anzeige für die Combo Listindex = 0 voreinstellen, sonst macht der Eintrag ja keinen Sinn und könnte ganz entfallen.
Gruß Atilla
Registriert seit: 09.12.2014
Version(en): 2013
Hallo Attila,
ich habe die TextBoxen jetzt durchgängig nummeriert und mich für die Schleife entschieden. Das funktioniert auch bei der Auswahl des ersten Intervalls (08:00 bis 09:00) sehr gut. Wenn ich jedoch das zweite Intervall (09:00 bis 10:00) in der CBO auswähle sollten die Daten ja in die Spalte E66:D66 eingetragen werden. Das funktioniert leider noch nicht. Hast du eventuell noch einen Tipp für mich?
VG Mario
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Mario,
zeig doch mal den Code, den Du jetzt verwendest.
Gruß Atilla
Registriert seit: 09.12.2014
Version(en): 2013
02.01.2015, 14:17
(Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2015, 00:05 von Rabe.)
Hallo Atilla, ich verwende jetzt folgenden Code. Code: Private Sub UserForm_Initialize()
'Werte in das Formular eintarge. Formular initialisieren
Dim rngIntervalle As Range
With Me
cboIntervalle.List = Range("Intervalle").Value
End With
End Sub
Private Sub cboIntervalle_Click() Dim i As Long 'Zell-und Spaltenbereich für Einträge aus TextBox werden festgelegt For i = 1 To 13 If cboIntervalle.ListIndex > 0 Then Me.Controls("TextBox" & i) = Worksheets("Tabelle1").Cells(65 + i, 3 + cboIntervalle.ListIndex).Value Else Me.Controls("TextBox" & i) = "" End If Next i
End Sub
Private Sub CommandButton2_Click()
'Einträge aus TextBox werden beim drüchen des Button "übernehmen" in die Zellen geschrieben
Dim xZeile As Long If TextBox1 = "" Then Exit Sub If cboIntervalle.ListIndex = 1 Then xZeile = [D78].End(xlUp).Row + 1 Else xZeile = cboIntervalle.ListIndex + 1 End If
Cells(xZeile, 4) = TextBox1 Cells(xZeile, 4) = TextBox2 End Sub
VG Mario
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Mario,
und wie heißen Deine Textboxen?
Die müssen Textbox1, Textbox2, Textbox3 usw heißen.
Wenn sie anders nummeriert sind dann muss das im Code angepasst werden.
Gruß Atilla
Registriert seit: 09.12.2014
Version(en): 2013
02.01.2015, 14:30
(Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2015, 00:08 von Rabe.)
Hallo Attila, ja sie heißen Textbox1, Textbox2..... bis Textbox13. Ich glaube, hier muss dies angepasst werden. Hier ist der Bezug ja nur auf D gelegt. Code: Private Sub CommandButton2_Click()
'Einträge aus TextBox werden beim drüchen des Button "übernehmen" in die Zellen geschrieben
Dim xZeile As Long If TextBox1 = "" Then Exit Sub If cboIntervalle.ListIndex = 1 Then xZeile = [D78].End(xlUp).Row + 1 Else xZeile = cboIntervalle.ListIndex + 1 End If
Cells(xZeile, 4) = TextBox1 Cells(xZeile, 4) = TextBox2 End Sub
VG Mario Code strukturiert dargestellt durch 3. Button von rechts im Beitragsformular: # photo Raute_zps3ee56209.jpg
Dabei nicht die TAGs "code" durch den Makro-Code ersetzen![Bild: smilie.php?smile_ID=1810]
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Mario,
ich glaube, wir reden aneinander vorbei. Ich hatte Dich so verstanden, dass nach Auswahl in der Combo das Einlesen in die Textboxen nicht funktioniert. Dafür habe ich Dir Beispiele gezeigt.
Was funktioniert jetzt und was nicht?
Gruß Atilla
Registriert seit: 09.12.2014
Version(en): 2013
Hallo Attila,
ich kann ja über die Combo verschiedene Zeitfenster auswählen. Diese stehen auch im Tabellenblatt1 in Spalte D65 bis O65. Wenn ich jetzt das erste Zeitfenster in der Combo auswähle, sollen die Einträge aus den TextBoxen entsprechend in Zeile D66 bis D78 eingetragen werden. Das funktioniert auch. Wenn ich in der Combo das zweite Zeitfenster auswähle, sollen die Einträge aus den TextBoxen entsprechend in Zeile E66 bis E78 eingetragen werden und das funktioniert leider nicht.
VG Mario
|