Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel mit Jahr und Datum automatisch ersetzen
#51
Hi,

(16.12.2015, 13:28)snb schrieb: Man braucht nur Zelle A1:

Nicht ganz:
wenn ich es mit Deinem Makro mache, werden nur die beiden Datein vom 1.1. und vom 31.12. erstellt und nicht auch alle dazwischen, wie beim anderen Code.
Antworten Top
#52
Hallo Ralf,

Stimmt, Du warst nur schneller, mein Internet spinnt heute.

Weißt du was bei "If Dir(c00, 16) = "" Then MkDir c00" die 16 bedeutet, von 16 bis 23 funktioniert es auch (von 1 bis 15 funktioniert es nicht).

Gruß Willy
Antworten Top
#53
(16.12.2015, 16:21)WiK schrieb: Weißt du was bei "If Dir(c00, 16) = "" Then MkDir c00" die 16 bedeutet, von 16 bis 23 funktioniert es auch (von 1 bis 15 funktioniert es nicht).

Hallo Willy,

   

Gruß Uwe
Antworten Top
#54
Danke Uwe,

habe sogar die Bibliothek gefunden.

Gruß Willy
Antworten Top
#55
Code:
Sub M_snb()
  y=[A1]
  c00 = "D:\Berichte\Bericht " & Right(y, 2)
  If Dir(c00, 16) = "" Then MkDir c00

  For j = DateSerial(y, 1, 1) To DateSerial(y, 12, 31)
    ActiveWorkbook.SaveAs c00 & "\" & Format(j, "yyyymmdd") & ".xlsx", 51
  Next
  ActiveWorkbook.Close 0
End Sub
Antworten Top
#56
Ist das nicht dasselbe wie:

Code:
Sub M_snb()
 y=[A1]
 c00 = "D:\Berichte\Bericht " & Right(y, 2)
 If Dir(c00, 16) = "" Then MkDir c00

 For j = Range("A1") To Range("B1")
   ActiveWorkbook.SaveAs c00 & "\" & Format(j, "yyyymmdd") & ".xlsx", 51
 Next
 ActiveWorkbook.Close 0
End Sub

? Wobei ich dieses Makro flexibler finde.
Antworten Top
#57
Hallo Ralf,

Hinsichtlich flexibel wäre noch was zu tun. Da sollte in der Schleife A2 und B2 stehen ... Smile
Würde ich im Prinzip auch so handhaben. Wenn mal mittendrin irgendein Fehler auftritt und schon etliche Daten erstellt sind, dann kann man in A2 ein neues Startdatum eingeben und an der Stelle weitermachen. Ich würde dazu aber noch in einer Zelle den "Iststand" ausgeben, damit ich nicht lange nach dem letzten Datum suchen muss. y hab ich rausgenommen, wegen einer Verwendung würde ich keine Variable einsetzen.

PHP-Code:
Sub M_snb()
  
Dim j%, c00$
  
c00 "D:\Berichte\Bericht " Right([a1], 2)
  If 
Dir(c0016) = "" Then MkDir c00
  
For Range("A2"To Range("B2")
    
ActiveWorkbook.SaveAs c00 "\" & Format(j, "yyyymmdd") & ".xlsx", 51
    Cells(2, 3) = ActiveWorkbook.name
  Next
  ActiveWorkbook.Close 0
End Sub 
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#58
Hallo Andre,

Wenn ich "Dim j%, c00$" verwende, ist "For j = Range("A2") To Range("B2")" gelb hinterlegt.
Nehme dafür aber "Dim c00 As String und Dim j As Long" läuft der Code durch.

@snb

Bei deinen Code, habe ich noch "Dim y As String" eingefügt, sonst bleibt der Code bei "y = [A1]" hängen und y ist blau hinterlegt.

Diesen Makro finde ich auch besser  ( flexibler ). Es brauch nur was in A2 und B2 geändert werden und nicht im Makro.
Code:
c00 = "D:\Berichte\Bericht " & Right([a1], 2)
 If Dir(c00, 16) = "" Then MkDir c00
 For j = Range("A2") To Range("B2")
Gruß Willy
Antworten Top
#59
Hi André,

(17.12.2015, 09:14)schauan schrieb: Hinsichtlich flexibel wäre noch was zu tun. Da sollte in der Schleife A2 und B2  stehen ... Smile

ja, klar.
Ich wußte, ich wollte vor dem posten noch was ändern.
Antworten Top
#60
Zu diesem Zweck braucht man weder ein Arbeitsblatt, noch 'option explicit'

Code:
Private sub Workbook_open()
   c00 = "D:\Berichte\Bericht " & Right(year(date), 2)

   If Dir(c00, 16) = "" Then
      MkDir c00

      For j = 1 to 365
        ThisWorkbook.SaveCopyAs c00 & "\" & Format(dateserial(year(date),1,j), "yyyymmdd") & ".xlsx"
     Next
  end if
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste