Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro Arbeit in 2 Dateien und Blätten

Makro Arbeit in 2 Dateien und Blätten
15.03.2023 18:33:13
Papavonmaxi

Ich will ein Makro - ich rufe es aus der "Zieldatei" auf - ausführen, welches Daten aus einigen gleich strukturierten Dateien (Quelldateien) lädt, dort jeweils immer aus "Tabelle1". Vor dem Kopieren wird die jeweilige Quelldatei im Blatt Tabelle1 noch so bearbeitet, dass die Daten besser zur Zieldatei passen. Dann werden die Daten in die Zieldatei kopiert und die nächste Datei wird geladen. Die Liste der abzuarbeitenden 6 Dateien steht in der Zieldatei im Blatt "Input". Da ich Probleme hatte, das jeweils richtige Arbeitsblatt anzusprechen, musste ich eine Zurdnung treffen und mit "With" markieren, in welchem Blatt jetzt gearbeitet werden soll. Dabei muss ich einen Fehler haben: Sie dazu mein Problem markiert mit ?????? unten.

Sub Test()

Dim ZielMappe As Workbook
Dim ZielBlatt As Worksheet
Dim QuellMappe As Workbook
Dim QuellBlatt As Worksheet
Dim Dateiname As String
Dim Path As String

'ThisWorkbook = die Arbeitsmappe aus der das Makro aufgerufen wird
Set ZielMappe = ThisWorkbook
Set ZielBlatt = ZielMappe.Worksheets("Basisdaten")

' Löschen von Zellen A4 bis AF800 im Tabellenblatt "Basisdaten"
Sheets("Basisdaten").Range("A4:AF800").ClearContents

' Zaehler initialisieren
Dim Zaehler As Integer
Zaehler = 2

' Schleife für 6 Durchläufe
Do While Zaehler 7

' Dateinamen aus Zelle A(Zaehler) im Tabellenblatt "Input" auslesen

Dateiname = Sheets("Input").Range("A" & Zaehler).Value
Path = "C:\Users\XXX\"

' Datei im Verzeichnis öffnen
Workbooks.Open Filename:=Path & Dateiname


Jetzt wollte ich die QellMappe besetzen und das läuft nicht richtig:
Set QuellMappe = ????? wie genau fukussiere ich diese gerade geöffnete Datei? ?????
Set QuellBlatt = QuellMappe.Worksheets("Tabelle1")


Wer kann mir helfen?

LG, Matthias

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Arbeit in 2 Dateien und Blätten
15.03.2023 18:42:33
AlterDresdner
HAllo Matthias,
nach Workbook.Open ... ist die geöffnete Datei aktive Datei, also
' Datei im Verzeichnis öffnen
Workbooks.Open Filename:=Path & Dateiname
Set QuellMappe = Activeworkbook
oder einfacher gleich
Set QuellMappe = Workbooks.Open Filename:=Path & Dateiname


AW: Makro Arbeit in 2 Dateien und Blätten
15.03.2023 19:07:38
Papavonmaxi
Danke. Das hat funktioniert. Aber ich habe noch ein Problem beim Wechseln auf die Tabellenblatt der Zieldatei.

Die hatte ich ja so diefiniert:
ThisWorkbook = die Arbeitsmappe aus der das Makro aufgerufen wird
Set ZielMappe = ThisWorkbook
Set ZielBlatt = ZielMappe.Worksheets("Basisdaten")

In meiner Schleife aber scheint er weiterhin in der Quelldatei zu hängen, während er zu Beginn der Schleife ja den neuen Dateinamen ermitteln soll. Das Blatt "Input" meckert er dann na.


Anzeige
AW: Makro Arbeit in 2 Dateien und Blätten
15.03.2023 19:14:37
Papavonmaxi
DANKE gelöst: ich habe eingefügt

With ZielBlatt
ThisWorkbook.Activate
....
End With


AW: Makro Arbeit in 2 Dateien und Blätten
15.03.2023 20:46:30
AlterDresdner
Hallo Matthias,
wenn Du mit Activate arbeitest, kannst Du Dir die Objekte ja schenken. Das wäre aber schade! Du musst sie halt nur verwenden!
Dein Code aus dem 1. Post
Set ZielMappe = ThisWorkbook
Set ZielBlatt = ZielMappe.Worksheets("Basisdaten")

' Löschen von Zellen A4 bis AF800 im Tabellenblatt "Basisdaten"
Sheets("Basisdaten").Range("A4:AF800").ClearContents
sollte richtig lauten
Set ZielMappe = ThisWorkbook
Set ZielBlatt = ZielMappe.Worksheets("Basisdaten")

' Löschen von Zellen A4 bis AF800 im Tabellenblatt "Basisdaten"
With ZielBlatt
.Range("A4:AF800").ClearContents Ä'der Punkt am ANfang macht es
' es ist egal, welche Datei/Blatt aktiv ist
...
End with
Gruß der ALteDresdner

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige