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

Kopieren Zellen in anderes Workbook

Forumthread: Kopieren Zellen in anderes Workbook

Kopieren Zellen in anderes Workbook
Nick
Hallo liebes Forum,
ich habe ein kleines Problem mit folgenden Marko.

Private Sub Sturkturmatrix_Click()
Workbooks.Open Filename:="D:\Test.xlsx", UpdateLinks:=3
ThisWorkbook.Sheets("beispiel").Range("B6:G18").Copy
Windows("Test.xlsx").Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteValues
Windows("Test.xlsx").Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub

Irgendwie spinnt er bei Windows und ich weiss nicht warum... ich verzweifel noch. Ich wäre über hilfe sehr dankbar. Vielen Dank im Voraus.
Beste Grüsse
Nick
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kopieren Zellen in anderes Workbook
07.09.2011 14:06:33
fcs
Hallo Nick,
deine Zusatzinfos (außer Wörtern der Verzweiflung) zu den Problemen sind etwas dürftig.
Was passiert/passiert nicht, kommen Fehlermeldungen?
Grundsätzlich sollte das Makro funktionieren. Probleme (zeitlicher Ablauf) könnten evtl. auftreten, wenn die Aktualisierung der Verknüpfungen in der geöffneten Datei sehr lange dauert und wenn irgendwelcher Ereignismakros ablaufen.
Ich würde das Makro wie folgt aufbauen und zumindest erst die Formate und dann die Werte kopieren.
Gruß
Franz

Private Sub Sturkturmatrix_Click()
Dim wbQuelle As Workbook, wbZiel As Workbook
On Error GoTo Fehler
Application.EnableEvents = False
Set wbQuelle = ActiveWorkbook 'oder  = ThisWorkbook 'wenn ThisWorkbook unbedingt sein muss
'  Set wbZiel = Workbooks.Open(Filename:="D:\Test.xlsx", UpdateLinks:=3)
Set wbZiel = Workbooks.Open(Filename:="Mappe3.xls", UpdateLinks:=3)
wbQuelle.Sheets("beispiel").Range("B6:G18").Copy
wbZiel.Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteFormats
wbZiel.Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'  wbZiel.Close savechanges:=True
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
Application.EnableEvents = True
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Zellen in ein anderes Workbook kopieren – Schritt für Schritt


Schritt-für-Schritt-Anleitung

  1. Workbook öffnen: Stelle sicher, dass das Ziel-Workbook (z.B. Test.xlsx) existiert und der Pfad korrekt ist.

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

  3. Makro erstellen: Füge den folgenden Code in ein neues Modul ein:

    Private Sub Sturkturmatrix_Click()
        Dim wbQuelle As Workbook, wbZiel As Workbook
        On Error GoTo Fehler
        Application.EnableEvents = False
        Set wbQuelle = ThisWorkbook 'oder ActiveWorkbook
        Set wbZiel = Workbooks.Open(Filename:="D:\Test.xlsx", UpdateLinks:=3)
    
        wbQuelle.Sheets("beispiel").Range("B6:G18").Copy
        wbZiel.Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteFormats
        wbZiel.Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteValues
    
        Application.CutCopyMode = False
        wbZiel.Close savechanges:=True
        Err.Clear
    Fehler:
        With Err
            Select Case .Number
                Case 0 'alles OK
                Case Else
                    MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
            End Select
        End With
        Application.EnableEvents = True
    End Sub
  4. Makro ausführen: Klicke auf einen Button oder führe das Makro über das Menü aus.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen des Workbooks: Überprüfe den Dateipfad. Ist die Datei vorhanden und nicht geöffnet?
  • Ereignismakros: Deaktiviere Ereignismakros vor dem Ausführen des Codes, um unerwartete Probleme zu vermeiden.
  • Falsches Blatt: Stelle sicher, dass das Blatt "beispiel" in beiden Workbooks existiert.

Alternative Methoden

  1. Manuelles Kopieren: Du kannst die Zellen auch manuell kopieren und einfügen, wenn du keine Makros verwenden möchtest.
  2. Excel-Formeln: Verwende Formeln wie =Daten!B6 in dem Ziel-Workbook, um Werte dynamisch zu verknüpfen.
  3. Power Query: Nutze Power Query, um Daten zwischen Workbooks zu importieren und zu transformieren.

Praktische Beispiele

Wenn du das Makro anpassen möchtest, um nur Werte zu kopieren, ohne Formate, kannst du die Zeilen für das Kopieren der Formate entfernen:

wbZiel.Sheets("beispiel").Range("B6:G18").PasteSpecial Paste:=xlPasteValues

Ein weiteres Beispiel ist das Kopieren in eine andere Excel-Version. Stelle sicher, dass die Kompatibilität zwischen den Versionen gegeben ist.


Tipps für Profis

  • Fehlerbehandlung: Verbessere die Fehlerbehandlung im Makro, um spezifischere Fehlermeldungen zu erhalten.
  • Automatisierung: Überlege, wie du das Makro automatisieren kannst, z.B. durch einen Timer oder bestimmte Trigger.
  • Verwendung von Variablen: Setze Variablen für den Dateipfad, um den Code flexibler zu gestalten.

FAQ: Häufige Fragen

1. Warum funktioniert das Kopieren nicht?
Überprüfe, ob das Ziel-Workbook korrekt geöffnet ist und der richtige Bereich ausgewählt wurde.

2. Wie kann ich das Makro beschleunigen?
Deaktiviere die Bildschirmaktualisierung während der Ausführung des Makros mit Application.ScreenUpdating = False.

3. Gibt es eine Möglichkeit, die Formatierung beizubehalten?
Ja, du kannst die Zeile für das Kopieren der Formate im Makro belassen, um die Formatierung zu übernehmen.

4. Funktioniert das in allen Excel-Versionen?
Die meisten Makros sind zwischen den neueren Versionen von Excel kompatibel, aber teste es immer in deiner spezifischen Version.

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