Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 2. VBA: gefilterten Bereich kopieren

2. VBA: gefilterten Bereich kopieren
Marcy
Hallo zusammen,
eins vor weg.
meinen alten Betrag (28.09.2011) hierzu konnte ich nicht mehr beantworten.
Mache ich da etwas falsch?
Problem:
Der gefilterte Bereich AB ZEILE 25 BIS SPALTE E soll in die Zwischenablage kopiert (NUR WERTE) werden.
Dank Martin hatte es auch super funktioniert, der mir den Code gab.
Range(Cells(25, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 5)).SpecialCells( _
xlCellTypeVisible).Copy
Funktioniert prima, bei der einen Tabelle.
Den Code verwende ich nun auch in einer anderen Tabelle, jedoch muss ich nun den extra Schritt "Inhalte einfügen - Werte" anwenden.
Ich verstehe jetzt nicht, warum bei selben Code,
in der einen Tabelle nur WERTE in der Zwischenablage sind,
in der anderen Tabelle jedoch ALLES.
Komme zwar klar, wenn ich "Inhalte einfügen - Werte" machen muss, jedoch bin ich jetzt dank Martin etwas verwöhnt, da die erste Tabelle prima funktioniert, egal wo hin, einfach Strg+V und alles ist erledigt.
Gruß Marcy
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 2. VBA: gefilterten Bereich kopieren
12.10.2011 14:10:32
Nepumuk
Hallo,
ganz einfach, die eine Tabelle ist geschützt (Blattschutz) da kannst du nur Werte kopieren. Die andere Tabelle ist nicht geschützt da kopierst du alles.
Gruß
Nepumuk
AW: 2. VBA: gefilterten Bereich kopieren
12.10.2011 16:31:34
Marcy
Hi Nepumuk,
zu schön, wenn dass das Problem wäre.
Versuche es morgen erneut, da ich zuhause MAC User bin.
Kann es somit hier nicht testen.
Rückmeldung folgt.
Marcy
Anzeige
AW: 2. VBA: gefilterten Bereich kopieren
13.10.2011 07:30:25
Marcy
Hi Nepumuk,
wie schon gesagt, es wäre zu schön.
selbst die erst Tabelle spinnt jetzt
Der Code klappt und befindet sich in Tabelle 3. Egal wo ich dann Strg+V drücke, kommen nur Werte
In dieser Tabelle sind alle Zellen = Tabelle 1, jedoch anders angeordnet.

Sub KOPIEREFILTERL()
ActiveSheet.Unprotect "marcy"
Range(Cells(25, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 5)).SpecialCells( _
xlCellTypeVisible).Copy
MsgBox "Die Daten befinden sich nun in Deiner Zwischenablage. Gruß Marcy"
End Sub
Der Code klappt nicht und befindet sich in Tabelle 4.
Die Daten sind ebenfalls aus der Tabelle 1, wieder anders angeordnet.
Der Unterschied ist nur, Count, 4) zu Count, 5) oben.
Wenn ich hierbei Strg+V drücke, wird alles eingefügt.Verstehe es nicht.

Sub KOPIEREFILTERI()
ActiveSheet.Unprotect "marcy"
Range(Cells(25, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 4)).SpecialCells( _
xlCellTypeVisible).Copy
MsgBox "Die Daten befinden sich nun in Deiner Zwischenablage. Gruß Marcy"
End Sub

Die selben Codes habe ich in der zweiten Tabelle.
Dort sind die Daten in Tabelle 3+4 ebenfalls gleich Tabelle 1 jeweils anders angeordnet.
Der Unterschied ist, das hier in Tabelle 1 der Bereich {=MTRANS(BEREICH)} ist.
Der ist aber geschützt.
So in etwa ist Tabelle 1
Spalte A
Fachhöhe
Spalte B
Identnummer
Spalte C
Bezeichnung
Spalte D
Ebene
Spalte E
Regalbezeichnung
In den Tabellen 3+4 ist die Anordnung anders, zieht die Daten aber aus Tabelle 1.
Damit sollen 1x Lagerplatzzuordnungen und 1x Identnummerzuordnungen für SAP erstellt werden.
Während des Schreibens hier, habe ich noch was probiert und dann zufällig was entdeckt.
Wenn der gefilterte Bereich zusammenhängend ist, dann wird Alles eingefügt (z.B. Zeile 46, 47, 48)
Wenn eine Zeile dazwischen nicht dem Suchkriterium entspricht, werden Werte eingefügt (z.B. Zeile 46, 47, 49)
Würde also klappen, solange das nicht alle Lagerplätze verwendet werden. Aber das will ich nicht hoffen.
Marcy
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Gefilterte Bereiche in Excel mit VBA kopieren und einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei: Stelle sicher, dass deine Tabelle mit den gefilterten Daten geöffnet ist.

  2. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf „VBAProject (deinDateiname)“ und wähle „Einfügen“ > „Modul“.

  4. Füge den folgenden Code ein:

    Sub KOPIEREFILTERL()
       ActiveSheet.Unprotect "deinPasswort" 'Entferne den Blattschutz
       Range(Cells(25, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 5)).SpecialCells( _
       xlCellTypeVisible).Copy
       MsgBox "Die gefilterten Daten befinden sich nun in Deiner Zwischenablage."
    End Sub
  5. Führe das Makro aus: Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.

  6. Füge die Daten ein: Gehe zu der Ziel-Tabelle und drücke Strg + V, um die Daten einzufügen.


Häufige Fehler und Lösungen

  • Problem: „Ich kann nur Werte einfügen, nicht die gesamten Daten.“

    • Lösung: Überprüfe, ob das Arbeitsblatt geschützt ist. Wenn ja, entferne den Schutz mit ActiveSheet.Unprotect.
  • Problem: „Ich erhalte nur Werte, wenn ich die Daten einfüge.“

    • Lösung: Das Verhalten kann variieren, je nachdem, ob der gefilterte Bereich zusammenhängend ist oder nicht. Stelle sicher, dass du nur in gefilterte Zellen einfügst.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch die Funktion „Kopieren und Einfügen“ manuell nutzen:

  1. Markiere den gefilterten Bereich: Wähle die gefilterten Zellen aus.
  2. Kopiere die Daten: Drücke Strg + C.
  3. Wechsle zu der Ziel-Tabelle: Klicke in die erste Zelle, in die du die Daten einfügen möchtest.
  4. Füge die Daten ein: Gehe zu „Start“ > „Einfügen“ und wähle „Inhalte einfügen…“, um die Werte auszuwählen. Dadurch werden nur die Werte in die gefilterte Tabelle eingefügt.

Praktische Beispiele

  • Beispiel 1: Um gefilterte Zeilen zu kopieren und in eine gefilterte Tabelle einzufügen, könntest du den Makro-Code anpassen, um nur die Sichtbaren zu kopieren.

  • Beispiel 2: Verwende den Code, um gefilterte Daten in andere Tabellen einzufügen. Stelle sicher, dass die Zielzelle ebenfalls gefiltert ist, um die Formatierung zu erhalten.


Tipps für Profis

  • Verwende Named Ranges: Wenn du oft mit denselben Bereichen arbeitest, definiere benannte Bereiche, um den Code zu vereinfachen.

  • Automatisiere die Eingabe: Baue eine Benutzeroberfläche in Excel VBA ein, um den Prozess zu erleichtern.

  • Teste immer vor dem Ausführen: Überprüfe deinen Code in einer Testumgebung, bevor du ihn in wichtigen Dateien ausführst.


FAQ: Häufige Fragen

1. Warum funktionieren die VBA-Codes nicht in jeder Tabelle?
Das kann an Unterschieden in den Tabellen liegen, wie etwa dem Blattschutz oder den Datenformaten.

2. Wie kann ich sicherstellen, dass ich nur in gefilterte Zellen einfüge?
Nutze die Funktion „Inhalte einfügen“ und wähle „Werte“, um sicherzustellen, dass nur die gefilterten Werte eingefügt werden.

3. Was mache ich, wenn ich mehr als eine gefilterte Spalte kopieren möchte?
Erweitere den Range-Befehl im VBA-Code, um mehrere Spalten zu berücksichtigen, indem du die Grenzen entsprechend anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige