PDA

Vollständige Version anzeigen : Excel Makro aus einer Datenquelle mehrere Datenquellen erstellen und Daten kopieren


Stylemaus
22.08.2017, 06:26
Hallo zusammen,

ich bin neu hier und kenne mich absolut nicht mit Excel Makros aus. Die, die ich mir bisher erstellt habe, habe ich entweder mit dem Aufzeichnungs-Generator gemacht oder mir aus verschiedenen Seiten zusammen gegoogelt :)

Ich hoffe daher, mir kann hier jemand helfen??? :)

Ich habe eine Datenquelle: In der Zeile 1 stehen jeweils Überschriften, ab Zeile 2 beginnen die Daten. In A2 sind z. B. verschiedene (sich aber wiederholende) Zahlen. In den weiteren Spalten sind weitere Daten (sowohl Zahlen als auch Text) enthalten.

Ich möchte nun, dass alle in Spalte A mit dem gleichen Wert hinterlegte Datenzeilen komplett in ein neues Tabellenblatt kopiert werden. Da es sich um sehr viele Datenzeilen handelt, würden dabei auch ganz viele Tabellenblätter heraus kommen.

Die Tabellenblätter sollen dann jeweils den Namen haben, der in Spalte A hinterlegt ist.

Also zum Beispiel:

Spalte A Spalte B Spalte C
Zeile 1 Produkt Konto Wert
Zeile 2 1 123 500 €
Zeile 3 1 456 350 €
Zeile 4 2 789 250 €

Jetzt müsste also ein Tabellenblatt mit den Namen "1" generiert werden und Zeile 2 und 3 hinein kopiert werden. Und ein weiteres Tabellenblatt mit dem Namen "2" und der Zeile 4.

Mir ist zwar klar, dass man aus einer Datenquelle nicht mehrere machen sollte (ich finds selber unsinnig, aber der Chef will es leider so). :(

Kann mir jemand helfen? :sos:

Case_Germany
22.08.2017, 07:55
Hallo, :)

bezogen auf diesem Code:

Werte verteilen... (http://vbanet.blogspot.de/2010/08/werte-verteilen.html)

Hier eingebaut in Deiner Datei: ;)

Servus
Case

Stylemaus
22.08.2017, 10:14
Vielen Dank für die schnelle Antwort :knuddel:
Waaaaaahnsinn!!! Das ist genau das, was ich haben wollte :boah: :boah: :boah: Ich bin total begeistert! Und ich habe mir so die Finger wund gesucht :boah: (Du hast mir damit ungelogen 2 Wochen arbeit erspart).

Wenn ich dieses Makro jetzt mit den Echtdaten meiner Datenquelle nutze, dann werden alle Daten (wie gewünscht) kopiert, allerdings "nur" bis Spalte N. Tatsächlich geht die Datenquelle allerdings bis Spalte Z.

Und darf ich so vermessen sein und fragen, ob du noch eine Überschrift für die einzelnen Datenblätter einbauen könntest? Es soll nämlich immer der Wert, der auch das einzelne Tabellenblatt hat, als Überschrift in die Kopfzeile eingefügt werden.

Und weil auf die einzelnen Tabellenblätter noch eine Gesamtaufsummierung über den einzelnen Datensätzen erfolgen soll, könntest du das so machen, dass die Daten dann quasi erst ab Zeile 14 in die jeweils neuen Tabellenblätter reinkopiert werden? :holy: :angel:

Case_Germany
22.08.2017, 11:27
Hallo, :)

könntest Du bitte eine Beispieldatei erstellen und hier hochladen, in der mit anonymisierten Daten das Ergebnistabellenblatt mit Kopfzeile und Summe dargestellt ist?

Genauso wie es aussehen soll. ;)

Servus
Case

Stylemaus
22.08.2017, 12:37
Na Logo :)

Hier ist eine Musterdatei (ich weiß, sie sieht schrecklich aus) aber es soll halt so sein :upps:

Case_Germany
22.08.2017, 14:21
Hallo, :)

bin jetzt auf Achse - schaue es mir morgen an. ;)

Servus
Case

Stylemaus
22.08.2017, 14:45
Vielen Dank dafür :-)

Luschi
22.08.2017, 15:18
Hallo Stylemaus,

der klitzekleine Fehler liegt in dieser Zeile:
wksQuellSheet.Range("A1:N" & lngLastRow).AdvancedFilter _

ändere den Spalten-Buchstaben N in Z, also
wksQuellSheet.Range("A1:Z" & lngLastRow).AdvancedFilter _

Gruß von Luschi
aus klein-Paris

PS: Vielleicht solltest Du mal versuchen, ein bischen vom Vba-Code zu verstehen, bevor Du ihn auf die Praxisdateien losläßt!

Stylemaus
23.08.2017, 05:52
Hallo Luschi,

stimmt, nachdem ich die Zeile geändert habe, funktioniert es - vielen Dank :top:

Wie schon gesagt, ich kenne mich mit Makros wirklich nicht aus. Ich würde es natürlich gerne, aber ich habe leider auch keinen, der mir das mal eben beibringen kann... :( Und das mal eben do-it-yourself lernen ist nicht drin.
Für meine "sonstigen Zwecke" wo ich Makros brauche, hatte ich bisher auch immer eine zusammengeschnippelte Lösung gefunden, aber dies ist dann doch zu komplex. :sos: