Brauche hilfe in VBA Excel. Wie kann man aus einer erstellten Rechnung daten in einer neuen Tabelle speichern?
Hallo, Ich habe in Excel ein Rechnungsformular geschrieben. Nun soll die erstellte Rechnung (Tabellenblatt 1) (wo z.B. Adresse, Name, Rechnungsnummer, Preis, Artikel usw.) in einem neuen Tabellenblatt (Tabellenblatt 2) gespeichert werden. (also die relevanten Daten wie oben geschrieben) Außerdem will ich auch Rechnungen anhand der Rechnungsnummer suchen lassen und sie erscheinen lassen. Ich habe einen Button erstellt wo sich eine Userform öffnet und dort soll man eine vorhandene Rechnungsnummer suchen können. Excel soll dann die Daten aus Tabellenblatt 2 nehmen und sie wieder in einem neuen Tabellenblatt (Tabellenblatt 3) einfügen, das die gleiche Formatierung hat wie Tabellenblatt 1. Also Tabellenblatt 1 dient dazu neue Rechnungen zu erstellen, Tabellenblatt 2 soll die eingegebenen Daten aus Tabellenblatt 1 übernehmen und Tabellenblatt 3 soll dazu dienen die Werte aus Tabellenblatt 2 richtig als wieder Rechnung auszugeben. Hoffentlich ist das verständlich und ihr könnt mir helfen. MFG
1 Antwort
Du musst in Blatt 2 -benenne es ReLi wie RechnungsListe- eine Tabelle mit zB folgenden Spalten anlegen:
A:A Rechnungsnummer
B:B Name
C:C Vorname
D:D Datum
E:X die weiteren Daten, die relevant sind.und deshalb aus A übernommen werden sollen
Im Blatt ReLi übernimmst Du die Daten mit =(Adresse des Feldinhalts $absolut) für alle relevanten Felder (Benennst Du im Re-Blatt die Felder mit Namen, macht xl das automatisch absolut) und zwar für die gesamte datenzeile soweit relevant (ich nehme mal an, Z bleibt frei, s. später).
Diese Formeln kopierst Du erst mal eins nach unten: die Werte beider Zeilen müssen ALLE gleich sein (sonst ist ein Fehler drin) (sollte Zeile 2 und 3 sein, Zeile 1 enthält die Überschriften)
Nun verwendest Du eine bedingte Formatierung: "Formel ist":
- =($A1&$B1&$C1&.....$x1)=($A2&$B2&.....4x1)
- Bezieht sich auf $A2:$x2
- für diese Bedingung die Schrift gelb formatieren
- Dieses Format auf Zeile 3 übertragen (Formatpinsel)
- Da die Rechnungsnummern definitiv unterschiedlich sein müssen, sollte als Formel auch genügen;
- =$A1=$A2, aber da werden erst teilweise ausgestellte Rechnungen auch schon schwarz geschrieben, bei der obigen Langformel dagegen erst, wenn Alle genannten Felder ausgefüllt sind!
Zeile 3 auf Vorrat nach unten kopieren: alle Zeilen ab Zeile 3 müssen gelbe Schrift haben (also kaum sichtbar sein)
- Zeile 2 (die erste mit den Formeln)muss in eingestellter Schriftfarbe erscheinen (zB schwarz oder blau etc)
fixierst Du nun Zeile 2 als Werte und füllst das Formblatt neu, erscheint die erste noch nicht fixiete Zeile, die ja jetzt die neuen Übernahmedaten enthält, wieder in eingestellter schriftfarbe, die darunter bleiben gelb.
Also nochmal: Die erste jeweils schwarz geschriebene Zeile wird kopiert und als Werte wieder eingefügt, am besten,bevor du die Daten zum Drucken schickst (oder gleich danach, aber nicht vergessen!).
Eine Erinnerungsformel mit Warnhinweis liefere ich Dir später nach, das dauert mir jetzt zu lang. (dafür zB Spalte Z, weil die mit der Zeit arbeitet)
Zum Wiedererstellen in Blatt 3 brauchst Du keinen eigenen Button, das geht mit Formeln (oder ist das eine Übung für VBA?)
Die Formel
=index(ReLi!B:B:Vergleich(Rechnungsnummer in Blatt3;ReLi!$A:$A;0))
gibt Dir den Namen wieder, index(ReLi!C:C;Vergleich(....)) den Vornamen usw.
PS: ich würde übrigens noch eine Kundennummer vorsehen zur eindeutigen Identifizierung: es gibt viele Hans Meier oder Josef Huber!
Das Ganze war eine "Trockenübung", melde Dich, wenn was nicht funktioniert oder Du weitere Fragen dazu hast.
Hallo,
Erstmal vielen dank für diese sehr ausführliche antwort. Aber ja du hast recht es sollte schon in VBA geschrieben sein. Bekommst du das in VBA auch hin?
MFG