Herbers Excel-Forum - das Archiv

Daten importieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Daten importieren
von: Philipp

Geschrieben am: 29.03.2005 17:03:35
Hallo,
ich möchte aus bestimmten Excel-Tabellen bestimmte Daten importieren! Der User soll über ein UserForm den Pfad dieser Dateien angeben. Geht das evtl. sogar mit einem schicken Verzeichnisbaum? Wie geht das mittels Makro?
Vielen Dank
Philipp
Bild

Betrifft: AW: Daten importieren
von: ransi

Geschrieben am: 29.03.2005 17:36:35


      
hallo philipp
einen schicken verzeichnissbaum?
versuch mal so:
Sub durchsuchen()
Dim Ordnerpfad
Dim dat
Set dat = Application.FileDialog(msoFileDialogFilePicker)
With dat
   .Title = 
"Wo bin ich...."
   .InitialFileName = 
"d:\" 'oder was auch immer
              If .Show = -1 Then
                  
For Each Ordnerpfad In .SelectedItems
                          MsgBox Ordnerpfad 
'Zur weiteren verwendung
                  Next Ordnerpfad
             
End If
    
End With
End Sub
wenn du es ganz schick haben willst, versuch mal so:
Option Explicit
Private Type BROWSEINFO
      hOwner 
As Long
      pidlRoot 
As Long
      pszDisplayName 
As String
      lpszTitle 
As String
      ulFlags 
As Long
      lpfn 
As Long
      lParam 
As Long
      iImage 
As Long
End Type
Declare Function SHGetpathfromidlist Lib "shell32.dll" _
      
Alias "SHGetPathFromIDListA" (ByVal pidl As LongByVal pszpath As StringAs Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
      
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Sub OrdnerAuswahl()
'aus den FAQ abgeschrieben
Dim smsg As String, spath As String
smsg = 
"Wo bin ich... ?"
spath = ordner(smsg)
If spath <> "" Then MsgBox spath
End Sub
Function ordner(Optional smsg) As String
Dim lpBrowseInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
lpBrowseInfo.pidlRoot = 0&
If IsMissing(smsg) Then
      lpBrowseInfo.lpszTitle = 
"Wählen sie bitte einen Ordner aus."
Else
      lpBrowseInfo.lpszTitle = smsg
End If
lpBrowseInfo.ulFlags = &H1
x = SHBrowseForFolder(lpBrowseInfo)
path = Space$(512)
r = SHGetpathfromidlist(
ByVal x, ByVal path)
If r Then
      pos = InStr(path, Chr$(0))
      ordner = Left(path, pos - 1)
Else
      ordner = 
""
End If
End Function
bei VBA-Nein würde ich an deiner stelle aber die erste variante vorziehen.
ransi 

     Code eingefügt mit Syntaxhighlighter 3.0


Bild

Betrifft: AW: Daten importieren
von: Philipp

Geschrieben am: 29.03.2005 17:42:19
Hallo,
total genial! Danke! Die zweite Version funktioniert, aber Application.FileDialog(msoFileDialogFilePicker) wird bei mir irgendwie nicht unterstützt (Fehler 438).
Kann man den Verzeichnisbaum auch irgendwie in ein eigenes UserForm integrieren?
Wie sieht es mit der eigentlichen Frage (Daten importieren) aus?
Nochmal danke, echt cool!
Bis dann
Philipp
Bild

Betrifft: Application.GetOpenFilename
von: ransi

Geschrieben am: 29.03.2005 18:03:27
hallo phillip
ich glaube für das erste musst du noch irgendeinen verweis setzen.
versuchs darum mal mit der ganz einfachen variante.
Public
Sub t()
Dim g
g = Application.GetOpenFilename
If g <> False Then MsgBox g
End Sub

wie das mit dem daten importieren geht, verrät dir der makrorecorder.
nimm den vorgang mal damit auf.
dann kann man den ganzen vorgang anpassen.(die dialogauswahl einpflegen)
ransi
Bild

Betrifft: VIELEN DANK!!! ES FUNKTIONIERT SUPER!!! (o.T.)
von: Philipp
Geschrieben am: 30.03.2005 13:45:08
 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