Thema Datum  Von Nutzer Rating
Antwort
19.12.2019 21:49:52 Dennis
Solved
19.12.2019 21:53:42 Gast1637
Solved
19.12.2019 21:58:20 Dennis
Solved
Blau Automatisch Exceldateien mit Kalenderwochen erstellen?
20.12.2019 02:02:21 xlKing
*****
Solved
20.12.2019 21:26:12 Dennis
Solved
21.12.2019 13:44:34 Dennis
Solved
21.12.2019 18:04:11 xlKing
Solved
21.12.2019 18:40:01 Dennis
Solved
22.12.2019 20:41:53 xlKing
*****
Solved
23.12.2019 06:46:26 Dennis
Solved

Ansicht des Beitrags:
Von:
xlKing
Datum:
20.12.2019 02:02:21
Views:
421
Rating: Antwort:
 Nein
Thema:
Automatisch Exceldateien mit Kalenderwochen erstellen?

Hallo Dennis,

versuch mal testweise folgenden Code. Sollte bei dir ein Fehler kommen, ersetze 

ActiveWorkbook.SaveAs Pfad & "\" & Dateiname

durch

ActiveWorkbook.SaveAs Pfad & "\" & Dateiname, xlOpenXMLWorkbook

Hier nun der Code:

Option Explicit
Sub Anlegen()
 
 Dim Blatt As Worksheet, Dateiname As String, Pfad As String
 Dim y As Variant, dt As Date, wk As Byte, t As Byte, f As Boolean, Tag As String, z As Byte
 
 Set Blatt = ThisWorkbook.Sheets("Haupttabelle") 'Blatt zum Kopieren
  
 Do
 y = InputBox("Geben Sie ein Jahr zwischen 2000 und 2099 ein")
 Loop Until y >= 2000 And y <= 2099 Or y = ""
 If y = "" Then Exit Sub
 
 Pfad = InputBox("Geben Sie einen Speicherpfad an.", "Datei anlegen", ActiveWorkbook.Path)
 If Pfad = "" Then Exit Sub
 
 On Error Resume Next
 MkDir Pfad
 On Error GoTo 0
 
 dt = CDate("01.01." & y)
 wk = DatePart("ww", dt, vbMonday, vbUseSystem)
 If wk = 53 Then f = True
 
 Do While dt <= CDate("31.12." & y)
   t = DatePart("w", dt, vbMonday)
   Tag = Choose(t, "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So")
   
   If dt = CDate("01.01." & y) Or t = 1 Then
     wk = DatePart("ww", dt, vbMonday, vbUseSystem)
     z = 1
     Dateiname = "KW_" & IIf(wk < 10, "0", "") & wk & "_" & IIf(f, y - 1, y)
     Blatt.Copy
   Else
     Blatt.Copy After:=ActiveWorkbook.Sheets(Sheets.Count)
   End If
   
   ActiveWorkbook.Sheets(Sheets.Count).Name = Tag & " " & dt
   ActiveWorkbook.Sheets(Sheets.Count).Range("A1") = Dateiname
   ActiveWorkbook.Sheets(Sheets.Count).Range("B1") = dt
   ActiveWorkbook.Sheets(Sheets.Count).Range("B1").NumberFormat = "ddd dd.mm.yyyy"
   
   If t = 7 Or dt = CDate("31.12." & y) Then
     
     ActiveWorkbook.SaveAs Pfad & "\" & Dateiname
     ActiveWorkbook.Close
     f = False
   End If
 dt = dt + 1
 z = z + 1
 Loop
 

End Sub

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.12.2019 21:49:52 Dennis
Solved
19.12.2019 21:53:42 Gast1637
Solved
19.12.2019 21:58:20 Dennis
Solved
Blau Automatisch Exceldateien mit Kalenderwochen erstellen?
20.12.2019 02:02:21 xlKing
*****
Solved
20.12.2019 21:26:12 Dennis
Solved
21.12.2019 13:44:34 Dennis
Solved
21.12.2019 18:04:11 xlKing
Solved
21.12.2019 18:40:01 Dennis
Solved
22.12.2019 20:41:53 xlKing
*****
Solved
23.12.2019 06:46:26 Dennis
Solved