Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
384to388
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: genutze Zeilen neu einlesen

VBA: genutze Zeilen neu einlesen
20.02.2004 21:57:53
Christoph
Hallo liebstes Forum,
Ich knabber mal wieder an den Grundlagen...
Über "LRow = Cells(Rows.Count, 1).End(xlUP).Row" lese ich bei Beginn eines Makros die letzte genutzte Zeile aus.
Im Gegensatz zu schon oft praktizierten Anwendungen möchte ich diesmal bei einem bestimmten Ereignis (wenn sich der Wert in Spalte C ändert) eine Zeile einfügen.
Logischerweise werden, wenn z.B. schon 500 Zeilen eingefügt wurden, die letzten
500 Zeilen nicht mehr durchlaufen, da "LRow" ja nicht weiter wächst.
Genau das soll es aber tun...
Ich fürchte, ich seh' den Wald vor lauter Bäumen nicht mehr...ich komm nicht drauf.
schon vorab vielen Dank für eure Hilfe
viele Grüße
Christoph

Sub ZeilenEinfuegen ()
Dim LRow as Long
Dim i as Long
LRow = Cells(Rows.Count, 1).End(xlUP).Row
For i = 3 To LRow
If Cells(i, 3).Value <> Cells(i - 1, 3).Value Then
Rows(i).Insert Shift:=xlDown
With Range(Cells(i, 1), Cells(i, 5))
.Interior.ColorIndex = 15
End With
i = i + 1
End If
Next i
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: genutze Zeilen neu einlesen
20.02.2004 22:03:30
Josef Ehrensberger
Hallo Christoph!
Beim Einfügen oder Löschen von Zeilen, ist
es ratsam, von hinten(unten) zu beginnen.
Also z.B.:
statt
For i = 3 To LRow
nimmst Du
For i = LRow To 3 Step -1
versuch's mal.
Gruß Sepp
Auch dir vielen Dank...
20.02.2004 23:02:35
Christoph
Hi Sepp,
...merci
Gruß
Christoph
AW: VBA: genutze Zeilen neu einlesen
20.02.2004 22:04:45
PeterW
Hallo Christoph,
so sollte es gehen:

Sub ZeilenEinfuegen()
Dim LRow As Long
Dim i As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = LRow To 3 Step -1
If Cells(i, 3).Value <> Cells(i - 1, 3).Value Then
Rows(i).Insert Shift:=xlDown
With Range(Cells(i, 1), Cells(i, 5))
.Interior.ColorIndex = 15
End With
End If
Next i
End Sub

Gruß
Peter
Anzeige
vielen Dank
20.02.2004 22:59:13
Christoph
Hi,
es ist mir ja fast schon peinlich...
früher hab so was mal gewusst. Aber irgendwann muss ich mir wohl gesagt haben, warum eigentlich von hinten - geht doch von vorne auch...
...bis man in die Falle tappt...
Ich glaub, jetzt hab ich's gefressen
vielen Dank
Christoph

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige