Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
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
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife wiederholen

Schleife wiederholen
09.06.2006 08:39:34
Anton
Guten Morgen Leute,
ich möchte die Überschriften (Zeile 1) unter jeden gefundenen Eintrag der Spalte A setzen lassen.
Die Vorgehensweise:
Zählen der Überschriften mit:
Spaltenanzahl = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Zeile auswählen mit:

Sub ZeileEinfügen()
Dim Lrow As Long, i As Long
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = Lrow To 2 Step -2
If Cells(i, 1).Value Like "*CDN*" Then
Cells(Lrow - 1, 1).Insert Shift:=xlDown
End If
Next i
'Schade, der Code funzt nur vor der letzten Zeile
End Sub

Dies hier habe ich aufgezeichnet:

Sub ZZ_AUFZ_ZeileEinfügen()
Range("A14").Select
Selection.EntireRow.Insert
Range("A13").Select
End Sub

Bitte wer kann mir weiterhelfen?
Problem A: mir fehlt der Code für die Wiederholung
Problem B: Das Makro "ZeileEinfügen" wirkt nur auf die letzte Zeile.
Für Eure Hilfe danke ich Euch sehr.
Servus,
Anton

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife wiederholen
09.06.2006 08:49:56
P@ulchen
Hallo Anton,
probier mal so (ungetestet):

Sub ZeileEinfügen()
Dim Lrow As Long, i As Long
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = Lrow To 2 Step -2
If Cells(i, 1).Value Like "*CDN*" Then
Cells(i+1, 1).Insert Shift:=xlDown
End If
Next i
End Sub

Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

AW: Schleife wiederholen
09.06.2006 09:05:16
Anton
Hallo Paulchen,
beinahe richtig.
Dein Makro fügt nur in den ersten beiden Spalten Zellen ein.
Und das auch nur alle 2 Einträge bis zum Ende der ursprüglichen Daten.
Danach nur in Spalte A.
Bitte schau' es Dir mal an.
Hier die Datei:
https://www.herber.de/bbs/user/34257.xls
Danke.
Servus,
Anton
Anzeige
AW: Schleife wiederholen
09.06.2006 09:11:59
P@ulchen
Hallo Anton,

Sub ZeileEinfügen()
Dim Lrow As Long, i As Long
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = Lrow To 2 Step -1
If Cells(i, 1).Value Like "*CDN*" Then
Rows(i + 1).Insert Shift:=xlDown
End If
Next i
End Sub

Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

AW: Schleife wiederholen
09.06.2006 09:25:54
Anton
Hallo Paulchen,
erstmal vielen Dank.
Dieser Teil funktioniert jetzt tatellos.
Das Makro fügt mir jetzt bei jeder gefundenen zeile eine Leerzeile ein.
Ich bin aber noch nicht ganz am Ziel.
Wie kann ich jetzt (sagen wir mal) je 8 Zeilen einfügen lassen?
Am liebsten wäre mir wenn ich die Zahl der einzufügenden Zeilen aus der Zahl der Spalten gewinnen könnte.
Zum Beispiel:
Spaltenanzahl = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
{minus 1, da Spalte A keine Zahlen zum Inhalt hat}
Kannst Du mir auch hier auf die Sprünge helfen?
Servus,
Anton
Anzeige
AW: Schleife wiederholen
09.06.2006 09:40:51
P@ulchen
Hallo Anton,
wenn ich Dich richtig verstehe, möchtest Du, wenn Du insgesamt 9 Spalten hast, unter jeder Fundzeile 8 Zeilen einfügen?
Dann so:

Sub ZeileEinfügen()
Dim Lrow As Long, Scol, i As Long
Scol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = Lrow To 2 Step -1
If Cells(i, 1).Value Like "*CDN*" Then
Rows(i + 1 & ":" & i + Scol).Insert Shift:=xlDown
End If
Next i
End Sub

Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: Schleife wiederholen
09.06.2006 09:55:42
Anton
Hallo Paulchen,
Du bist genial.
Jetzt fügt er so viele Zeilen ein wie Spalten gefüllt sind.
Vielen Dank
Wie kann ich jetzt der Wert "scol" um 2 reduzieren?
Ich habe zwei Spalten, die nicht mitzählen.
Kannst Du bitte auch noch ein paar Kommentare einfügen, damit ich auch etwas lerne?
Servus,
Anton
Nachtrag: AW: Schleife wiederholen
09.06.2006 10:01:35
Anton
Hallo Paulchen,
das mit der Reduktion der einzufügenden Zeilen habe ich so geändert
(und funzt):

Sub ZeileEinfügen()
Dim Lrow As Long, Scol, i As Long
Scol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = Lrow To 2 Step -1
If Cells(i, 1).Value Like "*CDN*" Then
Rows(i + 1 & ":" & i + Scol - 2).Insert Shift:=xlDown
End If
Next i
End Sub

Dir nochmals heißen Dank.
Servus,
Anton
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige