1. #1
    Lt. Commander
    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    Excel 2010 Makro leere Zeilen löschen

    Hallo,

    ich möchte ein kleines Makro erstellen, welches die Spalte C überprüft, um die erste leere Zelle zu markieren und ab dieser Zelle alle Zeilen zu löschen.

    Ich habe diesen Code gefunden, um die erste freie Zelle zu markieren, nur wie lasse ich Excel dann alle Zeilen darunter löschen (Clear all contents reicht auch)?

    Code:
    Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Select 
    
    End Sub
    Danke im voraus!
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Lt. Junior Grade
    Dabei seit
    Jan 2011
    Ort
    Bruchsal
    Beiträge
    432

    AW: Excel 2010 Makro leere Zeilen löschen

    Bezieht sich allerdings wie in deinem Beispiel nur auf Spalte 2! Oder brauchst du es für alle Spalten?

    Code:
    Sub a()
    
        Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Select
        Range( _
            Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2), _
            Cells(Cells(Rows.Count, 2).End(xlDown).Row, 2) _
        ).ClearContents
        
    End Sub
    Ich mag Orthographie.

  4. #3
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Ich bräuchte es für alle Spalten... Den Code oben habe ich auch nur gegoogelt und verstehe ihn ehrlich gesagt nicht ganz.
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  5. #4
    Lt. Commander
    Dabei seit
    Dez 2012
    Ort
    Dresden
    Beiträge
    1.062

    AW: Excel 2010 Makro leere Zeilen löschen

    Sind unterhalb alle Zellen leer?

    Dann so:
    Code:
        Range("C1").End(xlDown).Offset(1, 0).Select
        Range(Selection, Selection.End(xlDown)).EntireRow.Delete

  6. #5
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Ja sind sie. Ich werde das morgen mal testen. Danke

    Ergänzung vom 19.09.2013 09:43 Uhr: So ich hab es nun getestet...

    es gibt leider zwei Probleme:

    1. Man muss das Makro zwei mal ausführen, damit es "funktioniert"

    2. irgendwie werden alle Zeilen darüber etwas verschoben. Das was vorher in Zeile 21 war ist nun z.B: in Zeile 19....

    Eine Idee?
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  7. #6
    Lt. Commander
    Dabei seit
    Dez 2012
    Ort
    Dresden
    Beiträge
    1.062

    AW: Excel 2010 Makro leere Zeilen löschen

    Lad die Tabelle am besten mal hier als Anhang hoch, dann kann man das leichter nachvollziehen; da kann viel falsch sein.

  8. #7
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Hier die Datei:

    Unbenannt 1.zip

    Alles unter dem letzten Eintrag in Spalte C soll raus (Inhalte löschen). Danke!
    Geändert von Furble (27.09.2013 um 09:33 Uhr)
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  9. #8
    Lieutenant
    Dabei seit
    Nov 2008
    Beiträge
    766

    AW: Excel 2010 Makro leere Zeilen löschen

    Moin,

    hier einmal mit "wirklich" löschen:
    Code:
    Option Explicit
    
    Sub RestLoeschen()   'By GMG-CC
       Dim lRowC As Long, lRowAll As Long
       Dim i As Long
       
       lRowC = Cells(Rows.Count, 3).End(xlUp).Row
       lRowAll = Cells.Find(what:="*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
       
       For i = lRowAll To lRowC + 1 Step -1
          Rows(i).EntireRow.Delete
       Next i
    End Sub
    Beste Grüße

    Günther

    Mein Credo ...

  10. #9
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Hallo Günther,

    vielen Dank dafür! Das ist der erste Code, der bei mir tut was er soll

    Nur leider ist er mit einem sehr großen Rechenaufwand verbunden. Da das ganze bei mir nicht nur in einem Tabellenblatt, sondern in etwa zehn gemacht werden muss, dauert der ganze Prozess ziemlich lange. Auch Application.ScreenUpdating = False am Anfang schafft keine Abhilfe

    Wenn ich es Richtig verstanden habe, geht der Code alle Zeilen einzeln durch. Kann man es auch so machen, dass er schaut ab wann nichts mehr in Spalte C steht und dann unter diesem letzten Eintrag alle Zeilen auf einmal löscht?

    Ich wäre dir/euch sehr dankbar, wenn ihr dafür auch eine Lösung parat hättet.
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  11. #10
    Lieutenant
    Dabei seit
    Nov 2008
    Beiträge
    766

    AW: Excel 2010 Makro leere Zeilen löschen

    Moin,

    stimmt, in der For .. Next - Schleife wird wirtlich jede Zeile einzeln gelöscht. Be den (im Muster) wenigen Zeilen habe ich eher zu den Basics der Programmiererei gegriffen

    Und natürlich geht es "in einem Rutsch ..." Schau mal hier:
    Code:
    Option Explicit
    
    Sub RestLoeschen() 'By GMG-CC'
        Dim lRowC As Long, lRowAll As Long
        Dim i As Long
        
        On Error GoTo ErrorHandler
        With Application
          .ScreenUpdating = False
          .Calculation = xlCalculationManual
        End With
        
        lRowC = Cells(Rows.Count, 3).End(xlUp).Row
        lRowAll = Cells.Find(what:="*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
        Range("A" & lRowC + 1 & ":A" & lRowAll).EntireRow.Delete
    ErrorHandler:
        With Application
          .ScreenUpdating = True
          .Calculation = xlCalculationAutomatic
          .Calculate
        End With
    End Sub
    Alternative wäre noch:
    STATT
    lRowAll = Cells.Find(what:="*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
    Range("A" & lRowC + 1 & ":A" & lRowAll).EntireRow.Delete
    deklarierst du erst gar nicht die Variable lRowAll und ersetzt die beiden Zeilen mit
    Code:
            Range("A" & lRowC + 1 & ":A" & Rows.Count).EntireRow.Delete
    dann wird der komplette Rest nach unten bis zur allerletzten Zeile 65536 (bei Versionen ab 2007 > 1.000.000) gelöscht.

    Ich denke, das wird einiges an Geschwindigkeit bringen.
    Beste Grüße

    Günther

    Mein Credo ...

  12. #11
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Hey,

    super, das mit der Geschwindigkeit hat funktioniert! Nur ein letztes Problem gibt es noch: Durch das löschen der gesamten Zeile verschieben sich meine Formeln und funktionieren so leider nicht mehr.

    Ich wollte es also mit .ClearContents fixen, also so:

    Code:
    Range("A" & lRowC + 1 & ":A" & Rows.Count).ClearContents
    Leider löscht er dann gar nichts mehr.

    Eine weitere Hilfestellung wäre super!

    Vielen Dank!
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  13. #12
    Lieutenant
    Dabei seit
    Nov 2008
    Beiträge
    766

    AW: Excel 2010 Makro leere Zeilen löschen

    Moin,

    Durch das löschen der gesamten Zeile verschieben sich meine Formeln und funktionieren so leider nicht mehr.
    Das verstehe ich nicht. Wenn unterhalb der letzten Zeile in Spalte_C nichts mehr ist, dann gibt es doch auch nichts anzupassen …

    Lade noch einmal eine Tabelle hoch, wo das Problem sichtbar ist, Mit entsprechenden Kommentaren im Blatt.
    Beste Grüße

    Günther

    Mein Credo ...

  14. #13
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Hi,

    Das alte Problem konnte ich selbst lösen, eins gibt es jetzt noch: Das Makro löscht nicht unterhalb des letzten Eintrages in Spalte C alles, sondern einschließlich den letzten Eintrag. Kann das sein?

    Wie kann ich das fixen?

    Danke!

    Ergänzung vom 29.09.2013 15:02 Uhr: Ich habe deinen ersten Lösungsvorschlag angewendet, nicht den wo alles bis Zeile 65536 gelöscht wird.

    Ergänzung vom 29.09.2013 15:06 Uhr: okay, auch das konnte ich selbst durch folgenden Ausdruck lösen:

    alt:
    Code:
    Range("A" & lRowC + 1 & ":A" & lRowAll).EntireRow.Delete
    neu:
    Code:
    Range("A" & lRowC + 1 & ":A" & lRowAll + 1).EntireRow.Delete
    Müsste so stimmen, oder?

    Ergänzung vom 29.09.2013 15:08 Uhr: Letzte Frage :

    Kann ich in Dokument1 ein Makro mit Schaltfläche erstellen, welches alles Blätter aus Dokument1 in Dokument X (also mit variablen Namen), das auch geöffnet ist, kopiert?
    Geändert von Furble (29.09.2013 um 15:08 Uhr)
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  15. #14
    Lieutenant
    Dabei seit
    Nov 2008
    Beiträge
    766

    AW: Excel 2010 Makro leere Zeilen löschen

    Moin,

    Müsste so stimmen, oder?
    Ja. War ein Flüchtigkeitsfehler von mir.
    Letzte Frage :

    Kann ich in Dokument1 ein Makro mit Schaltfläche erstellen, welches alles Blätter aus Dokument1 in Dokument X (also mit variablen Namen), das auch geöffnet ist, kopiert?
    Hmmm, worüber unterhalten wir uns? 1 Arbeitsmappe (Datei) mit n Tabellenblättern?
    Mehrere geöffnete Mappen mit n Tabellenblättern?
    Noch eine andere Konstellation?
    Beste Grüße

    Günther

    Mein Credo ...

  16. #15
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Dokument1 hat zwei Blätter mit immer denselben Namen (sagen wir Tabelle1 und Tabelle2). Dokument x hat einen variablen Namen und unterschiedlich viele Blätter mit unterschiedlichen Namen.

    Die beiden Blätter aus Dokument1 sollen einfach an den Anfang von Dokument x kopiert werden. Dokument x ist gleichzeitig geöffnet.

    Danke
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  17. #16
    Lieutenant
    Dabei seit
    Nov 2008
    Beiträge
    766

    AW: Excel 2010 Makro leere Zeilen löschen

    Ah ja …

    das ist aber eine ganz andere Baustelle. Zwar die gleiche Datei. Und auch wohl nicht so schwer. Aber ich muss nun etwas Geld verdienen. Da lasse ich nun mal andere ran .
    Mein Tipp: So richtig schlau werde ich aus deiner Beschreibung immer noch nicht, vielleicht ein detaillierteres Beispiel …
    Beste Grüße

    Günther

    Mein Credo ...

  18. #17
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Alles klar, vielen Dank soweit! Ohne deine Hilfe wäre ich verloren gewesen!

    Mein Problem werde ich später nochmal detailierter beschreiben.

    Hättest du vielleicht noch einen Tipp wo ich mir solide Grundkenntnisse zu Excel Makros aneignen kann? Alles was ich bisher "programmiert" habe, habe ich über den Makro-Recorder gelöst order mir ergooglet..

    Liebe Grüße!
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

  19. #18
    Lt. Commander
    Dabei seit
    Feb 2008
    Ort
    Südwesten
    Beiträge
    1.467

    AW: Excel 2010 Makro leere Zeilen löschen

    Wie genau willst du bestimmen, in welche Mappe reinkopiert werden soll? Sagst du einfach, es sind grundsätzlich nur zwei offen und du willst in die andere kopieren? Du könntest auch ein Auswahlfenster öffnen lassen, in welche Mappe kopiert werden soll. Wäre wahrscheinlich sauberer, wenn auch ein Klick mehr beim Ausführen.
    Was ist 100% mehr? Genau, doppelt so viel.
    Was ist dann 6 mal mehr? Eben, 7 mal so viel.
    Noch schlimmer ist nur noch 2 mal weniger.
    Für eine verständliche und präzise Sprache!
    Es heißt x mal so viel oder xxx% der ursprünglichen Anzahl.

  20. #19
    Lieutenant
    Dabei seit
    Nov 2008
    Beiträge
    766

    AW: Excel 2010 Makro leere Zeilen löschen

    Moin,

    aufzeichnen ist schon mal gut. Allerdings musst du da reichlich nachbearbeiten, wenn der Code einigermaßen "sauber" sein soll. Und wenn es nicht zu viel Code ist, einfach hier mal einstellen und um "verschlanken" bitten. Da lernst du dann so einiges.

    Dann natürlich Fachliteratur. Die Bücher von Microsoft Press sind IMHO sehr gut, M&T ist auch gut lesbar. Deine Stadtbücherei kann dir die Bücher auch zur Ausleihe besorgen.

    Und wenn du im Job bist, kann es vielleicht sein, dass du Bildungsurlaub bekommst (hängt vom Bundesland ab) und deine Volkshochschule solch ein Seminar anbietet.

    Und wenn dein Chef es möchte, kann er jemanden organisieren, der fas (gegen Honorar) macht. Das ist bei kleinen Gruppen und gezielter Problemlage am effizientesten.
    Beste Grüße

    Günther

    Mein Credo ...

  21. #20
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Jan 2008
    Ort
    Erde
    Beiträge
    1.906

    AW: Excel 2010 Makro leere Zeilen löschen

    Zitat Zitat von simpsonsfan Beitrag anzeigen
    Wie genau willst du bestimmen, in welche Mappe reinkopiert werden soll? Sagst du einfach, es sind grundsätzlich nur zwei offen und du willst in die andere kopieren? Du könntest auch ein Auswahlfenster öffnen lassen, in welche Mappe kopiert werden soll. Wäre wahrscheinlich sauberer, wenn auch ein Klick mehr beim Ausführen.
    Wäre mir beides Recht, wobei wie du schon meintest letztere Möglichkeit "sauberer" wäre. Würde mich über einen Code freuen

    @Günther: Danke für die vielen Tipps! Ich werde die eine oder andere Sache ausprobieren
    Desktop: AMD Phenom II X4 940 @ 3,4Ghz @ Mugen II| MDT 4GB DDR2-800 Ram | Sapphire HD 6870 | WD Caviar Black 500GB | Foxconn A7GM-S 2.0 AM2+ | Windows 7 x64 Ultimate SP1
    Netbook: Samsung NC 10 | Ubuntu 10.10 Maverick Meerkat

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •