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, 07: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?