25.12.2021, 14:43
Guten Tag und Frohe Weihnachten,
Ich bin neu hier und könnte in einer für mich schwierigen VBA Sache Hilfe gebrauchen.
Ich möchte eine Zeitschiene für Aufgaben erstellen.
Ich habe schon ein bisschen erreicht. Folgenden Code habe ich.
Hier sieht man schon wie es werden soll und ein kleiner Teil funktioniert auch.
Das markieren mit den Farben. Wie man sieht ist eine Farbe immer für einen Bereich zuständig.
Von Zeile 6 bis 10 beginnt der erste Aufgabenbereich.
Wenn in der 10. Zeile etwas eingetragen wird soll nach dem Eintrag Excel eine neue Zeile einfügen.
Nun mein Problem:
Alle Bereich darunter verschieben sich nach unten, also müssen die Zeilennummern im VBA Code Variable sein.
Hiermit wird mir die nächste freie Zeile angezeigt. Wenn aber die Zeile 10 auch schon Text hat zeigt mir Excel wieder die 6 in der Messagebox an.
Wenn die 10. Zeile beschrieben wird muss erkannt werden das der Bereich voll ist und eine neue Zeile wird benötigt.
Alle was mit einer Zeilennummer zu tun hat muss variable sein, wenn ein Zeile eingefügt wird .
Das würde sich ändern.
Das hier auch.
Ich hoffe Ihr versteht das was ich möchte und könnt mir bitte helfen.
Wer von Euch kann mir ein wenig unter die Arme greifen?
Grüße MagnaUser
Ich bin neu hier und könnte in einer für mich schwierigen VBA Sache Hilfe gebrauchen.
Ich möchte eine Zeitschiene für Aufgaben erstellen.
Ich habe schon ein bisschen erreicht. Folgenden Code habe ich.
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim i As Long
If Intersect(Target, Range("D6:BC10")) Is Nothing Then
Else
For i = 6 To Cells(10, "B").End(xlUp).Row
Next
MsgBox i
'Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
If Target.Row < 6 And Target.Row > 10 Then Exit Sub
If Target.Column < 4 Then Exit Sub
If Target.Column > 55 Then Exit Sub
Target.Interior.ColorIndex = Range("B5").Font.ColorIndex
End If
If Intersect(Target, Range("D12:BC16")) Is Nothing Then
Else
For i = 12 To Cells(16, "B").End(xlUp).Row
Next
'MsgBox i
If Target.Row < 12 And Target.Row > 16 Then Exit Sub
If Target.Column < 4 Then Exit Sub
If Target.Column > 55 Then Exit Sub
Target.Interior.ColorIndex = Range("B11").Font.ColorIndex
End If
Hier sieht man schon wie es werden soll und ein kleiner Teil funktioniert auch.
Das markieren mit den Farben. Wie man sieht ist eine Farbe immer für einen Bereich zuständig.
Von Zeile 6 bis 10 beginnt der erste Aufgabenbereich.
Wenn in der 10. Zeile etwas eingetragen wird soll nach dem Eintrag Excel eine neue Zeile einfügen.
Code:
'Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Nun mein Problem:
Alle Bereich darunter verschieben sich nach unten, also müssen die Zeilennummern im VBA Code Variable sein.
Hiermit wird mir die nächste freie Zeile angezeigt. Wenn aber die Zeile 10 auch schon Text hat zeigt mir Excel wieder die 6 in der Messagebox an.
Wenn die 10. Zeile beschrieben wird muss erkannt werden das der Bereich voll ist und eine neue Zeile wird benötigt.
Code:
For i = 6 To Cells(10, "B").End(xlUp).Row
Next
MsgBox i
Alle was mit einer Zeilennummer zu tun hat muss variable sein, wenn ein Zeile eingefügt wird .
Das würde sich ändern.
Code:
If Target.Row < 12 And Target.Row > 16 Then Exit Sub
Das hier auch.
Code:
Target.Interior.ColorIndex = Range("B11").Font.ColorIndex
Ich hoffe Ihr versteht das was ich möchte und könnt mir bitte helfen.
Wer von Euch kann mir ein wenig unter die Arme greifen?
Grüße MagnaUser