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

Bestimmte Datei mittels Makro öffnen

Bestimmte Datei mittels Makro öffnen
08.03.2013 22:40:48
AcJoker
Hallo,
ich versuche ein Makro etwas komfortabler zu gestalten.
Zur Zeit verwende ich folgenden Befehl um von Hand eine Datei auszuwählen und aus dieser dann eine Spalte zu kopieren.

Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename("Textdateien " & _
"(*.csv),*.csv")
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets(1)
Else
Exit Sub
End If
Range("B1:B97").Copy
wks.Parent.Close False
Set wks = Nothing
Nun würde ich zum einen gerne im Makro schon einen Pfad vorgeben der geöffnet werden soll. So das ich nicht erst mühsam in den entsprechenden Ordner wechseln muss.
Und/Oder wenn möglich das anhand des Dateinames der geöffneten Datei auf die das Makro angewendet wird eine bestimmte Datei geöffnet wird.
Z.B. Datei 123DW.CSV ist geöffnet und wird bearbeitet, daraufhin soll aus Pfad C:\Beispiel\ die Datei 123RPT.CSV geöffnet werden. D.h. es ändert sich im Dateinamen immer der selbe Buchstabencode am ende. Also von ABC123DW zu ABC123RPT.
Fall dies von interesse ist, die Datei 123DW.CSV liegt allerdings nicht im entsprechenden Verzeichnis aus dem die Datei 123RPT geöffnet werden soll.
Ist dies umsetzbar und wenn ja, wie?
Danke.
Joker

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Datei mittels Makro öffnen
08.03.2013 22:53:16
Daniel
Hi
um einen Pfad vorzugeben, der bei Application.GetOpenFilename als erstes angezeigt wird, musst du die beiden folgenden Befehle zuerst bringen:
ChDrive "C" 'Laufwerk auswählen
ChDir "C:\Beispiel" 'Orner auswählen
Gruß Daniel

AW: Bestimmte Datei mittels Makro öffnen
08.03.2013 23:22:07
AcJoker
Danke, dies hat mir schon sehr geholfen.
Was kann ich denn machen damit es keine Fehlermeldung gibt wenn es den entsprechenden Ordner nicht gibt?
Schön wäre natürlich noch eine Idee zum 2. Teil meiner Frage.
Gruß
Joker

Substitute ...
09.03.2013 08:12:04
Matthias
Hallo
Dim strgQ$, strgZ$
strgQ = "ABC123DW.csv"
strgZ = WorksheetFunction.Substitute(strgQ, "DW", "RPT")
MsgBox strgZ
Gruß Matthias

Anzeige
AW: Substitute ...
09.03.2013 11:25:23
AcJoker
Super, danke das hat mir geholfen.
Ich habe es nun so gelöst.

Dim strgQ$, strgZ$
strgQ = ActiveWorkbook.Name
strgZ = WorksheetFunction.Substitute(strgQ, "RPT", "DW")
MsgBox "Datei" & strgZ & " soll verarbeitet werden."
On Error GoTo Dateiopen
Workbooks.Open "T:\Makro\dw\" & strgZ, Local:=True
Dateiopen:
'   ChDrive "T" 'Laufwerk auswählen
'ChDir "T:\Makro\DW" 'Orner auswählen
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename("CSV " & _
"(*.csv),*.csv")
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets(1)
Else
Exit Sub
End If
Range("B1:B97").Copy
ActiveWorkbook.Close
D.h. ich habe die den Dateinamen ausgelesen und meine alte Routine noch als Fehlerhandling eingebaut.
Beim
Workbooks.Open "T:\Makro\dw\" & strgZ, Local:=True
hatte ich erst das Problem das die CSV´s imTextmode geöffnet wurde, dies konnte ich aber durch anwenden von Local:=True lösen.
Leider finde ich aber keine Lösung für meine Alte Routine, dort wird aktuell leider auch im Textmode geöffnet.
Wie gebe ich bei
Set wks = Workbooks.Open(strDatei).Sheets(1)
an das dass Lokale Trennzeichen verwendet werden soll?
Gruß
Joker

Anzeige
AW: Substitute ...
09.03.2013 11:42:08
AcJoker
Ich muss leider gerade erkennen das auch mein Errohandling an sich nicht passt.
Es wird immer der FileOpen Dialog angezeigt, unabhängig von einem Fehler.

AW: Substitute ...
09.03.2013 12:35:58
AcJoker
Errorhandling passt nun.
Aber das Problem mit den Trennzeichen bei Verwendung von
Set wks = Workbooks.Open(strDatei).Sheets(1)
bleibt bestehen.

Ein Pgm läuft primär linear ab, ...
09.03.2013 12:40:10
Luc:-?
…Joker;
wenn du die F-Behdl bei normalem Ablauf nicht umgehst (zB per Sprungbefehl), wdn ihre Anweisungen folglich stets ebenfalls abgearbeitet. Das ist seit Urzeiten Grundlage jeder derart konstruierten Pgmierung!
Gruß Luc :-?

Anzeige
AW: Ein Pgm läuft primär linear ab, ...
09.03.2013 13:07:27
AcJoker
Ja das musste ich dann leider auch erkennen. *g
Nun läuft aber alles, auch die CSVs werden entsprechend geöffnet.
Problem war hier das mein Beispiel mit dem ich gerade arbeite mit ; getrennt ist, die eigentlich zu verarbeitenden Dateien sind aber echte CSVs, also mit Komma getrennt.

Dim strgQ$, strgZ$
strgQ = ActiveWorkbook.Name
strgZ = WorksheetFunction.Substitute(strgQ, "RPT", "DW")
MsgBox "Datei" & strgZ & " soll verarbeitet werden."
On Error GoTo ErrorHandling
Workbooks.Open "T:\Makro\dw\" & strgZ, Delimiter:=",", Format:=6
NextToError:
Range("B1:B97").Copy
ActiveWorkbook.Close
Und ganz am Ende.
...
Exit Sub
ErrorHandling:
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename("CSV " & _
"(*.csv),*.csv")
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets(1)
Else
Exit Sub
End If
GoTo NextToError
Vermutlich könnte ich
, Delimiter:=",", Format:=6
auch raus lassen da dies ja eigentlich der default Wert ist.
Dennoch herzlichen Dank an alle die sich die Mühe gemacht haben und hier rein geschaut und geholfen haben.
Echt ein klasse Forum hier.
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige