Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche nach einer Lösung, Nummernvergabe

Suche nach einer Lösung, Nummernvergabe
16.02.2008 21:11:30
Richard
Hallo zusammen,
ich bin neu hier und versuche mal mein Glück bei vielen sachkundigen Usern...
Folgende Anforderung:
Ich habe eine Excel-Mustervorlage, in der an der Stelle "G5" eine Nummer hochgezählt werden soll. Diese Nummer soll aus einem festgelegten Nummernkreis gezogen werden und auch nicht nochmal verwendet werden dürfen...
Am liebsten würde ich es so lösen, das beim Öffnen die nächste Nummer aus dem Nummernpool gezogen wird und erst beim Abspeichern diese Nummer nicht mehr für weitere Abspeicherungen zur Verfügung steht...
Ich würde mich freuen, wenn ihr mir hierbei ein paar Anregungen bzw. ein paar Lösungsansätze geben könnt.
Vielen Dank im voraus und grüße
Richard Bürger

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche nach einer Lösung, Nummernvergabe
16.02.2008 22:42:31
Niki
Hallo
vielleicht hilft dir dieses Makro. Kopiere es in Visual basic in das MicrosoftExcelObjekt "DieseArbeitsmappe" es wird nun bei jedem speichern kontrollieren ob in G5 schon was steht, wenn nein(Musterdatei) öffnet es eine Datei liest die aktuelle Nr. aus und setzt sie in G5 ein und speichert in der Datei dann die eins höhere Ganzzahl . Sollte die Maximalanzahl erreicht werden, wird eine Meldung ausgegeben und sonst nichts (Da ich nicht weis was gemacht werden soll). Es wird auch davon ausgegangen dass die Datei wirklich gespeichert wird.
Du must noch die 2 Konstanten auf die richtigen Werte setzten, und die entsprechende Datei anlegen und die Anfangszahl reinschreiben.
Const MaxAnz = 32767
Const n = "C:\ZAHLENDATEI.txt"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWorkbook.Sheets("Tabelle1").Range("G5").Value  "" Then
Open n For Input As #1
Line Input #1, Nummer
Close #1
Nummer = CInt(Nummer)
If Nummer > MaxAnz Then
MsgBox ("Maximalanzahl an Dateien erreicht")
Exit Sub
End If
ActiveWorkbook.Sheets("Tabelle1").Range("G5").Value = Nummer
Open n For Output As #1
Print #1, Tab(1); Nummer + 1
Close #1
End If
End Sub


Gruß Niki

Anzeige
AW: Suche nach einer Lösung, Nummernvergabe
17.02.2008 20:19:00
Richard
Guten Abend Niki (und natürlich auch an alle anderen),
erstmal vielen Dank für deine Lösung. Ich habe das Makro ausprobiert und bin schon sehr angetan von dem Ergebniss... Ich habe aber dennoch ein- oder zwei Fragen und hoffe mal ich bekomme auch hier eine gute Antwort.
Kann man das Makro so ausweiten, das ich z.B. nach Speicherung aus der Vorlage heraus in eine "normale" Excel-Arbeitsmappe das Makro für diese neue Arbeitsmappe ausschalte... Ich will damit eigentlich nur verhindern, das sich basierend auf dieser Mappe die Nummern hochzählen. (Ich hoffe es ist verständlich ausgedrückt)
Vielleicht gibt es aber auch eine andere einfachere Lösung hierfür?
Die zweite Frage ist, kann ich die "Zahlendatei" auch in der Musterdatei auf dem zweiten Tabellenblatt definieren und diese auch im Makro ansprechen?
Also schonmal vielen Dank im voraus bzw. Danke an Niki für deine bisherigen Ergebnisse...
Grüße und schönen Abend
Richard

Anzeige
AW: Suche nach einer Lösung, Nummernvergabe
17.02.2008 21:01:04
Fred
Hi,
du musst zunächst mal klar machen, ob die Nummernvergabe intern oder estern geregelt sein soll.
mfg Fred

AW: Suche nach einer Lösung, Nummernvergabe
17.02.2008 21:46:59
Richard
Servus Fred,
wie würde denn die Lösung für "intern" aussehen, denn ich denke die jetzige Lösung mit der "Textdatei" ist je eine "externe" Lösung... Mit anderen Worten, mir wäre es egal ob "intern" oder "extern", jedoch sollte die neu abgespeicherte Excel-Datei ohne das Makro gespeichert werden... Die Excel-Mustervorlage soll im Prinzip die einige Datei sein, die per Makro die Nummern hochzählt. (Ich hoffe es ist auch jetzt noch einigermaßen gut erklärt)
Grüße
Richard

Anzeige
AW: Suche nach einer Lösung, Nummernvergabe
17.02.2008 21:54:20
Richard
sorry... Frage ist noch offen-Haken habe ich vergessen zu setzen...

AW: Suche nach einer Lösung, Nummernvergabe
18.02.2008 17:36:00
Niki
Hi,
vielleicht hilft dir das. Funktioniert aber auch nur wenn Makros aktieviert sind. Einzigeste Möglichkeit es auszutricksen ist, dass man einen schon vorhandenen Namen angibt bzw auf einen schreibgeschützen Bereich schreiben will. Die Konstante Abbruch ist dafür da, dass du die Datei öffnen kannst ohne das das Makro ausgeführt wird, du gibtst einfach 123456789 als Dateinamen an, kannst/solltest du aber auf irgendwas anderes setzten.
Const Abbruch = "123456789."

Private Sub Workbook_Open()
If ActiveWorkbook.Name = "Mappe2.xls" Then
xyz = MsgBox("Bitte speichern sie die Datei sofort, unter einem anderen Namen ab.", 0)
Do
fName = Application.GetSaveAsFilename
Loop Until fName  False
If InStr(1, fName, Abbruch)  0 Then Exit Sub
Zeile = Worksheets("Tabelle2").Range("A1").End(xlDown).Row
Nummer = Worksheets("Tabelle2").Range("A" & Zeile).Value
Worksheets("Tabelle2").Range("A" & Zeile).Value = ""
ActiveWorkbook.Save
Worksheets("Tabelle1").Range("G5").Value = Nummer
ActiveWorkbook.SaveAs Filename:=fName
End If
End Sub


Fertige Mappe:
https://www.herber.de/bbs/user/49991.xls
Gruß Niki

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige