Registriert seit: 07.03.2016
Version(en): 2013
Hallo,
ich habe folgendes Problem: ich möchte gerne am Anfang eines Codes mittels Dialogfenster eine Datei auswählen, die ich dann in mehreren aufeinanderfolgenden Makros (ohne erneute Auswahl) verwenden möchte. Wie kann ich das am einfachsten lösen bzw. welche Codezeilen muss ich in den einzelnen Makros integrieren, um die Auswahl der Datei aufrufen zu können?
Registriert seit: 10.04.2014
Version(en): 2016 + 365
09.05.2016, 14:00
(Dieser Beitrag wurde zuletzt bearbeitet: 09.05.2016, 14:00 von Rabe.)
(08.05.2016, 20:41)sunny01 schrieb: ich möchte gerne am Anfang eines Codes mittels Dialogfenster eine Datei auswählen, die ich dann in mehreren aufeinanderfolgenden Makros (ohne erneute Auswahl) verwenden möchte.
Du schreibst Dir ein Makro, das eine Datei öffnet:
Code:
Dateiname = Application.GetOpenFilename("Excel Datei, *.*") ' Datei auswählen
If Dateiname = "Falsch" Then Exit Sub ' bei Abbruch
Set Datei = Workbooks.Open(Dateiname) ' Datei öffnen
Set WS = Workbooks(ActiveWorkbook.Name).Worksheets(1)
oder:
Zitat:Sub DateiOeffnen()
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "G:\Test\*Mappe*.xlsx"
If .Show = -1 Then
Workbooks.Open .SelectedItems(1)
End If
End With
End Sub
Nun kannst Du auf die Worksheets und Zellen der geöffneten Datei zugreifen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
wenn Du die Datei in mehreren Makros eines Moduls nutzen willst, dann übergib die Datei oder zumindest deren Namen an eine öffentliche bzw. globale Variable. Diese dimensionierst Du außerhalb der Makros am Anfang eines Moduls, z.B.
Code:
Option Explicit
'Variable auf Modulebene
Dim strFileName as String
Sub ...
...
strFileName = ...
...
End Sub
Code:
Option Explicit
'Variable auf Dateiebene
Public strFileName as String
Sub ...
...
strFileName = ...
...
End Sub
Es wäre dann nur die Frage, ob Du den Dateiname mit oder ohne Pfad benötigst. Zum Öffnen meist mit Pfad, zum Wechseln zwischen offenen Dateien ohne.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)