Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Arbeitsblätter automatisch erstellen mit Zellbezug
#1
Hallo liebe Community,

das ist mein erster Thread und steige schon mit einem mächtigen Projekt ein. ich bin Anfänger im VBA-Programmieren. Ich bin dabei ein Exceldokument zu erstellen, welches auf dem 

ersten Registerblatt tägliche Buchungen erfasst. Das sieht z.B. so aus. 

Spalte A              Spalte B           Spalte C      Spalte D

Buchungstag        Rechndatum      Betrag          DSTNR

01.06.2018           15.05.2018       0,89 €          5101
02.06.2018           18.05.2018       3,15 €          5105 
05.06.2018           27.05.2018       2,27 €          5101



zweites Registerblatt enthält einen Vordruck [      ] , in dessen Mitte der Buchungstag, das Rechn.datum und der Betrag als Tabelle vorliegen


Programmierproblem:

VBA soll auf Registerblatt 1 die Spalte D überprüfen. Doppelte Werte ignorieren. Nicht-doppelte Werte sollen als neues Arbeitsblatt (mit dem jeweiligen Wert als Blattnamen) unter Verwendung des Vordrucks (Registerblatt 2) erstellt werden. Die Daten aus den jeweiligen Zeilen sollen in das entsprechende Dokument übernommen werden (abgesteckter Bereich, teilweise nicht untereinander sondern auch nebeneinander um Platz voll auszunutzen). 

Anders ausgedrückt: 

Ich schreibe kontinuierlich auf Registerblatt 1 die täglichen Buchungen runter. Rechts sollen Schaltflächen stehen. Die Sortierung soll über die DSTNR erfolgen auf separaten Registerblättern benannt nach der jeweiligen DSTNR. Doppelte DSTNR dürfen nicht weitere Registerblätter erzeugen sondern sollen in den jeweiligen Vordruck kopiert werden zwecks Betrags-Saldierung. 
Bei jedem Klick auf die Schaltflächen soll erneut geprüft werden und aktualisiert werden. Ebenfalls wollte ich eine Druckauswahl für jede DSTNR oder auch einen Gesamtdruck aller DSTNR Arbeitsblätter erstellen.


Bisher habe ich mit dem Makrorekorder versucht das hinzubekommen, bin aber schnell an meine Grenzen gekommen. Bis zur Sortierung hat es geklappt, danach mit den Arbeitsblättern komme ich nicht weiter.

Habt ihr Vorschläge???
Antworten Top
#2
Hallo,

Zitat:ersten Registerblatt tägliche Buchungen erfasst. Das sieht z.B. so aus. 

Spalte A              Spalte B           Spalte C      Spalte D

Buchungstag        Rechndatum      Betrag          DSTNR

Zitat:zweites Registerblatt enthält einen Vordruck [      ] , in dessen Mitte der Buchungstag, das Rechn.datum und der Betrag als Tabelle vorliegen

welchen Grund soll es denn haben, auf den beiden Blättern die Spalten zu vertauschen?
Den sittlichen Nährwert kann ich nicht erkennen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
Hallo Peter,

(15.06.2018, 21:59)Käpt\n Blaubär schrieb: welchen Grund soll es denn haben, auf den beiden Blättern die Spalten zu vertauschen?
Den sittlichen Nährwert kann ich nicht erkennen.

welchen lösungsfindenden Vorteil hätte denn das Wissen des Grundes?

Gruß Uwe
Antworten Top
#4
Hallo Uwe,

... vielleicht Neugierde?

Ich sage es mal so, ich bin ja schließlich auch bereit, etwas von mir herzugeben.
Aber bevor ich mich darauf einlasse möchte ich gerne wissen, wie mein Gegenüber tickt.
Zu oft habe ich schon mitten in einer Lösungsfindung festgestellt, daß bringt nichts, wir
werden nicht zusammenkommen.
Das will und werde ich zu vermeiden wissen, zumal mein nächster OP-Termin demnächst
ansteht und ich dann mit dem Thema "durchsein" will. Oft genug habe ich in der jüngeren
Vergangenheit mit einer Lösung angefangen und konnte nicht bis zum Ende mitmachen

Also mich wurmt so etwas schon enorm und das Thema kann ja auch Einiges hergeben.
Das weiß ich, weil ich mich mit dieser Thematik schon beschäftigt habe, als Excel noch
Multiplan hieß und es Weit und Breit noch gar kein Kalkulationsprogramm namens Excel
gab.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#5
Einmal Beispieldatei bitte...  :21:
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#6
Moin auch von mir!
Ich möchte dem TE keinesfalls die Lust am "programmieren" nehmen.
Allerdings frage ich mich, wie ein absoluter VBA-Anfänger dieses "Projekt" revisionssicher im Alltagsbetrieb pflegen will!
Schließlich kann man ja nicht "mal eben" ein Forum konsultieren, wenn es Freitags Mittags plötzlich crasht!

Zum Thema:
Was soll die Aufteilung der DSTNR auf verschiedene Blätter bewirken, außer die Datei unnötig mit Redundanzen aufzublähen?
Mit Deiner Tabelle1 hast Du fast alles, was Du brauchst!
Hier kannst Du nach DSTNR filtern und ersparst Dir die Aufteilung in verschiedene Blätter.
Dort kann man die gefilterte Liste mittels Teilergebnis() auswerten.
Alternative: Pivot-Table.

Ich  nehme an, dass Deine Tabelle2 eine Art Druckvorlage sein soll.
Prima!
Hier kannst Du dann die DSTNR per Dropdown auswählen und den Ausdruck per SVerweis() oder Index(Vergleich()) füllen.

Dies alles ohne eine einzige Zeile Code.

Wenn Du meine Vorschläge, die plain Excel betreffen, beherrscht(!), kannst Du immer noch Feinarbeiten per VBA vornehmen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Hallo Ralf,

Zitat:Allerdings frage ich mich, wie ein absoluter VBA-Anfänger dieses "Projekt" revisionssicher im Alltagsbetrieb pflegen will!

genau das war ich damals auch. Mir ist von einem Bekannten gesagt worden: "Deine Probleme lassen sich nur mit Makros
lösen. Gehe mal in die einschlägigen Foren, die helfen Dir". Dann habe ich in verschiedenen Foren ein paar Wochen lang
mitgelesen und schwupps hatte ich ein phantastisches. neues Superhobby.
Drum warne ich ja auch ständig vor dem Süchtigkeitsfaktor von Excel, wobei es ganz sicher auch verdammt sexy ist  :05: 
Ich meine natürlich eher VBA als Formeln. Bei Formeln halte ich mich eher zurück. Das können andere viel lockerer als ich.
Aber auch als VBAler kommt man ja nicht wirklich um den Einsatz von Formeln herum.

Es gibt bei mir ein Buchhaltungsprogamm, welches ich vom
Multiplan auf dem C64
Multiplan auf dem PC
Excel 3.x bis jetzt Excel 2016
nutze und immer  noch weiterentwickle.
Das Ding wirft mir zum Beispiel jährlich meine gesamte Steuererklärung aus, die ich dann, weil das Finanzamt das inzwischen
so will, über Elster an das Finanzamt weiterleite.

Tja, es ist schon eine Weile her, aber ich weiß immer noch, wo ich herkomme. Und darum liegt es mir auch absolut fern, mich
mit irgendwelchen studierten IT'lern messen zu wollen. Meiner Grenzen bin ich mir durchaus bewußt.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#8
Danke für die Antworten und das Interesse. Ich erkläre mein Vorhaben mal mit anderen Worten: 

Also auf Blatt 1 werden alle DSTNR halt chronologisch untereinander geschrieben, d.h. alles ist erstmal in einem Topf geschmissen. Auf Blatt 2 ist dann eine selbst erstellte Vorlage. Anhand dieser Vorlage soll eine Sortierung aller DSTNR erfolgen auf einzelne Registerblätter. Auf diesen neuen Registerblätter werden die einzelnen Beträge aufsummiert. D.h. gleiche DSTNR erhalten kein neues Arbeitsblatt sondern werden halt summiert.

Hintergrund ist, dass für jede DSTNR eine Abteilung einen Vordruck bekommt über die Gesamtsumme die angefallen ist . Und es soll dieser Vordruck genommen werden. Ich hatte halt an eine Lösung mit wenigen Klicks gedacht, wo automatisch diese Daten in separate Blätter eingefügt werden. Dann über einen Druckbutton einzelne oder alle ausdrucken kann.

Das alte Dokument was ich benutze beinhaltet bereits fest erstellte Arbeitsblätter je DSTNR, so um die 30 Stück. Diese werden halt manuell eingetragen und ausgedruckt. Ich wollte die Sache automatisieren und nur ein Blatt mit Eintragungen machen und Excel sollte den Rest in Vorlagen kopieren. Soweit die Idee.

Ja über die Sortier und Filter funktion habe ich auch gegrübelt, aber wie kriege ich die Werte automatisch in einzelne Arbeitsblätter rein ohne für jedes DSTNR wieder manuell zu kopieren? Da muss ich doch auch mit Code arbeiten oder?  

Ich habe mal eine Beispieldatei mit OpenOffice als xls.Datei erstellt. 

Ich bin offen für alle Vorschläge bzw. Denkanstöße und auch wie man es ganz anders machen kann.


Angehängte Dateien
.xls   Musterdokument.xls (Größe: 11 KB / Downloads: 7)
Antworten Top
#9
(16.06.2018, 11:05)Thieromer schrieb: Ich habe mal eine Beispieldatei mit OpenOffice als xls.Datei erstellt. 
Also verwendest du überhaupt nicht Excel 2013?
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#10
Die Datei ist auf der Arbeit und dort habe ich Excel 2013. Daheim habe ich nur Openoffice, aber zur Veranschaulichung sollte die Beispieldatei reichen. Ich suche einen Lösungsweg für Excel.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste