Clever-Excel-Forum

Normale Version: Excel 2016 Vorlage
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Moin!
Range("F4") muss besser referenziert werden, Ralf!
Schließlich kann man ja nicht wissen, welches Sheet beim Öffnen gerade das ActiveSheet ist.
Worksheets("Rechnung").Range("F4").Value = Format(Date, "YYYYMM") & Format(intNo, "0000")

Gruß Ralf
Außerdem halte ich nichts davon, alles ins Workbook_Open zu quetschen.
Wenn die Excel-Datei nicht gespeichert wird, hast Du keine kontinuierliche Re-Nr
So etwas (das Schreiben in die .ini) gehört (wie ich oben bereits schrieb) besser ins Before_Save

Two Cents,
Ralf
Hallo,

Zitat:So etwas (das Schreiben in die .ini) gehört (wie ich oben bereits schrieb) besser ins Before_Save

mein Gedanke mit dem Befor_Save, wobei ich nicht VBA-affin bin:

Wenn ich eine Rechnung schreibe und speichere wird eine Rechnungsnummer erzeugt.

Was passiert wenn eine Rechnung in ihrer Entstehungsphase mehrmals zwischengespeichert wird? Wird dann jedesmal die Rechnungsnummer hochgezählt?
Ich schreibe ja im BeforeSave den Zellinhalt in die .ini
Wenn ich mehrfach speichere, wird halt immer die gleiche Nummer geschrieben.
Die Kontinuität der Rechnungen ist also gewährleistet.
Bei obigem Code besteht die große Gefahr, eine Rechnung zu suchen, die gar nicht existiert!
Dann mal viel Spaß bei der nächsten Betriebsprüfung!  :21:
Hallo,

Zitat:Zellinhalt in die .ini

ah, danke für die Klarstellung.
Hi,

ihr habt recht!

Ich habe es nun so gemacht:

Code:
Option Explicit

Public intNo   As Integer
Public strFile As String

Private Sub Workbook_Open()
  strFile = ThisWorkbook.Path & "\factura_" & Format(Date, "YYYY") & ".ini"
 
  If Dir(strFile) <> "" Then
     Open strFile For Input As #1
     Input #1, intNo: Close
  End If
 
  intNo = intNo + 1
  '     Open strFile For Output As #1
  '     Print #1, intNo: Close
 
  Worksheets("Rechnung").Range("F4").Value = Format(Date, "YYYYMM") & Format(intNo, "0000")
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Open strFile For Output As #1
  Print #1, intNo: Close
 
End Sub
Danke für alle Beiträge, werde mich bemühen das alles zu realisieren - LG Ubi5!
Melde mich wieder - nochmals recht herzlichen Dank!
Seiten: 1 2 3