Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mittels Makro jede 20. Zeile auslesen

Mittels Makro jede 20. Zeile auslesen
03.04.2017 16:46:33
Paul
Hallo liebe Excel-Experten,
ich habe ein Problem mit dem ich aufgrund bisher eher dürftiger Excel-Kenntnisse nicht alleine fertig werde.
Ich möchte gerne aus einer Excel Tabelle jede 20. Zeile, beginnend in Zeile 4, auf ein neues Tabellenblatt kopieren.
Dabei sollen die spalten A bis I kopiert werden. Da die zu bearbeitenden Tabellen 30.000- 60.000 Zeilen lang sind lässt sich dies schlecht per Hand durch führen. Ich hatte dabei an ein Makro gedacht das ich jeweils auf die jeweiligen Dateien anwenden kann und mir den gewollten Daten in ein neues Arbeitsblatt kopiert, sodass die RAW-Datei/Tabelle unverändert bleibt.
Falls meine Beschreibung nicht genau genug war bitte nachhaken!
Bei Bedarf könnte ich auch ggf. eine solche Tabelle hochladen.
Würde mich über Antworten sehr freuen, vielen Dank schon mal im voraus
Gruß Paul
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittels Makro jede 20. Zeile auslesen
03.04.2017 16:54:30
Rudi
Hallo,
in der Zieltabelle:
=INDEX(Tabelle1!A:A;(ZEILE(A1)-1)*20+4)
nach rechts und unten ziehen, kopiere, Einfügen-Inhalte einfügen.
Gruß
Rudi
AW: Mittels Makro jede 20. Zeile auslesen
03.04.2017 17:03:06
UweD
Per Formel?

Tabelle2
 A
1Text aus A4
2Text aus A24
3Text aus A44
4Text aus A64
5Text aus A84
6Text aus A104
7Text aus A124
8Text aus A144
9Text aus A164
10Text aus A184
11Text aus A204

verwendete Formeln
Zelle Formel Bereich N/A
A1:A11=INDIREKT("Tabelle1!A"&(ZEILE(A1)-1)*20+4)  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


LG UweD
Anzeige
Ups. Korrektur !
03.04.2017 19:08:15
KlausF
Hallo Paul,
hatte noch vergessen eine Zeile im Makro zu löschen.
wksZiel.Clear muss raus !
Gruß
Klaus
AW: Ups. Korrektur !
04.04.2017 10:26:40
Paul
Super vielen Dank für die prompte Hilfe !
Klappt jetzt alles wie am Schnürchen!
Gruß Paul
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Jede 20. Zeile aus Excel mittels Makro auslesen


Schritt-für-Schritt-Anleitung

Um jede 20. Zeile aus einer Excel-Tabelle zu extrahieren, kannst Du ein Makro verwenden. Hier sind die Schritte:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub Jede20ZeileKopieren()
        Dim wksQuelle As Worksheet
        Dim wksZiel As Worksheet
        Dim i As Long
        Dim j As Long
    
        Set wksQuelle = ThisWorkbook.Sheets("Tabelle1") ' Quelle Tabelle
        Set wksZiel = ThisWorkbook.Sheets.Add ' Neues Blatt erstellen
    
        j = 1
        For i = 4 To wksQuelle.Cells(Rows.Count, 1).End(xlUp).Row Step 20
            wksZiel.Cells(j, 1).Value = wksQuelle.Cells(i, 1).Value ' Spalte A
            wksZiel.Cells(j, 2).Value = wksQuelle.Cells(i, 2).Value ' Spalte B
            wksZiel.Cells(j, 3).Value = wksQuelle.Cells(i, 3).Value ' Spalte C
            ' ... Füge weitere Spalten hinzu bis Spalte I
            j = j + 1
        Next i
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle Jede20ZeileKopieren und klicke auf Ausführen.

Das Makro kopiert nun jede 20. Zeile, beginnend ab Zeile 4, in ein neues Arbeitsblatt.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.
    Lösung: Stelle sicher, dass die Quell-Tabelle den richtigen Namen hat (z.B. "Tabelle1"). Achte auch darauf, dass Du das Makro in einem Arbeitsbuch speicherst, das Makros unterstützt (z.B. .xlsm).

  • Fehler: Die Daten werden nicht korrekt kopiert.
    Lösung: Überprüfe den Code und stelle sicher, dass die Spalten A bis I richtig referenziert sind und dass die Schleife korrekt eingestellt ist.


Alternative Methoden

Wenn Du kein Makro verwenden möchtest, kannst Du auch Formeln nutzen. Zum Beispiel:

  1. In der Zelle A1 des Zielblattes:

    =INDEX(Tabelle1!A:A; (ZEILE(A1)-1)*20 + 4)
  2. Ziehe die Formel nach unten, um die gewünschten Zeilen zu extrahieren.

Diese Methode ist einfach, jedoch weniger flexibel bei sehr großen Datenmengen.


Praktische Beispiele

Ein Beispiel für eine Tabelle mit Daten könnte so aussehen:

A B C ... I
Text1 ... ... ... ...
Text2 ... ... ... ...
... ... ... ... ...
Text20 ... ... ... ...
Text21 ... ... ... ...

Wenn Du das Makro ausführst, wird das neue Blatt so aussehen:

A B C ... I
Text4 ... ... ... ...
Text24 ... ... ... ...
Text44 ... ... ... ...
... ... ... ... ...

Tipps für Profis

  • Verwendung von Variablen: Nutze Variablen für die Quell- und Zielblätter, um den Code flexibler zu gestalten.
  • Fehlerbehandlung: Implementiere Error-Handling im Makro, um unerwartete Probleme zu vermeiden. Verwende On Error Resume Next, um den Code robuster zu machen.
  • Komplexere Logik: Wenn Du weitere Bedingungen beim Kopieren hast (z.B. nur bestimmte Werte), kannst Du die If-Bedingungen im VBA-Code hinzufügen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, wenn ich mehr oder weniger als 20 Zeilen brauche?
Du kannst die Zahl in der Step-Anweisung des For-Loops ändern. Zum Beispiel, um jede 10. Zeile zu kopieren, ändere Step 20 in Step 10.

2. Funktioniert das Makro in Excel 2010 und neuer?
Ja, das Makro sollte in Excel 2010 sowie in neueren Versionen wie Excel 2016 und Excel 365 problemlos funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige