Office: (Office 2010) VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren

Helfe beim Thema VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, kann mir jemand hier helfen? Bin in VBA noch Anfänger! Ich nutze unterstehenden Code um ein Tabellenblatt in eine andere Datei zu... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von samare, 13. März 2019.

  1. samare User

    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren


    Hallo Zusammen,
    kann mir jemand hier helfen? Bin in VBA noch Anfänger!
    Ich nutze unterstehenden Code um ein Tabellenblatt in eine andere Datei zu kopieren. Funktioniert auch. Da in der Quelldatei Bedingte Formatierungen enthalten sind und mir nach dem kopieren dann "Bezug" anzeigt wird habe ich mich entschlossen nur einen bestimmten Zellenbereich zu kopieren. Also A5:NQ50 z.B.
    Hat da jemand eine Idee?

    Hier der Code:
    Sub Urlaub_Click()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Dim QWB As Workbook, ZWB As Workbook
    Workbooks.Open "J:\Reinhold Neu\Urlaubsplanung2019.xlsx" ' Quelle, aus der die Tabelle41 kopiert werden soll

    Set QWB = Workbooks("Urlaubsplanung2019.xlsx")
    Set ZWB = Workbooks("TestPersonalstammdatenProgramm") ' Ziel, Workbook mit diesem Makro
    Dim QWS As Worksheet, ZWS As Worksheet
    Set QWS = QWB.Worksheets("Personalplaner 2019") ' Quelle
    Set ZWS = ZWB.Worksheets("Personalplaner 2019") ' Ziel
    QWS.Cells.Copy ZWS.Cells(1, 1) ' Inhalt in Ziel-Tabelle einfügen
    Workbooks("Urlaubsplanung2019.xlsx").Close
    Application.EnableEvents = True
    End Sub

    Danke im voraus
    Gruß
    Reinhold
     
    samare, 13. März 2019
    #1
  2. Zellenbereiche kannst du mit Range ansprechen.

    Kannst du vielleicht einfach statt Cells Range("A5:NQ50") eintragen?

    Ich bin auch kein Experte...aber da bisher noch keiner geantwortet hat, geb ich mal trotzdem den Tip ab.
     
    Hänsel_Käthe, 22. März 2019
    #2
  3. samare User
    Hi,
    Danke für den Tipp. hat aber leider auch nicht funktioniert.
     
    samare, 27. März 2019
    #3
  4. Exl121150 Erfahrener User

    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren

    Hallo,

    wäre schön gewesen, wenn die Info zum Problem aussagekräftiger ausgefallen wäre.

    Im folgenden VBA-Code wird der Quellbereich: "'J:\Reinhold Neu\[Urlaubsplanung2019.xlsx]Personalplaner 2019'!A5:NQ50"
    kopiert in folgenden Zielbereich: "'Personalplaner 2019'!A1", wobei die Zelle A1 die linke obere Ecke des Zielbereichs ist:
    Code:
    Sub Urlaub_Click()
      Dim QWB As Workbook, ZWB As Workbook
      Dim QWS As Worksheet, ZWS As Worksheet
     
      Application.ScreenUpdating = False
      Application.EnableEvents = False
     
      Set QWB = Workbooks.Open("J:\Reinhold Neu\Urlaubsplanung2019.xlsx") ' Quelle, aus der die "Tabelle41" kopiert werden soll
      Set ZWB = Workbooks("TestPersonalstammdatenProgramm") ' Ziel, Workbook mit diesem Makro
      
      Set QWS = QWB.Worksheets("Personalplaner 2019") ' Quelle
      Set ZWS = ZWB.Worksheets("Personalplaner 2019") ' Ziel
      
      QWS.Range([COLOR="#0000CD"]"A5:NQ50"[/COLOR]).Copy ZWS.Range("A1")   ' Inhalt in Ziel-Tabelle einfügen ab Zelle A1
      
      QWB.Close SaveChanges:=False   'Schließen der Quellarbeitsmappe, ohne sie zu verändern
      
      Application.EnableEvents = True
      Application.ScreenUpdating = True
    End Sub
    
    Da du im Makro-Kommentar "Tabelle41" erwähnst, die kopiert werden soll:
    Falls das ein benannter Zellbereich in der Quellarbeitsmappe ist, müsstest du statt der blauen Bereichsangabe "Tabelle41" einsetzen:
    Code:
      QWS.Range("Tabelle41").Copy ZWS.Range("A1")   ' Inhalt in Ziel-Tabelle einfügen ab Zelle A1
    
    Falls es sich bei der "Tabelle41" jedoch um eine ListTabelle (oder auch strukturierte Tabelle genannt) handeln sollte, die kopiert werden soll, müsste das Makro so ähnlich wie folgt lauten (Zielzelle wäre dabei "G4"):
    Code:
    Sub TabUrlaub_Click()
      Dim QWB As Workbook, ZWB As Workbook
      Dim QWS As Worksheet, ZWS As Worksheet
      Dim QTb As ListObject, ZTb As ListObject
     
      Application.ScreenUpdating = False
      Application.EnableEvents = False
     
      Set QWB = Workbooks.Open("J:\Reinhold Neu\Urlaubsplanung2019.xlsx") ' Quelle, aus der die "Tabelle41" kopiert werden soll
      Set ZWB = Workbooks("TestPersonalstammdatenProgramm")               ' Ziel, Workbook mit diesem Makro
      
      Set QWS = QWB.Worksheets("Personalplaner 2019") ' Quelle, Arbeitsblatt mit der ListTabelle "Tabelle41"
      Set ZWS = ZWB.Worksheets("Personalplaner 2019") ' Ziel
      
      Set QTb = QWS.ListObjects("Tabelle41")      'Quell-ListTabelle ermitteln
      QTb.Range.Copy Destination:=ZWS.Range("G4") 'Gesamte ListTabelle nach Zelle G4 als linker oberer ListTabellen-Ecke kopieren
      Set ZTb = ZWS.Range("G4").ListObject        'ListTabelle ermitteln - sie hat beim Kopieren Standardnamen erhalten
      ZTb.Name = "TabZielUrlaub"                  'Diesen Standardnamen auf gewünschten Namen (zB. 'TabZielUrlaub') abändern
      
      QWB.Close SaveChanges:=False   'Schließen der Quellarbeitsmappe, ohne sie zu verändern
      
      Application.EnableEvents = True
      Application.ScreenUpdating = True
    End Sub
    
    
     
    Exl121150, 28. März 2019
    #4
  5. samare User
    Hallo Anton,
    Danke für deine Tipps und Mühe. Das 1. Pub hat funktioniert. ich habe in der Quelldatei noch ein Datum für den Bezug an eine andere Stelle gesetzt.
    Das mit der "Tabelle 41" habe ich vergessen um zuschreiben. Sorry!
    Vielen Dank
    Gruß
    Reinhold
     
    samare, 28. März 2019
    #5
  6. Sven_G Neuer User
    Hallo zusammen,

    ich bastele schon einige Zeit an einer Lösung für das Speichern von bestimmten Zellen einer Quelldatei in ander bestimmte Zellen einer Zieldatei.

    Dabei stößt der Debugger immer wieder hier an (letzte Zeile):

    "
    Sub Abschicken()
    '
    ' Abschicken Makro - Speichern in Übersichtsdatei und in Archivablage

    Dim strFileName, strFilePath As String
    Dim wkbQuelle, wbkUebersicht, wbkArchiv As Workbook
    Dim wsQuelle, wsUebersicht As Worksheet

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    Set wkbQuelle = ActiveWorkbook
    Set wbkUebersicht = Workbooks.Open("J:\03_Allgemeine Themen\06_Freigabeworkflow neue Materialien\Freigabeworkflow_Übersicht.xlsx")

    Set wsQuelle = wkbQuelle.Worksheets("Freigabeantrag") 'Quelle
    Set wsUebersicht = wbkUebersicht.Worksheets("Freigabetempl.") 'Ziel
    "

    Beim Überfahren zeigt der Editor mir an, dass die Variable wsUebersicht leer bleibt, obwohl vorher die Datei auch brav geöffnet wird.
    Im Gegensatz zum Eingangsbeispiel wird hier allerdings die Quelle geöffnet und alle Aktionen gehen von dort aus.

    Hat jemand eine Idee, warum das so nicht funktioniert?

    BG
    Sven

    .
     
  7. Exl121150 Erfahrener User
    Hallo Sven,
    das, was mir auf Anhieb bei deinem VBA-Code auffällt, ist, dass du ein Opfer höherer/aktuellerer Programmiersprachen geworden bist - ein Fehler, den man öfter zu Gesicht bekommt.

    Wenn du im Debugger die Variablentypen ansiehst, wirst du feststellen, dass
    1) strFileName vom Typ Variant ist,
    2) strFilePath vom Typ String ist
    3) wkbQuelle, wbkUebersicht, wsQuelle vom Typ Variant sind,
    4) wbkArchiv vom Typ Workboook
    5) wsUebersicht vom Typ Worksheet

    Korrekt müssen die Variablendeklarationen lauten:
    Dim strFileName As String, strFilePath As String
    Dim wkbQuelle As Workbook, wbkUebersicht As Workbook, wbkArchiv As Workbook
    Dim wsQuelle As Worksheet, wsUebersicht As Worksheet
     
    Exl121150, 16. Oktober 2024
    #7
  8. Sven_G Neuer User

    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren

    Hallo Anton,

    danke für den Tip.
    Das habe ich tatsächlich gestern noch angepasst, weil ich schon die Vermutung hatte, dass hier die Zuweisung nicht ganz sauber funktioniert. Im Ergebnis zeigt sich damit aber erst einmal kein Effekt.
     
  9. Exl121150 Erfahrener User
    Hallo,
    trägt bei dir der Arbeitsblatt-Tabulator in der Arbeitsmappe wbkUebersicht tatsächlich den Namen "Freigabetempl." ?
    Also mit dem Punkt am Ende?
    Oder hat dein Arbeitsblatt-Tabulator ein Leerzeichen nach dem Punkt? (Auch ein beliebter Fehler).

    Hast du am Anfang des Codemoduls, das deine Sub Abschicken() enthält, als erste Zeile "Option Explicit" eingefügt ?
    Diese Option zwingt den Compiler, jede scheinbar/anscheinend nicht deklarierte Variable durch Abbruch zu melden. Ohne eine solche Option macht er einfach wiederum eine Variable mit Typ Variant daraus. Solche durch Flüchtigkeitsfehler entstandene Variablen-Falschnamen sind nämlich im Allgemeinen auch sehr schwer zu finden.

    Mein VBA-Compiler kann ansonsten keinen Syntaxfehler in deinem Codefragment entdecken.
     
    Exl121150, 16. Oktober 2024
    #9
  10. Sven_G Neuer User
    Hallo Anton,

    ja Option Ecplicit habe ich als erste Zeile eingetragen, dann erst beginnt die Prozedur

    Option Explicit

    Sub Abschicken()
    '
    ' Abschicken Makro - Speichern in Übersichtsdatei und in Archivablage

    Dim strFileName As String, strFilePath As String
    Dim wkbQuelle As Workbook, wbkUebersicht As Workbook, wbkArchiv As Workbook
    Dim wsQuelle As Worksheet, wsUebersicht As Worksheet

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    Set wkbQuelle = ActiveWorkbook
    Set wbkUebersicht = Workbooks.Open("J:\03_Allgemeine Themen\06_Freigabeworkflow neue Materialien\Freigabeworkflow_Übersicht.xlsx")

    Set wsQuelle = wkbQuelle.Worksheets("Freigabeantrag") 'Quelle
    Set wsUebersicht = wbkUebersicht.Worksheets("Freigabetempl.") 'Ziel

    strFilePath = wkbQuelle.Path

    Debug.Print wkbQuelle.Name
    Debug.Print strFilePath




    Im Überwachungsfenster erschient diese Meldung, hilft das evtl weiter?

    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren upload_2024-10-16_15-53-23.png
     
  11. Sven_G Neuer User
    Und an der Bezeichnung der Tabelle liegt es auch nicht, hier habe ich auch schon ("Tabelle4"), wie in der Objektübersicht eingetragen und es macht keinen Unterschied. Die Bezeichnung mit dem Punkt ohne Leerzeichen ist im übrigen korrekt.

    Was mich stutzig macht ( Die Bezeichnungen habe ich zwischenzeitlich mal angepasst, ohne Veränderungen in der Auswirkung) dass die Tbl4 in meiner Testdatei aufgeführt wird, obwohl diese Tabelle in der Excel-Datei hier gar nicht vorhanden ist. Die ist eine Arbeitsblatt aus einer anderen Datei, die hier als Ziel dienen soll.

    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren upload_2024-10-16_16-38-51.png
     
  12. Exl121150 Erfahrener User
    Hallo,

    stimmt das so, was ich da lese?
    1) Im VBA-Codefragment sprichst du von "wbkUebersicht"
    2) Im Fenster "Überwachungsausdrücke" steht zu lesen: "wkbUebersicht ... Modul kann nicht kompiliert werden"
     
    Exl121150, 16. Oktober 2024
    #12
    1 Person gefällt das.
  13. Sven_G Neuer User

    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren

    Okay, das ist bereinigt. danke.

    jetzt erhalte ich beim Laufen lassen die Meldung, dass der Index ausserhalb des gültigen Beriches liegt.

    Das Programm stoppt hier:
    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren upload_2024-10-17_10-1-45.png

    die Objektübersicht:
    VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren upload_2024-10-17_10-3-4.png

    Mich macht es nach wie vor stutzig, dass hier die Tbl4 im Testprojekt auftaucht, obwohl dieses Sheet sich nur in der Übersicht und damit in einem andern Workbook, an einem andern Speicherort(Pfad) befindet.
    Ist das vielleicht die Crux an der Sache?
     
  14. Exl121150 Erfahrener User
    Hallo,

    da du dich in einem VBA-Makro befindest, so muss dies das Workbook "Test_5715_SGl.xlsm" (=Thisworkbook.Name) sein (wegen der Dateierweiterung *.xlsm), denn das erste Workbook "Freigabeworkflow_Übersicht.xlsx" in deiner Objektübersicht kann kein VBA-Makro enthalten (wegen *.xlsx).
    Gleichzeitig muss in deinem Fall Thisworkbook = Activeworkbook sein, d.h. also auch in wkbQuelle ist nichts anderes enthalten als Activeworkbook, d.h. "Test_5715_SGl.xlsm".
    In diesem Workbook gibt es aber kein Worksheets("Tbl2"), somit ist es nur folgerichtig, dass das Programm zur Runtime einen Aufzählungsindex-Fehler produziert.

    Die Bezeichnungen "Tbl1"..."Tbl4" in der Objektübersicht sind nicht die Bezeichnungen, die in den Arbeitsblatt-Tabulatoren stehen, sondern die internen Blattnamen.
    Dabei sind die folgenden Aufrufe im VBA-Code gleichwertig:
    1) Debug.Print Worksheets("Freigabeantrag").Name
    2) Debug.Print Tbl2.Name
    Beide Aufrufe haben den Rückgabewert "Freigabeantrag".
    Du darfst aber nicht folgenden Code einsetzen:
    Debug.Print Worksheets("Tbl2").Name
    Damit bekommst wieder den Indexfehler, weil nämlich der Name "Tbl2" nicht in der Aufzählungsliste der Worksheets enthalten ist.
     
    Exl121150, 17. Oktober 2024
    #14
  15. Sven_G Neuer User
    Was die Dateien angeht ist das schon korrekt. Es wir die Datei mit Makros geöffnet und dann soll daraus in die Datei ohne Makros kopiert werden.


     
Thema:

VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren

Die Seite wird geladen...
  1. VBA Bestimmte Zellen aus einer anderen Datei in eine andere Datei kopieren - Similar Threads - VBA Bestimmte Zellen

  2. Über Eingabefelder bestimmte Zellen füllen, wohl VBA

    in Microsoft Excel Hilfe
    Über Eingabefelder bestimmte Zellen füllen, wohl VBA: Hallo, suche eine Möglichkeit wenn ich am Monatsende den Stromzählerstand ablese und Datum in C1 und Zählerstand in C2 eintrage, das dann C1 (Datum) in B27 übertragen wird. Außerdem Wert in C2...
  3. Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren: Hallo zusammen, ich bin erst vor ein paar Tagen auf die Excel VBA gestoßen und kenne mich deswegen leider so gut wie gar nicht aus. Ich würde gerne aus den Tabellen 3 - 11, bestimmte Zeilen in die...
  4. [EILT] Bestimmte Inhalte einer Zelle in eine andere Zelle kopieren und die Anzahl ausrechnen

    in Microsoft Excel Hilfe
    [EILT] Bestimmte Inhalte einer Zelle in eine andere Zelle kopieren und die Anzahl ausrechnen: Hallo zusammen, ich muss dringend bis Montag eine Liste fertigstellen, dass folgendes beinhaltet: Alle Mailadressen, die in der Zeile A2 sind, müssen untersucht werden und die Mailadressen mit...
  5. Bestimmte Zellen aus geschlossenen Dateien in eine Master Liste hineinkopieren VBA

    in Microsoft Excel Hilfe
    Bestimmte Zellen aus geschlossenen Dateien in eine Master Liste hineinkopieren VBA: Hallo, ich bin an meiner Thesis dran und möchte Protokolle auswerten. Dazu habe ich Dateien, die Tageswerte enthalten. Ich möchte aus jeder Datei die gleichen Zellen kopieren und in eine...
  6. VBA Zelle mit bestimmten Werten kopieren

    in Microsoft Excel Hilfe
    VBA Zelle mit bestimmten Werten kopieren: Hallo zusammen, ich habe folgendes Problem und keine wirkliche Lösung dafür. Ich möchte mittels VBA in einem Dokument alle Zeilen kopieren, welche in einer bestimmten Spalte (bspw. Spalte 11)...
  7. VBA: Bestimmte Zellen von einer Excel Datei in die andere (nach Bedienungen)

    in Microsoft Excel Hilfe
    VBA: Bestimmte Zellen von einer Excel Datei in die andere (nach Bedienungen): Guten Morgen zusammen, ich hab gesehen wie hilfreich dieser Forum sein kann und das hier sehr viel Expertise vorhanden ist die mir in meinem Fall weiterhelfen kann. Ich habe folgendes Problem:...
  8. Komischer Zahlen in der GUI + VBA bestimmte Zellen mit gewissen Inhalt nicht löschen

    in Microsoft Excel Hilfe
    Komischer Zahlen in der GUI + VBA bestimmte Zellen mit gewissen Inhalt nicht löschen: Hallo, ich bin neu hier im Forum, also bitte ich um Verständnis, wenn dies hier nicht der richtige Platz für dieses Thema ist. Ich habe 2 Anliegen. Auf dem ersten Bild könnt ihr die besagten...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden