?Dienstplan, eine Eingabe dann mehere Ausgaben. VBA (Office 2007) ?

... komplette Frage anzeigen

2 Antworten

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.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
17.01.2016, 21:28

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.-

0
Kommentar von Ninombre
17.01.2016, 22:02

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

0

Hallo danke für deine Antwort,

ich habe im Bild die fixen Uhrzeiten eingegeben mit der Legende, kannst du mir da helfen?

Wenn ich die Legende eingebe, werden die fixen Uhrzeiten angezeigt!

danke im vorraus

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?