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

Forumthread: Wie Zeilen mittels VBA kopieren ohne ausgeblendete

Wie Zeilen mittels VBA kopieren ohne ausgeblendete
21.01.2016 13:25:07
KH
Guten tag zusammen,
ich habe ein Makro geschrieben welches mir aus einer Datenbank spaltenweise Inhalte auf Knopfdruck in ein anderes Tab ("Export") übernimmt:
x = (WorksheetFunction.CountA(Sheets("Tabelle1").Range("B2:B5000")))
Sheets("Export").Range("A4:A" & x).Value = Sheets("Tabelle1").Range("B2:B10000").Value
Sheets("Export").Range("B4:B" & x).Value = Sheets("Tabelle1").Range("L2:L10000").Value
Sheets("Export").Range("C4:C" & x).Value = Sheets("Tabelle1").Range("I2:I10000").Value
Sheets("Export").Range("D4:D" & x).Value = Sheets("Tabelle1").Range("J2:J10000").Value
Wie kann ich nun verhindern, dass auch die in der Tabelle 1 mittels Filter ausgeblendeten Zeilen kopiert werden?
Danke & VG
KH

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie Zeilen mittels VBA kopieren ohne ausgeblendete
21.01.2016 13:56:11
Rudi
Hallo,
indem du kopierst und nicht Werte zuweist.
Sheets("Tabelle1").Range("B2:B10000").Copy Sheets("Export").Range("A4")
Gruß
Rudi

AW: Wie Zeilen mittels VBA kopieren ohne ausgeblendete
21.01.2016 14:39:16
KH
Hallo Rudi, danke für den Hinweis. Da hätte ich drauf kommen können :D
Gruss
KH
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel mittels VBA kopieren ohne ausgeblendete Zeilen


Schritt-für-Schritt-Anleitung

Um in Excel ausgeblendete Zeilen nicht zu kopieren, kannst du folgendes VBA-Skript verwenden. Dieses Skript kopiert nur die sichtbaren Zellen und ignoriert die ausgeblendeten:

  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 einzufügen.

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

    Sub KopiereOhneAusgeblendeteZeilen()
       Dim wsQuell As Worksheet
       Dim wsZiel As Worksheet
       Dim rngZuKopieren As Range
       Dim rngZiel As Range
    
       Set wsQuell = ThisWorkbook.Sheets("Tabelle1")
       Set wsZiel = ThisWorkbook.Sheets("Export")
       Set rngZuKopieren = wsQuell.Range("B2:B10000").SpecialCells(xlCellTypeVisible)
       Set rngZiel = wsZiel.Range("A4")
    
       rngZuKopieren.Copy rngZiel
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.

  5. Drücke Alt + F8, um das Makro auszuführen und wähle KopiereOhneAusgeblendeteZeilen.

Dieses Skript sorgt dafür, dass nur die sichtbaren Zeilen kopiert werden und die ausgeblendeten Zeilen nicht in die Ziel-Tabelle gelangen.


Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004: Die Methode 'SpecialCells' für das Objekt 'Range' ist fehlgeschlagen.“

    • Lösung: Stelle sicher, dass im angegebenen Bereich keine ausgeblendeten Zeilen sind. Wenn alle Zeilen ausgeblendet sind, kann die Methode nicht ausgeführt werden. Überprüfe, ob der Filter aktiv ist.
  • Fehler: „Das Makro kann nicht ausgeführt werden.“

    • Lösung: Überprüfe, ob dein Excel-Dokument Makros unterstützt. Du musst die Makros in den Sicherheitseinstellungen aktivieren.

Alternative Methoden

Eine andere Möglichkeit, Excel-Daten ohne ausgeblendete Zeilen zu kopieren, ist das Verwenden der Filterfunktion:

  1. Wende den AutoFilter auf die Daten in „Tabelle1“ an.
  2. Wähle die gewünschten Daten aus und kopiere sie (Rechtsklick > Kopieren).
  3. Füge die Daten in die „Export“-Tabelle ein.

Diese Methode funktioniert gut, ist jedoch manuell und weniger flexibel als das VBA-Skript.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit Verkaufsdaten und möchtest nur die sichtbaren Zeilen kopieren. Verwende das VBA-Skript, um nur die Verkäufe anzuzeigen, die nicht durch einen Filter ausgeblendet sind.

Ein Beispiel für einen Anwendungsfall könnte sein, wenn du bei einer Bestandsaufnahme nur die Produkte kopieren möchtest, die in der aktuellen Sicht sichtbar sind.


Tipps für Profis

  • Nutze die If...Then-Bedingung in deinem VBA-Skript, um zusätzliche Logik hinzuzufügen, z. B. nur Produkte mit einem Mindestbestand zu kopieren.
  • Du kannst das Skript so anpassen, dass es auch mehrere Spalten gleichzeitig kopiert, indem du die Union-Funktion verwendest.

Hier ist ein Beispiel für das Kopieren mehrerer Spalten:

Set rngZuKopieren = Union(wsQuell.Range("B2:B10000"), wsQuell.Range("L2:L10000")).SpecialCells(xlCellTypeVisible)

FAQ: Häufige Fragen

1. Wie kann ich verhindern, dass bestimmte Spalten kopiert werden?
Du kannst das VBA-Skript anpassen, indem du nur die gewünschten Spalten in rngZuKopieren einfügst.

2. Ist diese Methode in allen Excel-Versionen anwendbar?
Ja, das Skript funktioniert ab Excel 2007 und höher, solange die Makros aktiviert sind.

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