Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Ordnernamen einlesen, in Tabelle kopieren

Betrifft: Ordnernamen einlesen, in Tabelle kopieren von: dieter
Geschrieben am: 18.10.2014 18:52:35

Hey all,
Ich habe ein kleines Problem damit das ich zwar Ordnernamen einlesen und diese dann auch in eine Tabelle kopieren kann, aber ich bin gezwungen nur den in dem Vba gesetzten Laufwerksbuchstaben zu nehmen. Ich möchte aber gerne mit der Auswahl variabel sein.
Kann könnte mir da einer bei helfen ? so wie ich habe geht der Code aber halt leider nur wie gesagt wenn ich vorher definiere.

Private Sub CommandButton4_Click()  ' Ornername einlesen und in Tabelle kopieren
  Dim objFSO As Object
  Dim objFolder As Object
  Dim strPfad As String
  Dim objSubfolder As Object, colSubfolders As Object
  Dim lngNext As Long
-------------------------------------------------------------------------
  strPfad = "K:\"    ' "D:\Musik\Neu Karin\"
-------------------------------------------------------------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(strPfad)
  Set colSubfolders = objFolder.Subfolders
  lngNext = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row + 1)
  For Each objSubfolder In colSubfolders
    If IsError(Application.Match(objSubfolder.Name, Columns(1), 0)) Then
      Cells(lngNext, 1).Value = objSubfolder.Name
      lngNext = lngNext + 1
    End If
  Next objSubfolder

  Set objFolder = Nothing
  Set colSubfolders = Nothing
  Set objFSO = Nothing
    
End Sub

denke mal die strPfad Anweisung muss anders sein nur Wie ??
Ich danke im Voraus der Hilfe

Mfg.
dieter

  

Betrifft: AW: Ordnernamen einlesen, in Tabelle kopieren von: Tino
Geschrieben am: 18.10.2014 19:07:56

Hallo,
kannst mal so versuchen.

Private Sub CommandButton4_Click()  ' Ornername einlesen und in Tabelle kopieren
Dim objFSO As Object
Dim objFolder As Object
Dim strPfad As String
Dim objSubfolder As Object, colSubfolders As Object
Dim lngNext As Long

strPfad = OrdnerAuswahl("D:\")    ' "D:\Musik\Neu Karin\"
If strPfad = "" Then Exit Sub

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(strPfad)
Set colSubfolders = objFolder.Subfolders
lngNext = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row + 1)
For Each objSubfolder In colSubfolders
  If IsError(Application.Match(objSubfolder.Name, Columns(1), 0)) Then
    Cells(lngNext, 1).Value = objSubfolder.Name
    lngNext = lngNext + 1
  End If
Next objSubfolder

Set objFolder = Nothing
Set colSubfolders = Nothing
Set objFSO = Nothing
    
End Sub

Private Function OrdnerAuswahl(Optional sVorgabe$ = "C:\")
Dim sOrdner$

With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = sVorgabe
    .Title = "Ordnerauswahl"
    .ButtonName = "Auswahl..."
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then
        sOrdner = .SelectedItems(1)
        If Right(sOrdner, 1) <> "\" Then sOrdner = sOrdner & "\"
      Else
        sOrdner = ""
    End If
End With
OrdnerAuswahl = sOrdner
End Function
Gruß Tino


  

Betrifft: AW: Ordnernamen einlesen, in Tabelle kopieren von: dieter
Geschrieben am: 19.10.2014 12:47:18

Hallo Tino,

Dein Code ist wunderbar, funkt wie er soll sogar mit Überprüfung und kann verschiedene Ordner einlesen.
Das kann ich auch für weitere Listen gebrauchen.
Vielen dank nochmals dafür.
Jetzt brauche ich nur noch eine Überprüfung ob ich die Ordner in meiner Gesamtliste ( Mp3 )schon habe.
Werde mal dafür suchen, oder hast du zufällig was griffbereit dafür?
Ansonsten nochmal prima von Dir gemacht. Danke
Mfg.
dieter


  

Betrifft: AW: Ordnernamen einlesen, in Tabelle kopieren von: Tino
Geschrieben am: 19.10.2014 18:28:45

Hallo,
dies wird doch bereits in dieser Zeile von deinem Code geprüft!?

If IsError(Application.Match(objSubfolder.Name, Columns(1), 0)) Then
Gruß Tino


  

Betrifft: AW: Ordnernamen einlesen, in Tabelle kopieren von: dieter
Geschrieben am: 20.10.2014 10:48:14

Hallo Tino,
Ich glaube du Hast mich falsch verstanden, Dein Code ist wunderbar, funkt sehr gut, und das mit der Überprüfung weiß ich doch, aber was ich noch brauche ist, wenn ich Deinen Code eingesetzt habe, soll er mir in einer anderen Gesamttabelle wie Mp3 z.b danach suchen ob ich diesen Ordner schon habe oder nicht. Soll heißen, Dein Code liest z.b auf Laufwerk K:\ den Ordner "Luna" ein und schreibt es in die Tabelle 1 rein. ( Wie jetzt ) dann soll er aber überprüfen, ob dieser Ordner nur "Luna" oder "Luna 1" auch in meiner gesamt Tabelle ( Mp3 ) schon vorhanden ist.
Also Klartext, alle eingelesenen Ordner in Tabelle1 suchen, Vergleichen, überprüfen ob vorhanden in gesamt Tabelle Mp3.
Hoffe mich jetzt etwas besser ausgedrückt zu haben für mein Problem noch.
Mfg.
dieter


  

Betrifft: AW: Ordnernamen einlesen, in Tabelle kopieren von: Tino
Geschrieben am: 20.10.2014 11:00:59

Hallo,
dann passe doch den Suchbereich an wo er nach den Ordnernamen suchen soll.

If IsError(Application.Match(objSubfolder.Name,Sheets("Gesamttabelle").Columns(1), 0)) Then
     '...
     '...
End if
Gruß Tino


 

Beiträge aus den Excel-Beispielen zum Thema "Ordnernamen einlesen, in Tabelle kopieren"