Anlegen von Kundenordnern und Kopie von Word-Dateien

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Anlegen von Kundenordnern und Kopie von Word-Dateien

    Guten Morgen,

    ich arbeite bei einem Bildungsträger, wo wir regelmäßig für neue Kunden Aufnahmegespräche führen und dann Ordner anlegen müssen.

    Die Daten aller Kunden werden zunächst in eine Excel-Tabelle eingetragen, in der die ersten Felder so aussehen:

    lfd. Nr.
    Name
    Vorname
    Geburtsdatum
    Kundennummer
    (Spalte 30)
    1
    Muster
    Max
    12.03.1960
    999D111222
    eingemündet
    2
    Müller
    Stefanie Daniela
    14.05.1980
    333A123456
    eingemündet


    Das Erzeugen neuer Ordner für die Kunden habe ich bereits mittels eines Makros gelöst. Die Einträge aus der Liste (mit dem Grenzbereich der Eingabebox) werden im Ordner Neukunden angelegt. Die Form ist immer Name_Vorname_Kundennummer.

    Visual Basic-Quellcode

    1. Sub OrdnerAnlegen()
    2. Dim lngI As Long
    3. Dim Start As Long
    4. Dim Ende As Long
    5. Dim Kundenname As String
    6. Start = InputBox("Erster Eintrag (Excel-Zeile, nicht laufende Nummer):")
    7. Ende = InputBox("Letzter Eintrag:")
    8. For lngI = Start To Ende
    9. Kundenname = ActiveSheet.Cells(lngI, 2).Text & "_" & ActiveSheet.Cells(lngI, 3).Text & "_" & ActiveSheet.Cells(lngI, 5).Text
    10. MkDir "X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Neukunden\" & Kundenname
    11. ' fehlerhafter Code
    12. ' FileCopy("X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Blanko Kundenakte_Bitte KOPIEREN\Name_Vorname_Kd.Nr._F_5_8_Teilnehmerbezogener Bericht_TC_SGB2.docx", ("X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Neukunden\" & Kundenname & "_Bericht.docx"))
    13. ' fehlerhafter "alter" Code (Langform ohne String Kundenname)
    14. ' " & ActiveSheet.Cells(lngI, 2).Text & "_" & ActiveSheet.Cells(lngI, 3).Text & "_" & ActiveSheet.Cells(lngI, 5).Text & "\" & ActiveSheet.Cells(lngI, 2).Text & "_" & ActiveSheet.Cells(lngI, 3).Text & "_" & ActiveSheet.Cells(lngI, 5).Text & "_F_5_8_Teilnehmerbezogener Bericht_TC_SGB2.docx"))
    15. Next lngI
    16. End Sub



    Woran ich gerade knabbere, ist das Kopieren der zwei Startdateien (Gesprächsdokumentation und F_5_8_Bericht, beide .docx-Format). Ihr seht auskommentierte Codezeilen mit FileCopy. Ich habe diesen Riesenpsalm mit Name_Vorname_Kundennummer lieber in den String Kundenname gepackt, statt jedes Mal drei ActiveSheet.Cells zu verknüpfen.

    Ich möchte nun die beiden Dateien Gesprächsdokumentation und F_5_8_Bericht aus dem Vorlageordner Blanko Kundenakte in die neu erzeugten Kundenordner kopieren und bereits für jeden neuen Kunden umbenennen, dass sie dann Name_Vorname_Kundennummer_Gesprächsdokumentation.docx (also Muster_Max_999D111222_Gesprächsdokumentation.docx) und Name_Vorname_Kundennummer_F_5_8_Teilnehmerbezogener Bericht.docx heißen.

    FileCopy spuckt jedoch immer einen Syntaxfehler aus? Ich habe es schon mit Klammersetzung probiert, um die beiden Argumente besser zu trennen. Oder kann es daran liegen, dass er innerhalb eines Netzwerklaufwerks kopieren soll?

    Bin für jeden Tipp dankbar!

    Viele Grüße,

    Benny

    Jobcoach schrieb:

    FileCopy("X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Blanko Kundenakte_Bitte KOPIEREN\Name_Vorname_Kd.Nr._F_5_8_Teilnehmerbezogener Bericht_TC_SGB2.docx", ("X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Neukunden\" & Kundenname & "_Bericht.docx"))

    Jobcoach schrieb:

    Ich habe es schon mit Klammersetzung probiert
    Hast du es auch schon ohne Klammern probiert?
    Ein Methode ohne Rückgabewert wird nicht mit Klammern aufgerufen.

    Visual Basic-Quellcode

    1. FileCopy "X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Blanko Kundenakte_Bitte KOPIEREN\Name_Vorname_Kd.Nr._F_5_8_Teilnehmerbezogener Bericht_TC_SGB2.docx", "X:\Oberlaufwerk\6_Berichte\6_2_Teilnehmerbezogene Berichte\Neukunden\" & Kundenname & "_Bericht.docx"
    Im übrigen wäre es sicher kein Fehler, wenn du deine Pfade in Variablen verpackst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo petaod,

    vielen Dank, es klappt jetzt einwandfrei!

    Ich habe früher ein bisschen mit Blitz Basic programmiert. Daher kam ich jetzt überhaupt nicht auf die Idee, dass FileCopy ohne Klammer aufgerufen werden muss. Dachte die würden nicht stören.
    Zudem hatte mir die Syntaxvorgabe den Befehl auch als FileCopy(Source_as_String, Path_as_String) mit Klammern angezeigt...

    Viele Grüße, Benny