Microsoft Excel

Herbers Excel/VBA-Archiv

Benötige VBA-Hilfe für eine automatische Leerzeile

Betrifft: Benötige VBA-Hilfe für eine automatische Leerzeile von: bruchpilot1982
Geschrieben am: 11.09.2014 22:21:40

Hallo zusammen!

Ich bräuchte eure professionelle Hilfe bzgl. einer Excel-Tabelle. Bin da gerade ein bisschen am Basteln und leider VBA-technisch noch sehr unerfahren!

Kurze Erklärung zu meiner Idee, von der ich hoffe, dass sie irgendwie realisierbar ist.

Ich kopiere jede Woche eine Statistik in eine Excel-Tabelle (einfaches markieren und kopieren der entsprechenden Daten aus einer Website). Die Kopie wird jedesmal via eines gebastelten Einfügen-Button in die Spalten A-C eingefügt, die bereits bestehenden Daten rutschen dann jeweils um 3 Spalten nach rechts. Soweit, sogut.

Nur sind leider (bedingt durch die Website) zwischen den Zeilen manchmal eine Leerzeile, manchmal zwei Leerzeilen, manchmal keine. Das variiert blöderweise auch, sodass ich das nicht mit einer einfachen Makro lösen kann (wie gesagt, liegt an der Website).

Ich würde mir gerne einen Button basteln bzw. den entsprechenden VBA-Code am Schluss meines Einfügen-Buttons mit anhefen, so dass diese Leerzeilen elimiert werden und das ganze wieder einheitlich aussieht und ich nicht jedesmal die einzelnen Leerzeilen manuell löschen muss.

Also der Gedanke ist quasi:
Die erste Zeile soll grundsätzlich leer bleiben bzw. nicht beachtet werden.
Nach dem Einfügen der Daten soll überprüft werden, ob in "Zeile 2" die Spalten A-C (es würde auch die Überprüfung einer Spalte, also A, B ODER C reichen) leer sind bzw. leer ist. Ist das der Fall, soll in der Spalte A-C die Zeile 2 gelöscht und alles darunter befindliche nach oben verschoben werden (also sowas wie "Selection.Delete Shift:=xlUp").
Ist das jedoch nicht der Fall und es steht was in der genannten Sektion, dann soll die selbe Kontrolle mit der Zeile 3 gemacht werden ... usw,usw,usw...
Dabei soll wie geschrieben die erste Zeile grundsätzlich immer leer bleiben und die Prüfung bis zur Zeile 100 durchgeführt werden.

Ein kleines Beispiel von meiner Excel-Tabelle hänge ich an. In dieser ist es in den verschiedenen Blättern denke ich ganz gut dargestellt. Meine originale Tabelle ist natürlich etwas komplexer bzw. umfangreicher, das Prinzip bleibt aber in etwa das gleiche.
https://www.herber.de/bbs/user/92586.xlsx

Ich hoffe, ich konnte mich einigermaßen gut ausdrücken und verständlich machen, was ich gerne haben wollen würde.

Viele Grüße
der Jojo

  

Betrifft: AW: Benötige VBA-Hilfe für eine automatische Leerzeile von: Jack_d
Geschrieben am: 12.09.2014 09:31:37

Hallo Jojo

meinst du so in etwa?

Sub Makro1()
With Worksheets("nach dem einfügen")

   
    For i = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
   
        If .Cells(i, 1) = "" Then
           .Range(.Cells(i, 1), .Cells(i, 3)).Delete Shift:=xlUp
        End If
    Next i
   
End With
End Sub
Grüße


  

Betrifft: AW: Benötige VBA-Hilfe für eine automatische Leerzeile von: bruchpilot1982
Geschrieben am: 14.09.2014 06:56:51

Danke, hab die einfachste Lösung mittlerweile erhalten, welche ich sogar mit einem Makro hätte erstellen können!

    Range("A2:C100").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp



 

Beiträge aus den Excel-Beispielen zum Thema "Benötige VBA-Hilfe für eine automatische Leerzeile"