Daten importieren

Bild

Betrifft: Daten importieren
von: Sascha
Geschrieben am: 22.03.2005 16:53:45
Hallo,
ich habe mir ein Makro erstellt (über aufzeichnen), welches mir in eine leere Exceltabelle eine ganz bestimmte Datei importiert (so mit Trennzeichen etc.). Nun ist es aber so, dass man jedes mal die zu importierende Datei genauso umbenennen muss wie diese ursprünglich bei der Makroerstellung geheissen hat. Kann man nicht ein Makro erstellen, welches nachfragt welche Datei importiert werden soll?
Beispiel:
In einem Ordner befinden sich die Dateien art.111; art.222; art.333.
Wenn ich nun das Makro anklicke, soll er mich fragen, welche der in dem Ordner befindlichen Dateien ich importieren möchte (entweder .111, .222, .333).
Ist so etwas möglich?

Gruss
Sascha

Bild

Betrifft: AW: Daten importieren
von: ransi
Geschrieben am: 22.03.2005 17:11:36
hallo sascha

dim gofn
gofn=application.getopenfilename
if gofn<> false then
'jetzt dein code zum importieren
' an der stelle wo dein dateiname steht schreibst du gofn
end if
könnte klappen
ransi
Bild

Betrifft: AW: Daten importieren
von: Volker
Geschrieben am: 22.03.2005 17:16:00
Hallo Sascha,
folgende Prozedur benutzt das bekannte Dialogfenster zum Öffnen einer beliebigen txt-Datei:
Es werden nur txt-files angezeigt.
Willst Du andere files als *.txt sehen, einfach in der 2. Zeile anpassen
Public

Sub txt_öffnen()
datei = Application.GetOpenFilename("Textdateien (*.txt), *.txt,Alle Dateien (*.*), *.*", , _
            "Choose file to open")
If datei = False Then
    Exit Sub
End If
    Workbooks.OpenText Filename:=datei _
        , Origin:=437, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(20 _
        , 1), Array(29, 1), Array(42, 1), Array(55, 1), Array(68, 1)), _
        DecimalSeparator:=".", ThousandsSeparator:=" ", TrailingMinusNumbers:=False
End Sub

Gruß
Volker
Bild

Betrifft: AW: Daten importieren
von: Peter Feustel
Geschrieben am: 22.03.2005 17:22:55
Hallo Sascha,
so kannst du dir alle Dateien anzeigen lassen
und per Doppelklick die gewünschte in dein Makro holen


Sub Datei_auswaehlen()
Dim DName    As String

   DName = Application.GetOpenFilename            ' Auswahl der zu öffnenden Textdatei
     
   If DName = "Falsch" Then                       ' Abbrechen gedrückt ?
      ActiveWindow.SelectedSheets.Delete          ' aktives Blatt löschen
      Exit Sub                                    ' SUB verlassen
   End If
   Open DName For Input As #1                     ' ausgewählte Eingabedatei öffnen

End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Viele Grüße Peter
Bild

Betrifft: AW: Daten importieren
von: Sascha
Geschrieben am: 23.03.2005 10:05:09
Hallo,
vielen Dank erstmal für eure Antworten. Ich habe mich jetzt für folgende Variante entschieden:

Sub Import()
'
' Import Makro
'
'
Dim DName    As String
   DName = Application.GetOpenFilename            ' Auswahl der zu öffnenden Textdatei
     
   If DName = "Falsch" Then                       ' Abbrechen gedrückt ?
      ActiveWindow.SelectedSheets.Delete          ' aktives Blatt löschen
      Exit 

Sub                                    ' 

Sub verlassen
   End If
   Open DName For Input As #1                     ' ausgewählte Eingabedatei öffnen
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\HP-Downloads\artiwin.364", Destination:=Range("A1"))
        .Name = "artiwin"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub


Er springt zwar immer nur in den in Excel hinterlegten Standardspeicherort, aber das ist nicht so schlimm. Das einzig "unschöne" ist die Tatsache, dass man das Makro nur einmal ausführen kann. Schliesst man danach die Mappe und versucht dies bei einer neuen (Mappe 2), so gibt dies den Laufzeitfehler 55 und dem Hinweis Datei bereits geöffnet. Hier muss man Excel erst einmal schliessen und wieder öffnen, dann geht es.
Bis hierhin aber erst nochmal vielen Dank.

Sascha
Bild

Betrifft: AW: Daten importieren
von: Sascha
Geschrieben am: 23.03.2005 13:47:38
Alles zurück. Makro funktioniert nicht, da er sich immer die gleiche Datei nimmt. Ich bin was Makros angeht absoluter Laie und weiss auch nicht wie man jetzt ein von mir erstelltes Makro mit einem anderen zusammenfügt (klar, Cut & Paste ist logisch). Die Reihenfolge ist mir unklar.

Gruss
Sascha
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Daten importieren"