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

Forumthread: Tabelle aus Zwischenablage in Zelle einfügen

Tabelle aus Zwischenablage in Zelle einfügen
15.06.2017 08:30:24
Philipp
Hallo,
ich habe 2 verschieden Excel Arbeitsmappen. Die eine wird jedes mal neu aus SAP generiert. (Workbook2)
Die andere dient zur Datenaufbereitung und ist jedes mal gleich. (Workbook1)
Ich möchte die Tabelle aus Workbook2 in das Workbook1 per Button einfügen.
Mein Problem: Ich kann das Workbook2 nicht einfach durch einen Namen und Speicherort ansprechen um daraus eine Tabelle zu kopieren, weil sich der Name und Speicherort jedes mal ändert.
Meine Lösungsansätze:
Ich könnte die Zellen die kopiert werden sollen jedes mal markieren und kopieren.
Jetzt müsste ich die Zwischenablage per Button ja nur noch in das Workbook1 einfügen.
Leider funktioniert hier die PasteSpecial Mehtode nicht.
Eine andere Möglichkeit wäre die Zellen nur zu markieren und sie auch mittels VBA zu kopieren. Das Problem ist, ich weiß nicht wie ich markierten Zellen aus dem "unbekannten" Workbook 2 anspreche.
Warum das ganze?
Über den Button werden noch andere dinge verändert wie zum Beispiel Zeilen gelöscht und Formeln kopiert und dies würde den manuellen Aufwand deutlich reduzieren.
Vielen Dank für eure Hilfe
Gruß
Philipp
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
15.06.2017 10:32:26
Piet
Hallo Philipp,
da gibt es verschiedene Lösungsansaetze, den Kollegen wird sicher noch etwas einfallen.
Auf die Schnelle eine Ideee von mir. Mit unterem Code Datei Öffnen und das gewünschte Blatt in Workbook1 verschieben.
Der richtige Blatt Name muss im Code noch angegeben werden, zum Test nahm ich Tabelle1.
Wenn immer der gleiche Bereich kopiert werden soll kann man das auch im Makro machen.
Ansonsten kannst du jetzt innerhalb von Workbook1 kopieren was du willst und danach das kopierte Blatt löschen!
Was haelst du von der Idee? Probier es einfach mal aus. Vielleicht nicht die eleganteste Lösung, aber wenn es klappt ....
mfg Piet
Sub Externes_Blatt_Kopieren()
Dim WB As Workbook
Dim Datei As String
Set WB = ThisWorkbook
Datei = Application.GetOpenFilename
If Datei = Empty Then Exit Sub
'** Blatt Name anpassen:  hier Tabelle1
Workbooks.Open Filename:=Datei
Sheets("Tabelle1").Copy Before:=Workbooks(WB).Sheets(2)
End Sub

Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
16.06.2017 16:44:47
Philipp
Hallo Piet,
vielen Dank für deine schnelle Antwort.
Ich habe deinen Code mal ausprobiert und er produziert einen Laufzeit Fehler.
Ist aber auch nicht schlimm, denn mein Problem löst das verschieben einer Tabelle nicht.
Denn die SAP Tabelle wird in eine Tabelle eingefügt in der bereits Formeln und mehr Spalten vorhanden sind. Diese sollen dann auch per VBA auf die neuen Datensätze übertragen werden. ( Das funktioniert bereits)
Gibt es denn nicht eine Möglichkeit einfach die Zwischenablage immer in eine bestimme Zelle einzufügen?
Das wäre aus meiner Sicht die beste Lösung.
Vielen Dank für weitere Vorschläge
Gruß Philipp
Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
16.06.2017 22:16:39
Piet
Hallo
jetzt kann nich nur raten, versuchen wir es mal. Macht ja auch Spass wenn es klappt!!
Probier mal den unteren Code über einen Button aus. Würde mich freuen wenn es klappt.
mfg Piet
Sub Button_einfügen()
'Tabelle und Zelle auswaehlen
Worksheets("Tabelle1").Select
Range("B5").Select
'Text oder Unicode Text einfügen
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
ActiveSheet.PasteSpecial Format:="Unicode Text", Link:=False, DisplayAsIcon:=False
End Sub

Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
17.06.2017 13:19:53
Philipp
Hallo Piet,
vielen Dank für deine Antwort.
Wenn ich jetzt irgendeinen Text wie zum Beispiel deinen Code in die Zwischenablage kopiere funktioniert es. Wenn ich aber eine Zelle oder einen Bereich kopiere kommt ein Laufzeitfehler. (siehe Anhang)
Er gibt mir folgende Zeile als fehlerhaft aus:
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
Vielen Dank für weitere Hilfe
Gruß
Userbild
Philipp
Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
17.06.2017 13:28:29
Philipp
Hallo Piet,
ich habe es. Es funktioniert mit folgendem Code:
Selection.PasteSpecial xlPasteFormulas
Vielen Dank für deine Hilfe
Gruß
Philipp
AW: Tabelle aus Zwischenablage in Zelle einfügen
19.06.2017 10:45:43
Philipp
Hallo zusammen,
leider ist das Problem doch nicht gelöst.
Es kommt wieder obiger Laufzeitfehler wenn ich folgenden Code ausführen möchte:

Range("A3", Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 9)).ClearContents
Worksheets("Tabelle1").Select
Range("A3").Select
Selection.PasteSpecial xlPasteFormulas
Wenn ich allerdings die erste Zeile auskommentiere funktioniert es wieder einwandfrei.
Muss ich das Range Objekt irgendwie vorher zurücksetzen?
Gruß
Philipp
Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
19.06.2017 21:21:55
Piet
Hallo Philipp,
schwer zu sagen woran das liegt? Ich weiss das SpecialCells so seine Tücken hat. Es funktioniert z.B. nicht in Tabellen wenn Blattschutz aktiv ist! Ob es noch andere Problme gibt ist mir nicht bekannt.
Wenn es daran liegt dürfte es einfacher sein ganz normal über lz = LastZell mit End(xlUp) zu suchen.
Das klappt meines Wissens immer. Versuch mal ob das Problem damit behoben wird? Wenn nicht grosses "?"
Dim lz As Long 'Spalte bitte selbst waehlen
lz = Cells(Rows.Count, "A").End(xlUp).Row
Range("A3", Cells(lz, 9)).ClearContents
mfg Piet
Anzeige
AW: Tabelle aus Zwischenablage in Zelle einfügen
22.06.2017 09:25:53
Philipp
Hallo Piet,
es liegt daran, dass durch den Range.ClearContents Befehl die Zwischenablage gelöscht wird. Habe das ganze in einen neuen Button ausgelagert. Jetzt funktioniert es immerhin.
VG
Philipp

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabelle aus Zwischenablage in Zelle einfügen


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass die Daten, die du einfügen möchtest, in der Zwischenablage sind. Kopiere die gewünschten Zellen aus Workbook2.

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

  3. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub Button_einfügen()
        ' Tabelle und Zelle auswählen
        Worksheets("Tabelle1").Select
        Range("B5").Select
        ' Daten aus der Zwischenablage einfügen
        ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
        ActiveSheet.PasteSpecial Format:="Unicode Text", Link:=False, DisplayAsIcon:=False
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Füge einen Button hinzu und verknüpfe ihn mit dem Button_einfügen-Makro.


Häufige Fehler und Lösungen

  • Laufzeitfehler bei PasteSpecial: Wenn du einen Laufzeitfehler erhältst, wenn du versuchst, Inhalte aus der Zwischenablage einzufügen, könnte dies daran liegen, dass der kopierte Inhalt nicht mit dem Format übereinstimmt. Stelle sicher, dass du die richtigen Formate wie xlPasteFormulas verwendest.

  • Inhalte in der Zwischenablage werden gelöscht: Wenn du Range.ClearContents verwendest, wird die Zwischenablage möglicherweise geleert. Vermeide dies, indem du sicherstellst, dass der ClearContents-Befehl nicht vor dem Einfügen aufgerufen wird.


Alternative Methoden

  • Direktes Einfügen ohne VBA: Du kannst die Kopier- und Einfüge-Funktion in Excel auch manuell verwenden. Kopiere die Zellen in Workbook2 und wechsle zu Workbook1, um sie einzufügen.

  • Excel CSV aus Zwischenablage einfügen: Wenn du CSV-Daten hast, die du in Excel importieren möchtest, kannst du die Daten in eine Textdatei einfügen und diese dann in Excel importieren.


Praktische Beispiele

  • Bild aus Zwischenablage einfügen: Um ein Bild aus der Zwischenablage in eine Zelle einzufügen, verwende den folgenden VBA-Code:

    Sub Bild_einfügen()
        Dim pic As Object
        Set pic = ActiveSheet.Pictures.Paste
        pic.Top = Range("B5").Top
        pic.Left = Range("B5").Left
    End Sub
  • Daten aus der Zwischenablage importieren: Du kannst auch Daten durch das Einfügen von Formeln oder Werten aus der Zwischenablage in eine bestimmte Zelle importieren.


Tipps für Profis

  • Verwende xlPasteAll: Wenn du alle Inhalte inklusive Formatierungen und Formeln einfügen möchtest, verwende ActiveSheet.PasteSpecial xlPasteAll.

  • Fehlerbehebung mit Debugging: Nutze den Debugger im VBA-Editor, um den Code schrittweise auszuführen und Fehler zu identifizieren.

  • Makros optimieren: Halte deinen VBA-Code klar und strukturiert, um die Wartung und Anpassungen zu erleichtern.


FAQ: Häufige Fragen

1. Kann ich auch Daten aus einer externen Excel-Datei in die Zwischenablage kopieren?
Ja, du kannst Daten aus einer externen Excel-Datei kopieren und in deine aktuelle Arbeitsmappe einfügen.

2. Wie kann ich die Zwischenablage in Excel VBA leeren?
Es gibt keine direkte Methode, um die Zwischenablage in Excel VBA zu leeren. Du kannst jedoch den Inhalt überschreiben, indem du etwas anderes kopierst.

3. Warum funktioniert das Einfügen manchmal nicht?
Das Einfügen kann fehlschlagen, wenn die Zwischenablage leer ist oder der Inhalt nicht im erwarteten Format vorliegt. Achte darauf, dass die Daten korrekt kopiert wurden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige