ich bin auch ein VBA-Neuling und bekomme noch graue Haare...
Ich habe ein Tabellenblatt mit vier Spalten pro Kalenderwoche.
In jeder Kalenderwoche möchte ich einen Namen aus einer Liste wählen, angefangen mit Spalte 9 (dann 13, dann 17,...). Wenn ich diesen Namen gewählt habe, soll sich eine neue Zeile darunter einfügen, also Row+1, aber nur dann, wenn die gesamte Zeile, die direkt unter dem Namen ist, leer ist, damit es zu keiner Verschiebung kommt.
Wenn ich einen Namen in den Spalten 9, 13, 17 (...) lösche, soll sich diese Zeile löschen, aber nur dann, wenn die gesamte Zeile leer ist.
Bedeutet, wenn ich in Spalte 17 eine Namen eingebe, soll sich keine neue Zeile darutner einfügen, wenn in Spalte 13 oder 9 oder 21 schon ein Name steht. Bzw: Wenn ich in Spalte 13 einen Namen lösche, soll sich nur die Zeile löschen, wenn die Spalten 9, 17, 21, oder die ersten Spalten wo manchmal allgemeine Infos stehen, leer sind.
Ist das einigermaßen verständlich?
Hier mein erster Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 9 And Target.Column 13 And Target.Column 17 And Target.Column 21 _
And Target.Column 25 Then Exit Sub
If Target.Value "" Then
Application.EnableEvents = False
Rows(Target.Row + 1).Insert shift:=xlDown
Application.EnableEvents = True
Else: Rows(Target.Row).Delete shift:=xlUp
End If
End Sub
Hier aber das Problem, dass er die Zeilen darunter nicht beachtet und einfach löscht oder einfügt, egal ob da was steht oder nicht.Wie muss ich den anpassen damit es funktioniert?
Vielen Dank schonmal und viele Grüße!
MaryK