Private Sub ComboBox1_Change() Dim i As Long If ComboBox1.ListIndex > -1 Then With Range(ComboBox1.RowSource).Cells(ComboBox1.ListIndex + 1) For i = 1 To 10 Me.Controls("TextBox" & i).Value = .Offset(, i).Value Next i End With End If End Sub
Private Sub TextBox1_Change() With ComboBox1 If .ListIndex > -1 Then Range(.RowSource).Cells(.ListIndex + 1).Offset(, 1).Value = TextBox1.Value End If End With End Sub
Referenziere die RowSource der ComboBox1 vollständig, damit das immer funktioniert, also auch, wenn das Blatt Kalender gerade nicht aktiv ist: RowSource: Kalender!AO7:AO29
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • Thomas78
(10.10.2017, 08:51)Thomas78 schrieb: Aber ich müsste den Code für das zurückschreiben auch auf alle Textboxen ändern, deiner funktioniert nur mit Textbox 1. Wie müsste ich den Code dafür ändern?
nicht ändern, sondern ergänzen für alle TextBoxen. Sind ja nur 2 Stellen jeweils zu ändern.
Private Sub TextBox2_Change() With ComboBox1 If .ListIndex > -1 Then Range(.RowSource).Cells(.ListIndex + 1).Offset(, 1).Value = TextBox2.Value End If End With End Sub
oder aber die TextBoxen direkt mit den Zellen verknüpfen. Lösche dann aber vorher alle Change-Ereignisse der TextBoxen:
Private Sub ComboBox1_Change() Dim i As Long If ComboBox1.ListIndex > -1 Then With Range(ComboBox1.RowSource).Cells(ComboBox1.ListIndex + 1) For i = 1 To 1 Me.Controls("TextBox" & i).ControlSource = .Offset(, i).Address(External:=True) Next i End With End If End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • Thomas78
Ich habe im Blatt "Daten" verschiedene Ranglisten je nachdem welcher Termin als nächstes fällig wird.
Spalte L und M sollte formelmäßig in Ordnung sein? Aber Spalte N zeigt mir bei manchen ein #Zahl! an. Ich komme beim besten Willen nicht dahinter wo der Fehler steckt.
Vielleicht kann mir einer von euch nochmal weiterhelfen?