HalloBernhard,
Post by Bernhard MüllerWie kann ich das Macro so ausführen das ich im EXCEL einen Button habe und
das es über das öffnen geht
Füge aus der Symbolleiste "Steuerelement-Toolbox" eine Schaltfläche auf
deinem Tabellenblatt ein. Klicke auf das zweite Symbol der Leiste "Eigenschaften".
Hier kannst du den Beschriftungstext und andere Einstellungen für das Element festlegen.
Mit einem Doppelklick auf das Element gelangst du in den VBA-Editor und es
wird das Codegerüst des Hauptereignisses 'CommandButton1_Click" erstellt.
Dazwischen kannst du nun Code einfügen, der ausgeführt wird,
wenn die Schaltfläche angeklickt wird.
Wechsel wieder in die Excel-Umgebung und beende den Entwurfmodus über
das türkisfarbene Symbol der genannten Symbolleiste.
Per Klick auf die Schaltfläche wird der hinterlegte Code ausgeführt.
Post by Bernhard MüllerUnd wie könnte ich es machen wenn ich von Null wider anfangen will oder mit
einer bestimmten Nummer beginnen will.
Dazu habe ich die Prozedur in eine Funktion umprogrammiert.
Beim Aufruf der Funktion kann eine Zahl übergeben werden.
Weitere Kommentare stehen in der Funktion.
Speicher sie in einem Standardmodul:
Function Rechnungsnummer(ByRef rngCell As Range, _
Optional varNo As Variant = "Nix") As Boolean
'-----------------------------------------------------------------------'
' Autor: ***@mvps.org '
' Datum: 08.01.2004 '
' - Funktion erfordert zwingend als erstes Argument die '
' Ausgabezelle für Funktionsergebnis '
' - Optional kann als zweites Argument eine Rg.Nr. angegeben werden '
' - Im Verzeichnispfad der Arbeitsmappe wird eine *.ini-Datei angelegt, '
' wenn für das laufende Jahr noch keine besteht. '
' - *.ini-Datei enthält die letzte verwendete Rechnungsnummer '
' - Funktion liefert die nächste Rechnungsnummer im Format YYYYMM#### '
' - Beispiele zum Aufruf der Funktion: '
' - Nächste Rg.-Nr. in aktiver Zelle '
' Rechnungsnummer ActiveCell '
' - Von Vorne beginnen '
' Rechnungsnummer Worksheets(1).Range("A1"), 0 '
' - Rg.-Nr. 125 festlegen (1 Zähler weniger angeben wie gewünscht) '
' Rechnungsnummer ActiveCell, 124 '
'-----------------------------------------------------------------------'
Dim strFile As String
strFile = ThisWorkbook.Path & "\factura_" & Format(Date, "YYYY") & ".ini"
' Wenn keine Rg.-Nr. übergeben wurde, hole Wert
If varNo = "Nix" Then
If Dir(strFile) <> "" Then
Open strFile For Input As #1
Input #1, varNo: Close
Else
varNo = 0
End If
End If
' Wenn Wert keine Zahl: Funktionsergebnis = Falsch
If Not IsNumeric(varNo) Or varNo > 999 Then Exit Function
varNo = varNo + 1
' neue Nr. in *.ini-Datei schreiben
Open strFile For Output As #1
Print #1, varNo: Close
' Ergenis in Ausgabezelle schreiben
rngCell.Value = Format(Date, "YYYYMM") & Format(varNo, "0000")
Rechnungsnummer = True
End Function
Der Schaltfläche zum einfügen der nächsten Rechnungsnummer hinterlege
folgende Prozedur:
Private Sub CommandButton1_Click()
Rechnungsnummer Worksheets(1).Range("A1")
End Sub
Füge eine zweite Schaltfläche ein, um über eine InputBox den Wert der
Rechnungsnummer einzugeben. Die *.ini-Datei wird entsprechend angepasst.
Private Sub CommandButton2_Click()
Rechnungsnummer _
Worksheets(1).Range("A1"), _
Application.InputBox( _
"Geben Sie eine Rechnungsnummer ein.", Type:=1) - 1
End Sub
Wenn du Fragen dazu hast, melde dich gerne wieder hier.
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#