Excel-Datei mit variablem Namen öffnen

  • #1
K

klexy

Bekanntes Mitglied
Themenersteller
Dabei seit
04.05.2002
Beiträge
802
Reaktionspunkte
0
Ort
Bayern
Ich habe einen Datenbank-Export unter der Kundennummer abgespeichert 123456.txt
Ich will diese Datei mittels Makro aufmachen und gleich ordentlich formatieren.

Funktioniert alles bestens wenn die Datei immer den gleichen Namen hat (wichtig ist in diesem Zusammenhang nur die erste Zeile):
ChDir C:\
Workbooks.OpenText FileName:=C:\123456.txt, Origin:= _
xlWindows, startRow:=1, DataType:=xlFixedWidth, OtherChar:=|, _
FieldInfo:=Array(Array(0, 1), Array(38, 2), Array(48, 1), Array(52, 2), Array(79, 1), _
Array(90, 1), Array(92, 1), Array(103, 1))

Wenn ich jetzt aber in der Ausgangs-Datei in Zelle B1 angeben will welche Datei zu öffnen ist (weil es ja jedes Mal ein anderer Kunde ist), komme ich nicht weiter. Das funktioniert nicht:
ChDir C:\
Workbooks.OpenText FileName:=C:\ & B1 & txt, Origin:= _
xlWindows, startRow:=1, DataType:=xlFixedWidth, OtherChar:=|, _
FieldInfo:=Array(Array(0, 1), Array(38, 2), Array(48, 1), Array(52, 2), Array(79, 1), _
Array(90, 1), Array(92, 1), Array(103, 1))

Wo liegt der Hase im Pfeffer?
 
  • #2
Hi klexy,

zunächst erstmal am Punkt (.txt) - Makros denken nicht mit, ihnen muß man alles sagen ;D

Weiterhin kann er B1 nicht übersetzen. Da muß man im sagen, dass dies der Inhalt einer Zelle sein soll. Da ich davon ausgehe das B1 nur eine Nummer enthält und ich die Formatierung nicht kenne, gebe ich dem Makro vor, eine String-Variable anzulegen ( Dim s_tmp as String) und den Inhalt von Zelle B1 in dieser Stringvariablen zu speichern. Dabei findet eine automatische Umwandlung von Zahl in String statt, wenn es nötig ist. Damit wird die Pfad/Dateiangabe (Typ String) zusammengesetzt.

Gruß Matjes :)

Variante 1:
Code:
Dim s_tmp As String

s_tmp = ActiveSheet.Range(B1).Value

ChDir C:\
Workbooks.OpenText FileName:=C:\ & s_tmp & .txt, Origin:= _
    xlWindows, startRow:=1, DataType:=xlFixedWidth, OtherChar:=|, _
    FieldInfo:=Array(Array(0, 1), Array(38, 2), Array(48, 1), Array(52, 2), _
    Array(79, 1), Array(90, 1), Array(92, 1), Array(103, 1))

Variante 2:
Code:
Dim s_tmp As String

s_tmp = ActiveSheet.Cells(1, 2).Value

ChDir C:\
Workbooks.OpenText FileName:=C:\ & s_tmp & .txt, Origin:= _
    xlWindows, startRow:=1, DataType:=xlFixedWidth, OtherChar:=|, _
    FieldInfo:=Array(Array(0, 1), Array(38, 2), Array(48, 1), Array(52, 2), _
    Array(79, 1), Array(90, 1), Array(92, 1), Array(103, 1))
 
  • #3
Spät aber doch komme ich dazu, das Makro auszuprobieren.
One wall free, wie der Engländer sagt. ;D

Die Sache mit Range.Value hatte ich mir schon gedacht und auch alle möglichen Varianten durchprobiert, aber wahrscheinlich immer irgendwo einen Punkt vergessen.

Ich hab aber wieder den Dim rausgemacht. :-\ (Pfui, böser Bub!)
 
Thema:

Excel-Datei mit variablem Namen öffnen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben