Clever-Excel-Forum

Normale Version: Nach jedem Datensatz acht Leerzeilen mit Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich lese selbst sehr oft in diesem Forum, und nun habe ich ein Problem wo ich bisher nirgends eine Lösung gefunden habe.

Ich soll auf der Arbeit in einer Exceltabelle nach jeden fünften Datensatz acht Leerzeilen einfügen.

Acht Leerzeilen einfügen ist ja kein Problem, das Problem ist, das es über ein Makro laufen soll. Ich habe bisher mit einigen Befehlen gespielt und gebastelt, aber wenn ich ehrlich bin, verzweifle ich momentan daran.

hier ein Bsp
     a
1 Datensatz
2 Leer
3 Leer
4 Leer
5 Datensatz
6 Leer
7 Leer
8 Leer
9 Datensatz


Also unter jedem Datensatz sind schon drei Leerzeilen, da die Daten in der zweiten Mappe in eine Vorlage gezogen werden, dass habe ich über ein Makro schon hinbekommen.

Nun müssen aber nach jeden fünften Datensatz nochmal Acht Leerzeilen on top - das brauche ich, weil ich in der zweiten Mappe Zwei Komplette Leer Felder in  meiner Vorlage brauche, dass jemand nachher mit dem Stift dort Notizen machen kann.


Hoffe ich habe mein Problem gut genug geschildert und ich hoffe ihr könnt mir vielleicht helfen.
Hallo,

im Moment habe ich keinen PC mit xl und VBA vor mir, deswegen aus dem Gedächtnis geschrieben. Damit dürfte die Struktur stimmen, aber es besteht noch Bedafr fürs debuggen.


Code:
for each ar in columns("A").spacialcells(2).Areas
   i = i +1
   if i = 5 then
      ar.row.offset(1).insert.entirerow shift:=xldown 'Änderung für 8 Zeilen
      i=0
   end if
next ar

mfg
Hallo Fennek,

Danke für deine Hilfe,  aber leider kommt da die Fehlermeldung "Fehler beim Kompilieren: Außerhalb einer Prozedur ungültig"

Debuggen wollte er auch nicht.
Hallo,

ganz vorsichtlich formuliert:

Der Code gehört in eine Sub, das mindeste ist

Sub Zeilen_einfügen()

'hier der Code von ober

end sub


mfg
Hier im Anhang habe ich mal einen Screenshot von der Tabelle, falls das irgendwie helfen kann :)
Den Code habe ich in eine Sub gesetzt, aber leider kommt jetzt der Laufzeitfehler 438.

Ich habe leider bisher nur Makrobefehle aus dem Forum genommen und für mich angepasst, ich selbst bin dem Schreiben eines Makro nicht mächtig :22:
Hallo,

hier die debuggde Version:


Code:
Sub Zeilen_einfügen()
For Each ar In Columns("A").SpecialCells(2).Areas
  i = i + 1
  If i = 5 Then
     ar.Offset(1).Resize(8).EntireRow.Insert
     i = 0
  End If
Next ar

End Sub

Auf dem Bild konnte ich nicht erkenne, ob die Spalte "A" ausschlagebend ist, ansonsten müßte "columns("A")" durch eine andere Spalte ersetzt werden.

mfg
FENNEK!!

Du Bist Mein Persönlicher Held Des Tages!!! Vielen Vielen Dank ::)) Dein Befehl Funktioniert Perfekt.

1000 1000 1000 Dank :19: