Wenn die Spalte A ursprünglich keine Werte beinhaltet, sondern nur farbige Bereiche, wie kann dann die Suche nach der letzten Zeile durch End(xlUp) zuverlässig funktionieren?
Mal davon abgesehen:
Dim liZeile As Integer 'Anm.: Integer reicht nicht aus
Dim liZeileMax As Integer ' um alle Zeilen, die Excel bereit stellt,
' anzusprechen (Laufzeitfehler droht!).
'Der Datentyp 'Long' ist daher die besser Wahl.
Dim blnInsert As Boolean
liZeileMax = Cells(Rows.Count, 1).End(xlUp).Row
For liZeile = 1 To liZeileMax
If Range("A" & liZeile).Interior.ColorIndex = 43 Then
If Range("A" & liZeile).Text = "" Then
Exit For
Else
blnInsert = True
End If
End If
Next
If liZeile > liZeileMax Then
Call MsgBox("nichts gefunden", vbExclamation)
Exit Sub
End If
If blnInsert Then Call Rows(liZeile).Insert(xlShiftDown)
Cells(liZeile, "A").Value = "TestA"
Cells(liZeile, "B").Value = "TestB"
Cells(liZeile, "C").Value = "TestC"
Cells(liZeile, "D").Value = "TestD"
Cells(liZeile, "E").Value = "TestE"
Da im Ausgangszustand zwei farbig markierte Zeilen bereitstehen, muss im ersten Bearbeitungsfall keine neue Zeile erstellt werden. man nutzt einfach die erste dafür. In den den darauf folgenden Fällen wird dann immer vor dem schreibvorgang eine neue Zeile eingefügt und die leere zeile dadurch um eins nach unten verschoben (die Formatierung sollte dabei autom. übernommen werden).
|