Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zeilennummer variable gestalten
#1
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.

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.


[Bild: Excel-Screenshot.jpg]



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
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions