Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus anderer Datei importieren

Daten aus anderer Datei importieren
24.02.2016 11:11:24
Mike
Hallo,
ich möchte gerne beim Öffnen einer Datei ("Evaluation-Form...") die Inhalte einer anderen Datei ("Skills") übernehmen bzw. aktualisieren, jeweils bezogen auf zwei Blätter ("Skills" und "SkillsDefinitions").
Bisher habe ich folgende Zeilen mit Hilfe des Makro-Recorders erstellt.
Kann mir jemand sagen, wie ich diese Zeilen am besten umschreibe und was noch zu ändern ist, damit die Ausgangsdatei automatisch geöffnet und nach dem Import wieder geschlossen wird ?
Es sollen nur die Werte kopiert werden, d.h. ohne Formeln und Formatierungen.
Mein Code:
Private Sub Workbook_Open()
Windows("Skills.xlsx").Activate
Sheets("Skills").Select
Columns("A:B").Select
Selection.Copy
Windows("Evaluation-Form_Split-File.xlsm").Activate
Sheets("Skills").Select
Columns("A:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Skills.xlsx").Activate
Sheets("Skills Definitions").Select
Columns("A:C").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Evaluation-Form_Split-File.xlsm").Activate
Sheets("Skills Definitions").Select
Columns("A:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Vielen Dank im Voraus,
Mike

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachtrag
24.02.2016 12:40:55
Alex
...ich vermute, ich kann zum Öffnen der Ausgangsdatei etwas wie folgendes verwenden, weiss aber trotzdem nicht, wie ich den Rest lösen kann:
    FileName = ActiveWorkbook.Path & "\Skills.xlsx"
Workbooks.Open (ThisWorkbook.Path & FileName)
VG,
Mike

AW: Nachtrag
24.02.2016 14:42:23
Mike
Hallo Chris,
vielen Dank auch dafür - das ist eine große Hilfe !
VG,
Mike und Alex

AW: Nachtrag
24.02.2016 13:50:43
Steve
Hallo Mike,
probier mal dies aus:
Private Sub Workbook_Open()
Dim Filename As String
Dim wkbQ As Workbook
Filename = ActiveWorkbook.Path & "\Skills.xlsx"
Set wkbQ = Workbooks.Open(ThisWorkbook.Path & Filename, , ReadOnly:=True)
' Öffnen nur mit Lesezugriff
wkbQ.Sheets("Skills").Columns("A:B").Copy
ThisWorkbook.Sheets("Skills").Columns("A:B").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
wkbQ.Sheets("Skills Definitions").Columns("A:C").Copy
ThisWorkbook.Sheets("Skills Definitions").Columns("A:C").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
wkbQ.Close ' Schließen
End Sub
Dabei wird beim Öffnen die Mappe der Variable wkbQ (Quelle) zugeordnet und du kannst sie ohne jedes Mal Windows("Skills").blablabla zu schreiben einfach ansprechen und genauso mit einer Zeile auch wieder schließen. Es ist zudem einfacher die Mappe nur mit Lesezugriff zu öffnen, dann meckert er beim Schließen nicht wegen Speichern rum.
Die Mappe "Evaluation..." ist die Mappe in der sich das Makro befindet. Das bedeutet du kannst diese Mappe mittels 'ThisWorkbook' ansprechen.
Als letzter Tipp: Selectieren brauchst du in 99% aller Fälle nicht, der Makrorekorder zeichnet das jedoch so auf, da der Benutzer ja die Zellen anwählen muss. Jedes Mal wo du '.Select' und in der nächsten Zeile 'Selection.' schreibst kannst du dies zusammenfassen.
Den Rest hast du ja schon erledigt gehabt.
lg Steve
PS.: Du hast bei deiner Anmerkung vergessen das Häkchen für ungelöst zu setzen und damit deinen Post selbst als beantwortet markiert gehabt. Aufpassen!

Anzeige
AW: Nachtrag
24.02.2016 14:41:46
Mike
Hallo Steve,
das ist super - vielen Dank für die schnelle Hilfe !
Vielen Dank auch für den Tipp. :)
VG,
Mike und Alex

347 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige