?Dienstplan, eine Eingabe dann mehere Ausgaben. VBA (Office 2007) ?
Hallo,
Kann mir jemadn bitte Helfen bin am verzweifeln habe schon viele Varianten probiert, zbsp.
Private Sub Worksheet_Change(ByVal Target As Range) If Range("N9") = "N1" Or Range("N9") = "N2" Then Range("J9") = "09:00" End Sub
Aber es funktioniert nicht mit mehere Zellen.
Klicke auf die Grafik für eine größere Ansicht Name: ecxe-bild.JPG Hits: 2 Größe: 86,3 KB ID: 8639
Also ich möchte wenn man auf irgend einer N(Spalte)(Zeile 6-36) N1 oder N2 eingibt, in dieser Zeile (G,n) (H,n) (I,n) (J,n) (K,n) verschiedene Uhrzeiten ausgibt. Das gleiche mit D1,D2,F6,F8
danke im vorraus für eure Hilfe

1 Antwort
Um die Zeilen auch variabel zu machen, musst Du die Zellen anders ansprechen, also statt festen Werten wie range("N9") in der Form cells(9,14) (Zeile/Spalte), dann kannst Du die 9 auch durch eine Variable ersetzen
cells(i,14)
Eine Variante wäre, bei Änderungen alle Zellen im relevanten Bereich durchzuschauen und entsprechende Aktionen vorzunehmen
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 Then
For i = 6 To 36
If Cells(i, 14).Value = "N1" Or Cells(i, 14).Value = "N2" Then
Cells(i, 7).Value = "G"
Cells(i, 8).Value = "H"
End If
Next
End If
End Sub
Du müsstest allerdings noch etwas ausführlicher werden, wie die einzelnen Zellen mit den Uhrzeiten zu befüllen sind. Wenn nur die aktuell geänderte Zelle zu betrachten ist, dann müsste man etwas anders vorgehen.
Sollen die ganzen Werte mit Arbeitsbeginn / -ende und Pausenzeiten fest anhand des Eintrags in Spalte N gesetzt werden? Das könntest Du nach diesem Schema machen (ich hab die Beispiele aus dem Screenshot für die ersten beiden Zeilen eingetragen, den Rest musst Du ergänzen)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 Then
For i = 6 To 36
Select Case Cells(i, 14).Value
Case "D1":
Cells(i, 7).Value = "06:30"
Cells(i, 8).Value = "12:30"
Cells(i, 9).Value = "12:30-15:00"
Cells(i, 10).Value = "15:00"
Cells(i, 11).Value = "19:00"
Cells(i, 12).Value = ""
Cells(i, 13).Value = 10
Case "F8"
Cells(i, 7).Value = "06:30"
Cells(i, 8).Value = "09:45"
Cells(i, 9).Value = "09:45-10:15"
Cells(i, 10).Value = "15:00"
Cells(i, 11).Value = ""
Cells(i, 12).Value = ""
Cells(i, 13).Value = 8
End Select
Next
End If
End Sub
da G der 7. und H der 8. Buchstabe ist, nehme ich an, dass
Zeile (G,n) (H,n) (I,n) (J,n) (K,n) Zeile n, Spalte G,H,I,J,K Zelladressen sein sollen und nicht die Eintragung.- Mag jetzt im Moment aber nicht auf Makro umdenken.-