Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Nach jedem Datensatz acht Leerzeilen mit Makro
#1
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.
Antworten Top
#2
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
Antworten Top
#3
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.
Antworten Top
#4
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
Antworten Top
#5
Hier im Anhang habe ich mal einen Screenshot von der Tabelle, falls das irgendwie helfen kann :)


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#6
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:
Antworten Top
#7
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
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Hschuh
Antworten Top
#8
Wink 
FENNEK!!

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

1000 1000 1000 Dank :19:
Antworten Top


Gehe zu:


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