Anzeige
Archiv - Navigation
1336to1340
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

Application.GetOpenFilename

Application.GetOpenFilename
05.11.2013 16:44:24
Valerie
Hallo Zusammen,
ich hoffe Ihr könnt mir helfen. Ich möchte aus einem anderen Excel Daten importieren.
Ich wähle eine bestimmte Datei aus und will daraus eine Zelle kopieren, die ich in meine Zieldatei einfügen will. Das klappt auch im ersten Durchgang. Wenn ich dann aber wieder in die andere Datei springen will kriege ich einen Fehler. Entweder sagt er mir, dass die Datei schon geöffnet ist und wenn ich es mit "Workbooks(import).Activate" probiere kriege ich einen Laufzeitfehler.
Bin für jede Hilfe dankbar
Sub Daten_holen()
'
ChDrive "I"
ChDir "I:\Eigene Dateien"
Dim Import As Variant
'Zeile einfügen im Aktiven Workbook
Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'Auswahl der zu importierenden Datei
Import = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls;*.xlsm;*.xlsx),*.xls;*.xlsm;*.xlsx")
Workbooks.Open Filename:=import
'Kopieren einer bestimmten Zelle
Range("B4").Copy
Windows("2013_AktuelleDatei").Activate
'Einfügen der Zelle
Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks(Import).Activate
Range("B5").Copy
'Kopieren andere Zelle
Range("B5").Copy
Windows("2013_AktuelleDatei").Activate
'einfügen andere Zelle
Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.GetOpenFilename
05.11.2013 18:24:53
fcs
Hallo Valerie,
wenn man Daten zwischen zwei Exceldateien kopieren möchte, dann sollte man mit entsprecheden Object-Variablen für die dateien und Tabellenblätter arbeiten.
Dann kommt man ohne Select- und Activate-Anweisungen aus und kann direkt die jeweiligen Zellen kopieren und einfügen.
Wenn an der Import-Datei nichts geändert wird, dann sollte man sie schreibgeschützt öffnen.
Gruß
Franz
Sub Daten_holen()
ChDrive "I"
ChDir "I:\Eigene Dateien"
Dim Import As Variant
Dim wkbAktiv As Workbook, wksAktiv As Worksheet, wkbImport As Workbook, wksImport As  _
Worksheet
Dim StatusCalc As Long
Set wkbAktiv = ActiveWorkbook
Set wksAktiv = ActiveSheet
'Zeile einfügen im Aktiven Workbook
wksAktiv.Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'Auswahl der zu importierenden Datei
Import = Application.GetOpenFilename _
("Microsoft Excel-Dateien (*.xls;*.xlsm;*.xlsx),*.xls;*.xlsm;*.xlsx")
If Import = False Then Exit Sub
'Makrobremsen lösen
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Set wkbImport = Workbooks.Open(Filename:=Import, ReadOnly:=True)
Set wksImport = wkbImport.Worksheets(1) 'oder wkbImport.Worksheets("Tabelle1")
'Kopieren einer bestimmten Zelle
wksImport.Range("B4").Copy
'Einfügen der Zelle
wksAktiv.Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Kopieren andere Zelle
wksImport.Range("B5").Copy
wksAktiv.Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Importdatei wieder schließen ohne zu speichern
wkbImport.Close savechanges:=False
'Makrobremsen lösen
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
.EnableEvents = True
End With
End Sub

Anzeige
AW: Application.GetOpenFilename
06.11.2013 15:01:45
Valerie
Lieber Franz, Tausend Dank! LG, Val

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige