Office: intelligengente Ordnersuche

Helfe beim Thema intelligengente Ordnersuche in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Experten, ich habe folgendes Problem: Ich habe einen Ordner C:Archiv/erledigt. In dem Ordner sind weitere Unterordner mit den Namen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von k28801, 22. Juli 2020.

  1. intelligengente Ordnersuche


    Hallo liebe Experten,

    ich habe folgendes Problem:

    Ich habe einen Ordner C:Archiv/erledigt. In dem Ordner sind weitere Unterordner mit den Namen 2020, 2021 ....2025. Diese Ordner enthalten jeweils 12 Unterordner mit den Namen Januar, Februar .....Dezember. Ich möchte Dateien in den Ordnern als pdf speichern. Das Makro soll automatisch den Ordner des jeweiligen Jahres und Monats suchen und die Datei dort abspeichern. Dabei soll eine existierende Datei nicht überschrieben werden. Mit freundlicher Hilfe der Forummitglieder habe ich folgenden Code zusammengestellt. Es funktioniert soweit super, bis auf die intelligente Ordnersuche, die ich jetzt integrieren möchte.
    Ich hoffe auf eure Untestützung.


    Sub pdf_speichern()
    Dim Pfad As String, Dateiname As String, Ext As String
    Ext = ".pdf"
    Pfad = "C:Archiverledigt"
    If Dir(Pfad, vbDirectory) = "" Then
    MsgBox "Pfad '" & Pfad & "' existiert nicht"
    Exit Sub
    End If
    If MsgBox("Soll die Datei gespeichert werden?", vbYesNo + vbQuestion, "Achtung") = vbYes Then
    Const FOLDER_PATH As String = "C:Archiverledigt"
    Dim strFilename As String
    Dim lngIndex As Long
    strFilename = FOLDER_PATH & Range("R5").Text & " " & Format(Date, "_YYYY_MM_DD") & ".pdf"
    Do
    If Dir$(strFilename) = vbNullString Then Exit Do
    lngIndex = lngIndex + 1
    strFilename = FOLDER_PATH & Range("R5").Text & " " & _
    Format(Date, "_YYYY_MM_DD") & " (" & CStr(lngIndex) & ").pdf"
    Loop
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilename, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=True, OpenAfterPublish:=False
    MsgBox " Die Datei wurde gespeichert."
    End If
    End Sub

    :)
     
    k28801, 22. Juli 2020
    #1
  2. Hallo,

    jahr = Year(Now)
    monat = Format(Now, "mmmm")

    pfad = "C:\Archiv\Erledigt\" & jahr & "\" & monat
    MsgBox pfad

    Sabina
     
    Flotter Feger, 24. Juli 2020
    #2
  3. [Pokermanier]
    Ich biete Sabinas Konstrukt, erhöhe um eine Prüfung ob Datei vorhanden
    Code:
    und will sehen
     
  4. intelligengente Ordnersuche

    Hallo Sabina,

    ich bekomme es leider nicht hin. Makro hängt sich hier auf.

    Const FOLDER_PATH As String = ""C:Archiverledigt"" & jahr & "" & monat

    Fehler Konstanter Ausdruck erforderlich

    Meine VBA-Kenntnisse sind leider sehr bescheiden.

    Gruß
    Kyristoff
     
    k28801, 24. Juli 2020
    #4
  5. Die Fehlermeldung sagt es doch bereits. jahr und monat sind Variablen. Und Variablen enthalten keine konstanten Ausdrücke. Mach aus der Konstanten einen einfachen String (ohne Const), dann klappts auch mit dem Nachbarn....*wink.gif*
     
  6. Hallo,

    wieso machen es die Fragesteller immer so kompliziert ?
    Ich beziehe mich auf die ersten Zeilen deines Codes ...
    Code:
    alles andere ist für die Frage nicht relevant.
    Die CONST braucht kein Mensch ... die Variable 'Pfad' reicht doch voll auf ... immer dieser gekünstelt, doppelt gemoppelte Code ... *rolleyes.gif*

    @marco:
    Warum willst du das extra prüfen ? Diese Zeile haut dir doch eine Fehlermeldung um die Ohren, wenn es die Datei schon gibt. Reicht doch !
    ActiveSheet.ExportAsFixedFormat ...

    Sabina
     
    Flotter Feger, 25. Juli 2020
    #6
  7. Bis hir klappt es gut.

    FOLDER_PATH = "C:UsersFAMILYDesktoptestNeuer Ordner" & jahr & "" & monat
    Dim strFilename As String
    Dim lngIndex As Long
    strFilename = FOLDER_PATH & Range("R5").Text & " " & Format(Date, "_YYYY_MM_DD") & ".pdf"
    Do
    If Dir$(strFilename) = vbNullString Then Exit Do
    lngIndex = lngIndex + 1
    strFilename = FOLDER_PATH & Range("R5").Text & " " & _
    Format(Date, "_YYYY_MM_DD") & " (" & CStr(lngIndex) & ").pdf"
    Loop
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilename, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=True, OpenAfterPublish:=False
    MsgBox " DANKE!!!!" & vbCrLf & " Mission erfüllt." & vbCrLf & "Die Datei wurde im Reinigungsordner gespeichert." & vbCrLf & "Du hast wieder ein Blatt gespart", vbOKOnly, " Speicherbestätigung"
    End If

    Die Datei wird aber nur Jahresordner gespeichert. Die Dateiname wird mit dem Monatsnamen erweitert.(Was ich nicht wollte.)
    Bitte um weiter Unterstützung.
     
    k28801, 25. Juli 2020
    #7
  8. intelligengente Ordnersuche

    Hallo Sabina,

    weil dieser Farge steller VBA neuling ist und keine Ahnung hat.

    Gruß
    Kyristoff
     
    k28801, 25. Juli 2020
    #8
  9. Hallo Kyristoff,

    ... hab ich schon begriffen, dass der Code nicht von dir ist ... mein 'Grant' richtig sich auch gegen einige Helfer, die sich immer gekünstelt auszudrücken pflegen ... du kannst nichts dafür. Sorry, dass es falsch rüberkam.

    Ich würde es ungefähr so machen ...
    Code:
    Sabina
     
    Flotter Feger, 25. Juli 2020
    #9
  10. Vor dem Aktionieren etwas Sinnieren. Etwas überlegen (Ablaufplan) geht doch, bevor man an Codes herumhackt.

    Der vollständige Pfad (Verzeichnis und Dateiname) ergibt sich aus Deiner Anwendung. Beide bekommst Du zusammen, oder?

    1. Prüfung: Existiert die Datei schon (Verzeichnis ist da inklusive)? Wenn ja, ist nichts weiter zu tun.
    Prüfen kannst Du mit den gezeigten Varianten Dir oder sicherer FileExists.

    Wenn nein: Existiert das gewünschte Verzeichnis, in das die Datei gespeichert werden soll? Um das sicherzustellen, kann man MakeSureDirectoryPathExists verwenden. In das nun vorhandene Verzeichnis kann jetzt die Datei gespeichert werden.
    Man braucht keine Suche und keine Schleifen - bei einem passenden Plan.
     
  11. \@Sabina:
    Sowas kann man einem aber auch im Anstand sagen. *entsetzt
     
  12. \@Marco:
    Du mein Freund ? Ach was ... was ein richtiger Sarde ist, der hält das aus. *Smilie

    Sabina
     
    Flotter Feger, 25. Juli 2020
    #12
  13. intelligengente Ordnersuche

    Danke an alle, die geholfen haben. Es wäre aber besser, wenn die Superintelligenten nicht antworten würden, wenn es sich dabei nur um schlaue Sprüche handelt. Habe nun mal damit nicht viel zu tun und keine Ahnung von der Materie.
     
    k28801, 25. Juli 2020
    #13
  14. Du kannst von Glück reden diesen Charme geerbt zu haben *wink.gif*
     
  15. Eben dann bist du auf solche Antworten angewiesen !
     
Thema:

intelligengente Ordnersuche

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden