Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: Datei öffnen, kopieren, schließen (activate)

VBA: Datei öffnen, kopieren, schließen (activate)
28.09.2006 12:21:27
Klaus
Moin Forum,
ich möchte mittels Button-Druck eine xls-Datei öffen, von dort gewisse Daten kopieren und dann die Datei wieder schließen, ohne zu speichern.
Unten stehender Code (wird mit ScreenUpdating, EnableEvents, DisplayAlerts und Calculation false ausgeführt) erledigt dies bereits.
Kann mir jemand einen Typ geben, wie ich auf das lästige Activate verzichte?
Kriege ich dann auch das "Copy" und "Paste" zusammen in eine Zeile, um die Zwischenablage zu umgehen?
Dank und Gruß,
Klaus M.vdT.

Option Explicit
Sub DatenEinlesen()
Workbooks.Open FileName:="\\VERZEICHNISS\STAMMDATEN.xls", UpdateLinks:=3, Notify:=False
Sheets("Übersicht").Columns("M:T").Copy
Windows("Kontrakt.xls").Activate
Sheets("Umlauf").Range("A1").PasteSpecial Paste:=xlValues
Windows("STAMMDATEN.xls").Close
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Datei öffnen, kopieren, schließen (activate)
28.09.2006 12:33:30
Uduuh
Hallo,
ohne Activate:

Sub DatenEinlesen()
Workbooks.Open Filename:="\\VERZEICHNISS\STAMMDATEN.xls", UpdateLinks:=3, Notify:=False
Sheets("Übersicht").Columns("M:T").Copy
Workbooks("Kontrakt.xls").Sheets("Umlauf").Range("A1").PasteSpecial Paste:=xlValues
Workbooks("STAMMDATEN.xls").Close False
Application.CutCopyMode = False
End Sub

Gruß aus’m Pott
Udo

AW: VBA: Datei öffnen, kopieren, schließen (activate)
28.09.2006 12:34:49
IngGi
Hallo Klaus,
Activate kannst du weglassen, wenn du dein Kopierziel über Workbook, Worksheet und Range ansprichst, also:
Workbooks("Kontrakt.xls").Sheets("Umlauf").Range("A1").PasteSpecial Paste:=xlValues
Copy und Paste bekommst du nur auf eine Zeile, wenn du alles einfügst, also nicht nur Werte, wie in deinem Makrocode:
Sheets("Übersicht").Columns("M:T").Copy Destination:=Workbooks("Kontrakt.xls").Sheets("Umlauf").Range("A1")
Um nur die Werte einzufügen, brauchst du 2 Zeilen.
Gruß Ingolf
Anzeige
Viel besser :-) aber noch nicht perfekt
28.09.2006 14:28:41
Klaus
Erstmal vielen Dank ihr beiden,
Uduuh's Code hab ich kopiert und er läuft, und dank IngGi's Erklärung hab ich ihn sogar verstanden.
Nur: der Code bleibt nicht in dem Sheet, von dem aus ich den Button zum aktivieren drücke. Ich lande in sheet Umlauf, in den auch das Paste gezielt hat. Genaugenommen lande ich ein Sheet weiter links, weil das Sheet Umlauf ausgeblendet ist.
Mal sehen ob ich das selbst zusammen bekomme:
Das "Workbooks open" ändert automatisch das aktive workbook. Wenn ich es wieder schließe, lande ich in dem zuletzt benutztem Sheet - in diesem Fall jenes,
in welches mein Paste geziehlt hat.
Ich behelf mit jetzt erstmal mit einem .select zurück auf das ursprüngliche Sheet. Hauptsache es läuft :-)
Nochmal Danke für die Hilfe, auch wenn ich diesen Code nicht select-frei kriegen sollte weiss ich jetzt zumindest um den Unterschied von Workbooks und Windows.
Gruß,
Klaus M.vdT

Option Explicit
Sub DatenEinlesen()
Sheets("Umlauf").Cells.ClearContents
Workbooks.Open FileName:="\\VERZEICHNISS\STAMMDATEN.xls", UpdateLinks:=3
Sheets("Übersicht").Columns("M:T").Copy
Workbooks("Kontrakt.xls").Sheets("Umlauf").Range("A1").PasteSpecial Paste:=xlValues
Workbooks("STAMMDATEN.xls").Close False
Application.CutCopyMode = False
Sheets("Eingaben").Select
End Sub

Anzeige

135 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige