Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
25.04.2018, 09:04
(Dieser Beitrag wurde zuletzt bearbeitet: 25.04.2018, 09:04 von RPP63.)
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 12.04.2014
Version(en): Office 365
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?
Gruß
Peter
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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:
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 12.04.2014
Version(en): Office 365
Hallo,
Zitat:Zellinhalt in die .ini
ah, danke für die Klarstellung.
Gruß
Peter
Registriert seit: 10.04.2014
Version(en): 2016 + 365
25.04.2018, 10:12
(Dieser Beitrag wurde zuletzt bearbeitet: 25.04.2018, 10:12 von Rabe.)
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
Registriert seit: 15.11.2015
Version(en): Office 2013
Danke für alle Beiträge, werde mich bemühen das alles zu realisieren - LG Ubi5!
Melde mich wieder - nochmals recht herzlichen Dank!