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
#61
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
Antworten Top
#62
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#63
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
Antworten Top
#64
oder:

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

und

For j = 1 To 365-((year(date)+1) mod 4=0)
Antworten Top
#65
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.
Antworten Top


Gehe zu:


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