Herbers Excel-Forum - das Archiv

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
Excel-Beispiele zum Thema "Daten importieren"
Textdatei in Tabellenblatt importieren Textdatei nach Begriff durchsuchen und Fundzeile importieren
Diagramm exportieren und in Tabellenblatt importieren Suchbegriffe in UserForm eingeben, Fundstelle importieren
Benannte Bereich aus mehreren Arbeitsmappen importieren Textdatei mit 250.000 Zeilen anlegen und importieren
Name und Vorname suchen, Werte und Fundstellen importieren Grafik importieren und in Zelle zentrieren
Arbeitsblatt aus einer anderen Arbeitsmappe importieren Textdatei über QueryTables importieren