Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
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

Einzelne Datein aus Vorlage per Marko speichern

Einzelne Datein aus Vorlage per Marko speichern
30.11.2023 09:00:13
Achim
Guten Morgen liebe Gemeinschaft,

ich muss für einen Kollegen, der leider kaum PC-Kenntnisse hat, Vorlagen für das Jahr 2024 kreieren. Es geht hier mehr oder weniger um Personalplanung.
Es gibt eine Musterdatei und diese Datei muss quasi für jede Woche des Jahres 2024 abgelegt werden (als KW01, KW02, KW03, etc.).
Ich könnte die Vorlagen-Datei jetzt 51x kopieren und umbenennen, aber da ich von Haus auf ein fauler Mensch bin muss es doch da eine Markomöglichkeit geben ;-)
Ich will also mittels der Musterdatei im Endeffekt "Speichern unter" und Dateinamen fortlaufend nummeriert ablegen:
KW01.xlsx, KW02.xlsx, KW03.xlsx, etc.
Da, wie oben beschrieben, der Kollege nicht die besten EDV-Kenntnisse hat, wäre es gut, wenn die erzeugten Kopien an dem Ort automatisch abgespreichert werden, wo die Musterdatei liegt (also KEINE Abfrage des Ablageortes).
Und als nettes Gimmick oben drauf wäre es schön, wenn das Makro vorab fragt, wieviele Kopien erstellt werden sollen und diese Eingabe als Basis für die Nummerierung im Dateinamen nimmt.
Hab jetzt mal testweise folgenden Code kriert:

 Sub Kalenderwochen_erzeugen()

'
' Kalenderwochen_erzeugen Makro
' Speichert die aktuelle Datei unter Dateinamen KW
'

'
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\qwltg\Downloads\QwLtg-Transfer\2024\KW01.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False

ActiveWorkbook.SaveAs Filename:= _
"C:\Users\qwltg\Downloads\QwLtg-Transfer\2024\KW02.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False

ActiveWorkbook.SaveAs Filename:= _
"C:\Users\qwltg\Downloads\QwLtg-Transfer\2024\KW03.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
End Sub


Natürlich könnte ich o.g. Befehle 51x (für 51 Wochen) eintragen - aber das ist sicher nicht professionell.
Vielleicht könntet ihr mir da ja weiterhelfen. Vorab schon mal herzlichen Dank dafür.

Gruß,
Achim

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Datein aus Vorlage per Marko speichern
30.11.2023 16:15:12
Achim
So, soweit habe ich es hinbekommen, dass die Anzahl der abzuspeichernden Dateien abgefragt wird.
Mittels einer Schleife lasse ich es entsprechend oft wiederholen. Wie bekomme ich es hin, dass er die aktuelle Wiederholung zählt und diesen Zahlenwert in den Dateinamen fügt?

Mein Code schaut mittlerweile so aus:
' Abfrage, für wie viele Wochen die Vorlage kopiert werden soll"

Sub Dateinamen()
cb = InputBox("Vorlagen für wie viele Wochen erzeugen?")

' Abfrage aktueller Speicherort der Vorlagendatei
Dim currentWorkbook As String
Dim currentWorkbookDir As String
Dim Tabelle_save As String
currentWorkbook = ActiveWorkbook.Name
currentWorkbookDir = ActiveWorkbook.Path
ChDir currentWorkbookDir

' Beginn des Wiederholungsbefehls (Wiederholen des Unterprogrammes "Speichern")
For x = 1 To cb
dValue = iCounter

' Hier folgt das eigentliche Speicherprogramm, dass aus der o.g. Eingabe einen Wert in den Dateinamen schreibt (KWxx)

ActiveWorkbook.SaveAs Filename:= _
"C:\Users\qwltg\Downloads\QwLtg-Transfer\2024\KW" & iCounter, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False


Next x

End Sub



Irgendwie will es einfach nicht klappen.
Ich will doch nur am Anfang vorgeben, wie oft die Datei abgespeichert werden soll und die Anzahl der Speicherungen als fortlaufende Zahl in den Dateinamen mit aufnehmen...
Anzeige
AW: Einzelne Datein aus Vorlage per Marko speichern
30.11.2023 18:08:57
Piet
Nachtrag

ich erlaube mir einen wichtigen Hinweis zu Excel. Excel kann Daten auswerten, wenn der Tabellenaufbau vernünftig ist.
Üblich ist es die Daten für 52 Wochen alle in eine Tabelle zu packen. Dann kann man mit dem Autofilter auswerten.
Wenn du bei deinem System eine Jahresübersicht erstellen willst, musst du 52 Dateien öffnen.

Das ist technisch gesehen, bei den Vorteilen die Excel einem bietet, nicht sehr sinnvoll.

mfg Piet
AW: Einzelne Datein aus Vorlage per Marko speichern
01.12.2023 18:17:50
Piet
Hallo Achim

schön das du einen Fehler selbst beheben konntest. Hier meine neue Beispieldatei.
Leider ein altes Excel 2003 Format, das Makro kannst du ja nach dem testen in deine Datei übernehmen.
Kopiert wird NUR dein"End" Sheet in eine neue Datei, und die wird mit der KW Woche gespeichert.
Deinen Pfad und die Anzahl kannst du im Start Blatt in zwei Zellen vorgeben.
https://www.herber.de/bbs/user/164693.xls

Ist das eine interessante Lösung für dich?? - Die neue Datei kannst du im xlsx Format speichern, OHNE Button!

mfg Piet
Anzeige
AW: Einzelne Datein aus Vorlage per Marko speichern
01.12.2023 09:22:36
Achim
Hallo Piet,

auch da gebe ich dir recht. Aber zum Einen wird keine Auswertung getätigt, es geht bei der Datei darum Personal an verschiedenen Stationen einzusetzen.
Zum Anderen "haben die das schon immer so gemacht"...
Damit du dir ein besseres Bild davon machen kannst habe ich die Beispieldatei hochgeladen: https://www.herber.de/bbs/user/164681.xlsx

Gruß,
Achim
AW: Einzelne Datein aus Vorlage per Marko speichern
30.11.2023 18:00:11
Piet
Hallo

probiere es bitte mal so. Ich setze voraus das bei W-Woche 0-9 eine Null davor sthen soll??
Sonst kannst du KWo auch direkt durch & x ersetzen. Würde mich freuen wenn es so klappt.

mfg Piet

  • Dim KWo As Variant 'NICHT als Integer!
    If x > 10 Then KWo = "0" & x Else KWo = x
    ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\qwltg\Downloads\QwLtg-Transfer\2024\KW" & KWo, _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
  • Anzeige
    AW: Einzelne Datein aus Vorlage per Marko speichern
    01.12.2023 09:00:03
    Achim
    Hallo Piet,

    du hast recht - das die Woche 1 - 9 als KW01, KW02, ... KW09, KW10 ausgegeben werden soll wäre natürlich mega.
    Ich habe jetzt deinen Vorschlag implementiert; das Makro erstellt so viele Vorlagen, wie ich in der Eingangs auftauchenden Abfrage eingebe - soweit so gut.
    Aber:
    - Ich habe einen Testlauf gestartet und angegeben, dass die Vorlage 11x erstellt werden soll. Dabei benennt das Makro die Datei für Woche 1-9 als "KW1", KW2", etc. und ab KW10 folgt dann "KW011", also das Voranstellen der 0 für die Wochen 1-9 funktioniert noch nicht ganz.
    - Der Code wird ja ausgeführt, wenn die Vorlagendatei geöffnet wird. Wie kann ich als Speicherort angeben, dass die einzelnen zu erzeugenden Vorlagen im selben Speicherort wie die Vorlagendatei? Zur Info, die Vorlagendatei soll künftig an einem anderen Ort liegen und wird jährlich verschoben (Ordner "2024", "2025", etc.)

    Das Script, letzter Stand:
    ' Abfrage, für wie viele Wochen die Vorlage kopiert werden soll"
    
    Sub Dateinamen()
    cb = InputBox("Vorlagen für wie viele Wochen erzeugen?")

    ' Abfrage aktueller Speicherort der Vorlagendatei
    Dim currentWorkbook As String
    Dim currentWorkbookDir As String
    Dim Tabelle_save As String
    currentWorkbook = ActiveWorkbook.Name
    currentWorkbookDir = ActiveWorkbook.Path
    ChDir currentWorkbookDir

    ' Beginn des Wiederholungsbefehls (Wiederholen des Unterprogrammes "Speichern")
    For x = 1 To cb
    dValue = iCounter

    ' Hier folgt das eigentliche Speicherprogramm, dass aus der o.g. Eingabe einen Wert in den Dateinamen schreibt (KWxx)

    Dim KWo As Variant 'NICHT als Integer!
    If x > 10 Then KWo = "0" & x Else KWo = x
    ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\qwltg\Downloads\QwLtg-Transfer\2024\KW" & KWo, _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False


    Next x

    End Sub


    Danke nochmal,

    Gruß Achim
    Anzeige
    AW: Einzelne Datein aus Vorlage per Marko speichern
    01.12.2023 10:15:33
    Achim
    Hallo Piet,

    habe den Fehler mit der 0 gefunden - das > Zeichen im Code müsste sein - dann klappt es dass die Wochen 1-9 als KW01, KW02 usw benannt werden und ab Woche 10 dann entsprechend KW11, KW12 etc.; das passt nun soweit.
    Allerdings passt die Sache mit dem Speicherort noch nicht - wenn ich die Vorlagendatei in einen anderen Ordner kopiere, dann speichert er die erzeugten Kopien nicht dort ab.

    Und noch was anderes:
    Um das ganze für User zu erstellen, die nicht so fit am PC sind, wollte ich es als *.xlsm speichern und dort einen Button "Vorlagen erstellen" einfügen. Soweit so gut.
    Führe ich das Makro aus, dann bekomme ich zum Einen die Fehlermeldung dass Makros nicht in Arbeitsmappen gespeichert werden können.
    Wie kann ich diese Meldung umgehen?
    Zum Anderen ist in jeder als *.xlsx-Kopie noch der ursprüngliche Button "Vorlagen erstellen" ersichtlich. Kann ich den irgendwie übers Makro entfernen lassen, sodass er bei den abgelegten Kopien nicht mehr ersichtlich ist?

    Danke nochmals,

    Gruß Achim
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige