Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1624to1628
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

Workbook mit Variable aktivieren und schliessen

Workbook mit Variable aktivieren und schliessen
28.05.2018 18:57:15
Holger
Hallo zusammen
ich kämpfe bereits an der Frustrationsgrenze ...
Mein Makro startet aus der Datei "Dashboard.xlsm" und öffnet als erstes eine Datei deren Name in der Zelle "AD8" steht (Variabler Name). Aus dieser Datei wird dann ein bestimmter Inhalt Kopiert und in meiner "Dashboard.xlsm" auf einem weiteren Tab "Datensatz 2" eingefügt. Soweit funktioniert alles. Jetzt will ich zurück zu dem Variablen File um es (ohne zu speichern!) zu schliessen, aber genau hier versage ich auf ganzer Linie:
Sub Datensatz_öffnen()
Workbooks.Open Filename:= _
"Z:\Client Contracts\Datensätze\Daten_" & Range("AD8") & ".xlsx"
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Windows("Dashboard.xlsm").Activate
Sheets("Datensatz 2").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.WindowState = xlNormal
Wie komme ich an dieser Stelle zurück zu der variabel geöffneten Datei?
Kann mir jemand helfen?

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

Betreff
Datum
Anwender
Anzeige
AW: Workbook mit Variable aktivieren und schliessen
28.05.2018 19:13:19
Werner
Hallo Holger,
ungetestet:
Sub Datensatz_öffnen()
Workbooks.Open Filename:= _
"Z:\Client Contracts\Datensätze\Daten_" & Range("AD8") & ".xlsx"
UsedRange.Copy
ThisWorkbook.Worksheets("Datensatz 2").Range("A2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveWorkbook.Close False
Application.WindowState = xlNormal
End Sub
Gruß Werner
AW: Workbook mit Variable aktivieren und schliessen
28.05.2018 19:30:28
Holger
Hallo Werner
Ungetestet alles richtig gemacht! Du rettest mir den Abend!!!
Danke
BG
Holger
Nachtrag
28.05.2018 19:42:36
Werner
Hallo Holger,
hat denn deine Datei, die du öffnest, nur ein Tabellenblatt?
Wenn nein, dann sollte dir klar sein, dass es reines Glückspiel ist, von welchem Blatt du die Daten holst.
Da du nicht auf ein bestimmtes Blatt der Quelldatei referenzierst, holst du die Daten immer vom gerade aktiven Blatt ab.
Und welches Blatt beim Öffnen der Datei aktiv ist, hängt davon ab, welches Blatt beim letzten Speichern aktiv war.
Speicherst du die Datei ab und Blatt 3 ist das aktive Blatt, dann holst du dir die Daten vom Blatt 3. War aber beim letzten Abspeichern Blatt 1 aktiv, dann holst du die Daten vom Blatt 1.
Zudem bitte nicht das Kontrollkästchen aktivieren wenn das Problem gelöst ist. Das setzt den Beitrag nämlich auf offen, also ungelöst.
Gruß Werner
Anzeige
AW: Workbook mit Variable aktivieren und schliessen
28.05.2018 19:27:13
Daniel
Hi
lass mal die selektierei sein und referenziere vollständig.
dann bleibt die mit Workbooks.Open geöffnete Datei immer die aktive und du kannst sie mit
ActiveWorkbook.close false schließen, ohne dich darum kümmern zu müssen wie sie heißt:.den Bezug auf die Datei, die das Makro enthält, kann man immer mit THISWORKBOOK angeben, auch dann muss man sich nicht mehr um den Dateinamen kümmern
Sub Datensatz_öffnen()
Workbooks.Open Filename:= _
"Z:\Client Contracts\Datensätze\Daten_" & Range("AD8") & ".xlsx"
Range(Range("A2"), Range("A2").End(xlDown).End(xlToRight)).Copy
ThisWorkbook.Sheets("Datensatz 2").Range("A2").PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.Close False
wenn du sicher gehen willst: dein Dateiname steht doch in der Zelle, also:
Workbooks("Daten_" & ThisWorkbook.Sheets("?").Range("AD8") & ".xlsx").Close False

mit Variable würde das ganze so gehen:
dim wb as Workbook
Set wb = Workbooks.Open(Filename:= _
"Z:\Client Contracts\Datensätze\Daten_" & Range("AD8") & ".xlsx")
Range(Range("A2"), Range("A2").End(xlDown).End(xlToRight)).Copy
ThisWorkbook.Sheets("Datensatz 2").Range("A2").PasteSpecial Paste:=xlPasteValues
wb.close False
beachte, dass du so bei WorkbooksOpen die Parameter in Klammern setzen musst.
führst du das workbook.Open allein in der Befehlszeile aus, darfst du keine klammern setzen.
Gruß Daniel
Anzeige

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige