Clever-Excel-Forum

Normale Version: Formel mit Jahr und Datum automatisch ersetzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7
Hi Willy,

(18.12.2015, 09:13)WiK schrieb: [ -> ]Wenn ich "Dim j%, c00$" verwende, ist "For j = Range("A2") To Range("B2")" gelb hinterlegt.

für j wäre folgendes besser:
Code:
Dim j&             '! = Single, # = Double, % = Integer, & = Long, ^ = LongLong, @ = Currency, $ = String
Hallo Willy,

da war ich gedanklich noch bei der Jahreszahl in A1. Die ist ja im Integer-Bereich. Die Datumszahlen sind über 40.000 und damit schon ein paar Tausend raus und im Long-Bereich.
Hallo Zusammen,

Andre, Nobody is perfect und Ralf hat es doch wieder gerichtet.

@snb  

Nicht immer ist der kürzeste Weg der beste, ich bleibe bei der Variante. Die Leute, die damit arbeiten sollen, haben nur geringen Excelkenntnisse.
Code:
Private Sub CommandButton1_Click()
 Dim j&, c00$
c00 = "D:\Berichte\Bericht " & Right([A1], 2)
 If Dir(c00, 16) = "" Then MkDir c00
For j = [A2] To [B2]
   ActiveWorkbook.SaveAs c00 & "\" & Format(j, "yyyymmdd") & ".xlsx", 51
 Next
Application.Quit
End Sub
Deinen letzten Code, habe ich natürlich auch getestet, er erstellt nur die Dateien für dieses Jahr, es sollen aber die für das kommende Jahr erstellt werden.
Habe ihn mit meinen bescheidenen Kenntnisse angepasst. Es gib bestimmt eine bessere Variante.
Code:
Private Sub Workbook_open()
  c00 = "D:\Berichte\Bericht " & Right(Year(Date + 365), 2)

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

     For j = 1 To 366           '2016 ist ein Schaltjahr
       ThisWorkbook.SaveCopyAs c00 & "\" & Format(DateSerial(Year(Date + 365), 1, j), "yyyymmdd") & ".xlsx"
    Next
 End If
End Sub
Danke auch an alle anderen Mitwirkenden.

Gruß Willy
oder:

c00 = "D:\Berichte\Bericht " & Right(Year(Date)+1, 2)

und

For j = 1 To 365-((year(date)+1) mod 4=0)
Eine Idee: es sollte schneller gehen, wenn mit der genannten Formel die Dateiname ins Arbeitsblatt geschrieben werden und dann zusammen mit "copy vorlage.xlsx " ist ein Textfile gespeichert werden, als *.bat benannt und direkt ausgeführt wird.
Seiten: 1 2 3 4 5 6 7