suche eine formel in excel

Archiv des urbia-Forums Computer & Technik.

Hier geht es in die aktuelle Version dieser Seite. Nimm dort aktiv am Diskussionsgeschehen teil.

Forum: Computer & Technik

Hier werden Fragen gestellt und Antworten gegeben - alles rund um Rechner, Smartphone und andere Geräte. Wichtig: Bitte Angaben zu Betriebssystem und Browser gleich zur Frage dazustellen - umso leichter kann kompetente Hilfe erfolgen!

Beitrag von ninakay 13.08.07 - 15:31 Uhr

hallo liebe experten :-D

ich hab in excel eine rechnung entworfen, wo immer eine laufende rechnungsnr an zu geben ist! nun meine frage, gibt es eine formel oder eine möglichkeit, dass sich diese nr bei jedem öffnen selber hochzählt? das ich sie nicht manuell eingeben muss! finde da grad keine passende lösung, vielleicht erwarte ich an der stelle auch zuviel von excel #kratz

vielen dank für rückmeldungen

lg nina

Beitrag von ostseepapa 13.08.07 - 15:51 Uhr

moin ja es gibt die möglichkeit. Ich brauche allerdings noch ein wenig hintergrung dazu. Frage verknüpfte Excel Rechnung oder lfd. Tabelle?
LG Ostseepapa

Beitrag von ninakay 13.08.07 - 16:05 Uhr

hm... also es ist ein "blankoformular" das dann dementsprechend ausgefüllt und anschließend abgespeichert wird. das ursprungsformular bleibt immer gleich! habe keine verknüpfungen.

Beitrag von ostseepapa 13.08.07 - 16:09 Uhr

Also erste Nummer eingeben dann die erste Nummer mit gedrückter Strg. nach unten,recht oder links Kopieren fertig.

Beitrag von ninakay 13.08.07 - 16:18 Uhr

bin ja sonst nicht so exceldoof, aber das funktioniert irgendwie nicht!!!!
vielleicht bleib ich in dem fall lieber dabei, es manuell zu aktualisieren :-D

Beitrag von monalou 13.08.07 - 16:46 Uhr

Wenn das die Lösung war, dann habe ich sie nicht kapiert #kratz

Ich habe es so verstanden, dass immer eine um eins höhere Rechnungsnummer automatisch eingetragen werden soll, wenn das Blankoformular (z.B. blanko.xls) in Excel geladen wird. Nach dem Ausfüllen des Formulars wird es unter einem anderen Namen (z.B. rechnung_xyz.xls) gespeichert. Für die nächste Rechnung wird wieder blanko.xls geladen.

Das automatische Eintragen von irgendwelchen Werten beim ersten Öffnen einer Arbeitsmappe nach dem Einladen läßt sich über VBA ganz gut machen, wenn man sich ein wenig in VBA-Programmierung auskennt.

Das zu knackende Problem ist aus meiner Sicht nur, dass die blanko.xls nicht mit den aktualisierten Daten gespeichert wird und somit keinerlei Informationen darüber enthält, wie hoch die zuletzt vergebene Rechnungsnummer inzwischen ist.

Meine Lösung wäre wie folgt:

Das Blankoformular bekommt mittels VBA-Steuerelementen einen Button "Formular speichern / leeren" verpasst, welcher per zugrunde liegendem Makro den aktuellen Tabelleninhalt in einer separaten Datei speichert (mit Abfrage des Dateinamens), den Wert im Feld mit der Rechnungsnummer um 1 erhöht, alle sonstigen zu füllenden Felder leert und anschließend sich selbst wieder speichert.

Der Ablauf wäre dann folgendermaßen:

Du öffnest die Arbeitsmappe, trägst einmalig die aktuelle Rechnungsnummer in das entsprechende Feld ein und füllst alle sonstigen Felder der Rechnung aus. Wenn alles fertig ist, druckst du das Formular aus, drückst dann auf den Button "Formular speichern / leeren", und kannst anschließend weitermachen oder hast beim nächsten Öffnen der Datei gleich wieder ein leeres Formular mit einer bereits erhöhten Rechnungsnummer vor dir.

Allerdings erfordert diese Lösung schon eine gewisse Fertigkeit in VBA und ist von einem Laien sicher nicht so auf die Schnelle zu machen.

Wenn du dich also nicht mit VBA auskennst und bei meinen Ausführungen nur Bahnhof verstenden hast, empfehle ich dir, die zuletzt genutzte Rechnungsnummer einfach irgendwo deutlich sichtbar zu notieren und von Hand zu erhöhen.

Denn leider kann ich Dir nur den Weg verraten, das entsprechende Programm müsstest du wirklich genau auf deine Excel-Datei zugeschnitten erstellen, das kann ich hier leider nicht machen.

Gruß,
Mona-Lou

Beitrag von monalou 14.08.07 - 09:45 Uhr

Hallo nina,

ich habe doch noch eine ganz simple Lösung gefunden, die du in dein Blankoformular einbauen könntest, und nur leicht modifizieren musst.

Nach dem Öffnen deiner Excel-Datei drückst du die Tastenkombination ALT+F11 (VBA-Editor öffnet sich)

dort klickst du links doppelt auf den Eintrag "Diese Arbeitsmappe" und trägst in dem sich öffnenden leeren Codefenster folgenden Programmcode ein:


Private Sub Workbook_Open()
Worksheets("Tabelle1").Range("A1").Value=Worksheets("Tabelle1").Range("A1").Value+1
Me.Save
End Sub

Die "Worksheets"-Zeile hat keinen Zeilenumbruch. Falls hier einer auftaucht, liegt es an der verfügbaren Textbreite, sie soll im Code aber in einer einzigen Zeile stehen!


Anpassen musst du zwei Stellen:

Erstens kann es sein, dass dein Arbeitsblatt mit der Blanko-Rechnung nicht mehr "Tabelle1" heißt, sondern einen anderen Namen bekommen hat. Diesen musst du dann anstelle von "Tabelle1" eintragen.

Zweitens musst du den Wert "A1" an beiden Stellen auf die Feldbezeichnung ändern, in der sich deine Rechnungsnummer befindet (z.B. "C11" oder so ähnlich).

Nach dem Eintragen kannst du das VBA-Editor-Fenster mit dem X schließen und dann musst du nur noch deine Datei einmal abspeichern.

Was diese zwei Zeilen machen ist ganz einfach:

Beim Öffnen der Excel-Datei (Ereignis "Workbook_Open") wird in der "Tabelle1" der aktuelle Wert aus Zelle "A1" gelesen, um 1 erhöht und wieder an die gleiche Stelle zurückgeschrieben. Anschließend speichert sich die Datei selbst, d.h. deine Blanko-Tabelle wird nach jedem Öffnen automatisch mit der nächsthöheren Nummer neu gespeichert.

Um den Startwert für die Rechnungsnummer zu setzen - oder später auch mal zu korrigieren - trägst du ihn einfach von Hand an der entsprechenden Stelle ein, speicherst die Datei, und ab dem nächsten Öffnen zählt er automatisch hoch.

Gruß,
Mona-Lou