Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel fortlaufende Nummern / Auswahl





Frage

Hallo, ich bin leider der totale excel-laie, aber vielleicht kann mir hier jemand helfen. Kann ich in Excel eine Vorlage erstellen, die ein Feld Rechnungsnummer enthält, die nach jedem speichern automatisch eins weiterspringt? Und 2. kann man in Excel eine Art Box einpflegen in der man aus verschiedenen Sachen auswählen kann (bekannt aus fragebögen z.B. beim Geburtstag, da kann man ja auch so eine kleine Pfeil-runter Taste drücken und eine Auswahl von 1-12 erscheint z.B. für die Monate. Und wenn ja, kann ich andere Boxen mit dieser dann getroffenen Auswahl verknüpfen, so dass z.B. wenn ich den Namen ausgewählt habe eine irgendwo sonst gespeicherte Adresse im Adressfeld erscheint? Und last but not least, kann man in einer Vorlage wie bei Word ein sich selbst aktualisierendes Datumsfeld anlegen? Viele viele Fragen und hoffentlich viele viele (und bitte bitte leicht verständliche Lösungsvorschläge) Liebe Grüße und vielen Dank Danny

Antwort 1 von Jürg

Die Lösung für die Datums-Frage ist eine Formel: =heute()

Antwort 2 von piano

Hi
zur Box:
Menü: Daten, Gültigkeit
unter Zulassen "Liste" auswählen
unter Quelle die Daten eingeben (Trennzeichen ";") oder aus Excel-Tabelle importieren.
ist diese Box in Zelle "B5" und soll das Ergebnis in "C7" erscheinen, dann gibst du in "C7" die Formel "=B5" ein.

Verknüpfung geht ganz einfach mit der Formel (in Ergebnis-Zelle):
=C7 & " " & C8

das Zeichen "&" verbindet die Zellen und muß zwischen Leerzeichen stehen (in diesem Fall werden 2 Zellen mit einer Leerstelle Abstand verknüpft, das kann aber beliebig fortgesetzt werden)

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.


Antwort 3 von coros

Hi @Danny-live,

und hier kommt ein Lösungsvorschlag zu Deinem ersten Teil Deiner Frage. Füge nachfolgende Anweisung in "Diese Arbeitsmappe in Deinem VBA-Projekt ein:

Private Sub Workbook_Open()
Cells(1, 1).Value = Cells(1, 1).Value + 1
End Sub


Der Code macht folgendes, er schreibt in Zelle A1 eine 1 und addiert bei jedem Öffnen eine 1 dazu. Soll diese Addition in einer anderen Zelle erscheinen, müssen die Zahlen, die in der Anwesiung in Klammern stehen geändert werden. Die erste Zahl in der Klamme steht für die Zeile. Für Zeile 1 eine 1, für Zeile 2 eine 2 usw. Die zweite Zahl sagt die Spalte aus. Für Spalte A eine 1, für Spalte B eine 2, für C eine 3 usw. Soll also z.B die aufaddierte Zahl in B4 erscheinen müsste die Anweisung so aussehen:

Private Sub Worksheet_Activate()
Cells(4, 2).Value = Cells(4, 2).Value + 1
End Sub



Da ich, aufgrund Deiner einleitenden Worte, davon ausgehe,dass Du Dich auch nicht mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.

1. Kopiere die Anweisung aus diesem Beitrag

2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor

3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle)

4. Klicke danach auf den Eintrag Diese Arbeitsmappe

5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.

Du solltest zum Abschluß noch die Sicherheitseinstellungen, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.

Ich hoffe, Du kommst mit den Erklärungen klar. Wenn nicht, einfach hier noch mal posten.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von danny-live

Hallo piano und coros, erstmal vielen Dank für die Mühe, werde mich am WE eingehend damit beschäftigen und spätestens am Dienstag mit neuen Fragen aufwarten oder ein Erfolgserlebnis verkünden!

Euch beiden ein schönes WE und schon einmal vielen vielen Dank!!!
Danny

Antwort 5 von danny-live

Hallo piano und coros, erstmal vielen Dank für die Mühe, werde mich am WE eingehend damit beschäftigen und spätestens am Dienstag mit neuen Fragen aufwarten oder ein Erfolgserlebnis verkünden!

Euch beiden ein schönes WE und schon einmal vielen vielen Dank!!!
Danny

Antwort 6 von danny-live

Hi @ piano,

hat soweit alles geklappt, aber eine kleine Frage ist noch, in dem drop-Down Menü (was ich jetzt dank deiner Hilfe geschaffen) habe sollen nur die Namen von Personen erscheinen. In einem Feldern darunter soll dann die dazugehörige Strasse und Hausnummer und weitere 2 Felder darunter dann die Stadt mit Postleitzahl erscheinen. Wie mache ich es, das z.B alle auf dem 2. Tabellenblatt hinterlegten Adressen zum passenden Namen in den Adressfeldern erscheinen, indem ich sie in dem Drop-down auswähle. Ich habe schon einmal was von SVERWEIS in diesem Zusammenhang gehört, ist das richtig, und wenn ja wie muss ich das machen. Das "Adressbuch" im 2. Tabellenblatt ist so angelegt, dass in der ersten spalte die adresse, in der 2. Strasse, 3. PLZ und 4 Stadt und 5. Tel/Fax hinterlegt ist.

Lieben Gruß und schonmal Danke


Hi @ coros,

auch deine Erklärung war super, habe alles hinbekommen so wie ich es wollte. (war aber auch eine geniale Erklärung...). Ich möchte ja, dass sich immer die eine Nummer beim öffnen um eins ändert, alle anderen Sachen sollen so sein (Ursprungszustand) wie in der Vorlage mit dem VBA Projekt. Bei dem jetzt mit deiner Erklärung erstellten Vorlage fragt mich der PC ja immer ob ich die Änderungen speichen will. Ich muss ja "ja" klicken, damit sich die Nummer beim nächsten mal ändert. Leider speichert Excel die Vorlage dann auch mit all den anderen spezialisierten Daten in der Vorlage und nicht im allgemein oder Ursprungszustand. Kann ich irgendwo einstellen, dass Excel nur die Änderung in dieser einen Zelle speichert und alle anderen Änderungen unberücksichtigt läßt? Dann könnte ich einmal die Datei unter dem gewünschten Namen speichern und dann noch einmal in der Vorlage die Änderung speichern.

An euch beide schon einmal vielen Dank.

Danny

Antwort 7 von piano

hallo
zum SYERWEIS:
Die Tabelle muß etwa so aussehen (ev. beide Tabellen zusammenführen, hier A1-E60 in Tabelle2):
Spalte A: Name (eindeutig)
Spalte B: Strasse
Spalte C: PLZ
Spalte D: Stadt und
Spalte E: Tel/Fax

Formel für Strasse (Name in A6):
=SVERWEIS(A6;Tabelle2!A1:E60;2;0)

Formel für PLZ:
=SVERWEIS(A6;Tabelle2!A1:E60;3;0)

Formel für Stadt:
=SVERWEIS(A6;Tabelle2!A1:E60;4;0)

Formel für Tel/Fax:
=SVERWEIS(A6;Tabelle2!A1:E60;5;0)


Soll PLZ und Ort in eine Zelle, dann verbinden wie vorher beschrieben:
=SVERWEIS(A6;Tabelle2!A1:E60;3;0) & " " & SVERWEIS(A6;Tabelle2!A1:E60;4;0)

Gruß piano

Antwort 8 von piano

Hi
Deine Antwort an coros ist genau der Grund, warum ich zu diesem Thema keine Lösung anbieten wollte.
Du kannst eine Vorlage mit der Endung .xlt erstellen und mit Datei - Neu zuweisen. Geöffnet wird dann allerdings eine normale Arbeitssmappe. Man müßte nun sofort nach dem hochzählen die Vorlage überschreiben. Wie, das überlege ich mir noch, vielleicht gibt es bald eine Lösung!
Gruß piano

Antwort 9 von coros

Nabend @danny-live,

eine Möglichkeit wäre, man löscht beim Beenden der Datei automatisch über ein Makro die vorher von Dir ausgefüllten Zellen, bzw. Zeilen. Allerdings der Zelleninhalt, der Deine Rechnungsnummer enthält, wird nicht gelöscht. Danach wird ebenfalls automatisch Deine Vorlagendatei gespeichert. Allerdings gibt es hierfür kein Universalmakro. Man müsste schon wissen, welche Zellen, bzw. Zeilen ausgefüllt werden, in welchen Spalten diese Zellen stehen usw. Das beste wäre, man hätte Deine Datei vor Augen, also ich hätte eine Beispieldatei von Dir, dann könnte man ein genau auf Deine Datei abgestimmtes Makro erstellen. Also wenn Du möchtest, schicke mir Deine Datei mit Erklärungen welche Bereiche ausgefüllt werden. E-Mail steht oben. Eine Bitte allerdings: Binde irgendwie in Deinem Betreff an mich das Wort Supportnet mit ein. Alle E- Mails, deren Absender ich nicht kenne, werden von mir ungelesen gelöscht.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 10 von piano

Hi
Hier wie versprochen die Lösung:


Private Sub Workbook_Open()
'
    Workbooks.Open(Filename:= _
        "C:\Programme\Microsoft Office\Vorlagen\Tabellenvorlagen\RECHNUNGX.XLT", _
        Editable:=True).RunAutoMacros Which:=xlAutoOpen
   Cells(1, 1).Value = Cells(1, 1).Value + 1
   RNummer = Cells(1, 1).Value
    ActiveWorkbook.Save
    ActiveWorkbook.RunAutoMacros Which:=xlAutoClose
    ActiveWorkbook.Close
    Workbooks.Add Template:= _
        "C:\Programme\Microsoft Office\Vorlagen\Tabellenvorlagen\Rechnungx.xlt"
End Sub


Hier passiert folgendes:
Eine Vorlagendatei im Pfad C:\Programme\Microsoft Office\Vorlagen\Tabellenvorlagen wird beim Öffnen einer bestimmten Mappe (die Du nur zum Ausführen des Makros benötigst) gelesen, der Zähler um 1 erhöht !! Pfad und Position anpassen !! und zurückgeschrieben. Anschließend wird eine neue Mappe unter Verwendung der geänderten Vorlage erstellt. Vor Dir liegt nun eine neue Mappe mit erhöhter Rechnungsnummer.
Du mußt nur die Datei Rechnungx.xlt einmal richtig erstellen. In einer eigenen leeren Mappe legst Du nur den Makro wie oben beschrieben an un speicherst z.B. unter dem Namen Rechnungsaufruf.xls ab.

Viel Glück
piano



Antwort 11 von danny-live

Hallo Coros und Piano,

nochmals vielen Dank. Klappt jetzt alles bestens. Nur eine kleine Sache: piano, ich habe dein Makro genommen und den Pfad und die Position geändert. Jetzt ändert sich nur die Rechnungsnummer, allerdings nicht um eins, sondern immer um 2, ich habe schon in dem Makro nachgesehen, es ist bis auf den Pfad und die Position exakt gleich. Kann es sein, dass das Makro, welches ich in der Vorlage ja auch schon drin habe dies auslöst?

Nochmals ihr 2 seid echt KLASSE!!!!

Danke
Danny

Antwort 12 von danny-live

Hallo nochmal,

habe das Problem jetzt selbst gelöst, und einfach mal das Makro in der Vorlage gelöscht und jetzt funktioniert es. Aber (wie sollte es anders sein) ein 2. kleines Problem hat sich aufgetan:
ich habe eine drop-down-liste erstellt mit mehren dezimalzahlen. in der vorlage ist das auch richtig gespeichert. Die Aufruf-Mappe allerdings ersetzt in der Liste alle Kommas durch ein ";" dadurch wird z.B. aus einer 0,5 in der Vorlage eine 0 und eine 5. Habt ihr Vorschläge was ich machen kann. Auch ein erneutes ändern nützt nichts...

Danny

Antwort 13 von piano

Hallo
Vor die Zahlen ein einfaches Hochkomma stellen hilft auch nicht ?! Allerdings wird dann die Zahl als Text dargestellt.
piano

Antwort 14 von VB4Ever

Hallo piano,

habe auch deine Lösung verwendet nur mit einer kleinen Modifiaktion, dass die Excelmappe mit dem Makro die Vorlage über eine Click_Methode eines Command-Buttons durchführt. Die Mappe zählt bei einem Click hoch, öffnet eine Rechnung, die der Vorlage entspricht, aber gibt den Wert nicht an die Rechnung weiter. Warum nicht?

Würd mich für eure Hilfe freuen.

Gruß VB4Ever

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: