Daten importieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm MsgBox
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

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