Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ordnerauswahl aus Dialogfenster

Ordnerauswahl aus Dialogfenster
29.07.2020 12:59:18
AliBaba
Hallo Zusammen,
leider komme ich wieder nicht mehr weiter.
Ich habe durch Recherchen im Internet einen Code gefunden und nach meinem Bedürfnissen geändert.
In diesem Code öffne ich nacheinander alle Dateien (z.B. .xlsx-Dateien) unter einem Ordner bearbeite und schließe sie ab. Soweit ist alle ok. Aber um den Pfad zu ändern muss ich den Pfad in dem Code eingeben.
Meine Frage ist, kann ich keine Dialogfenster öffnen und den Ordner auswählen?
Wenn ihr mir helfen könnt wäre ich dankbar.
Danke im Voraus
Ali
Mein Code:
  • 
    Sub DateienAktualisieren()
    strPath = "C:\Stempelzeiten\2020\07_Juli\"
    strExt = "*.xlsx"       'Dateiextension ggf. anpassen
    Dim strFile As String
    If strPath = "" Then
    Exit Sub
    Else
    strFile = Dir(strPath & strExt)
    Do While Len(strFile) > 0
    Workbooks.Open Filename:=strPath & strFile
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources    'Verkn?pfungen  _
    aktualisieren
    ActiveWorkbook.Save
    Workbooks(strFile).Close
    strFile = Dir()
    Loop
    End If
    End Sub
    


  • 5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Ordnerauswahl aus Dialogfenster
    29.07.2020 13:26:12
    peterk
    Hallo
    So:
    
    Function GetPfad() As String
    Dim objFileDialog As FileDialog
    Dim SItem As Variant
    Set objFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    With objFileDialog
    .AllowMultiSelect = False
    .Title = "Bitte Ordner wählen"
    .InitialFileName = "C:\Stempelzeiten\2020\"
    .InitialView = msoFileDialogViewDetails
    .Show
    If .SelectedItems.Count > 0 Then
    GetPfad = .SelectedItems(1) & "\"
    Else
    GetPfad = ""
    End If
    End With
    Set objFileDialog = Nothing
    End Function
    Sub DateienAktualisieren()
    Dim strFile As String
    strPath = GetPfad
    If strPath = "" Then Exit Sub
    strExt = "*.xlsx"       'Dateiextension ggf. anpassen
    strFile = Dir(strPath & strExt)
    Do While Len(strFile) > 0
    Workbooks.Open Filename:=strPath & strFile
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources   'aktualisieren
    ActiveWorkbook.Save
    Workbooks(strFile).Close
    strFile = Dir()
    Loop
    End Sub
    

    Anzeige
    AW: Ordnerauswahl aus Dialogfenster
    29.07.2020 14:04:29
    AliBaba
    Hallo Peterk,
    ich danke dir für die Superlösung. Du hast mir viel geholfen.
    Ich hätte aber noch eine zweite Frage. Wenn du sie mir wieder so behilflich sein könntest, wäre ich dankbar.
    Ich würde gerne die Dateiform flexibel ändern können.
    z.B. habe ich in mein Code:
    strExt = "*.xlsx" 'Dateiextension ggf. anpassen
    ich würde z.B. die XLSM-Dateien oder andere Dateiformen flexibel eingeben können. Vielleicht mit MsgBox oder sowas ähnliches.
    Danke wieder im voraus.
    LG
    AliBaba
    AW: Ordnerauswahl aus Dialogfenster
    29.07.2020 14:46:15
    peterk
    Hallo
    Ich sehe zwei Möglichkeiten:
    a) Ändere in DateienAktualisieren() die Zeile strExt = "*.xlsx" auf
    
    strExt = Application.InputBox("FileExtension: ", "Eingabe der Filetype", "*.xlsx", Type:=2)
    

    b) Mach es ganz anders. Mit dem Filepicker Dialog kannst Du Dir die Dateien auswählen, die Du bearbeiten möchtest. Es sind schon Filter eingestellt. Wenn Du alle Dateien auswählen möchstest, eine beliebige Datei (kein Verzeichnis) anwählen und dann CTRL-A (alle Auswählen). Es werden zwar auch die Unterordner markiert aber es werden nur die Files übernommen
    
    Sub GetFiles()
    Dim objFileDialog As FileDialog
    Dim SItem As Variant
    Set objFileDialog = Application.FileDialog(msoFileDialogFilePicker)
    With objFileDialog
    .AllowMultiSelect = True
    .Title = "Bitte Files wählen"
    .InitialFileName = "C:\Stempelzeiten\2020\"
    .InitialView = msoFileDialogViewDetails
    .Filters.Clear
    .Filters.Add "XLS", "*.xls", 1
    .Filters.Add "XLSX", "*.xlsx", 2
    .Filters.Add "XLSM", "*.xlsm", 3
    .Filters.Add "EXCEL", "*.xls*,*.csv", 4
    .Filters.Add "ALL", "*.*", 5
    .FilterIndex = 2
    If .Show = -1 Then
    For Each SItem In .SelectedItems
    DateienAktualisieren SItem
    Next SItem
    End If
    End With
    Set objFileDialog = Nothing
    End Sub
    Sub DateienAktualisieren(ByVal meineDatei As String)
    Workbooks.Open Filename:=meineDatei
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources   'aktualisieren
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    End Sub
    

    Anzeige
    AW: Ordnerauswahl aus Dialogfenster
    29.07.2020 14:52:55
    AliBaba
    Hallo Peterk,
    ich danke dir für die Unterstützung.
    LG
    AliBaba
    AW: Ordnerauswahl aus Dialogfenster
    04.08.2020 11:42:12
    AliBaba
    Hallo PeterK,
    Danke nochmals für den Code Sub DateienAktualisieren() und Function GetPfad().
    Das funktioniert auch sehr gut. Ich wollte aber jetzt auch eine neue Code mit msoFileDialogFilePicker bzw. msoFileDialogOpen mit eine direkte Dateiauswahl schreiben es hat aber leider nicht geklappt. Die ausgewählte Datei konnte nicht geöffnet werden. Welche Änderungen müsste ich vom obigen Code durchführen, damit ich aus dem Dialogfenster eine bestimmte Datei bearbeiten kann.
    Ich danke dir im voraus.
    LG
    AliBaba
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige