Excel:Aus Liste mit Namen & n Einträgen n Tabellenblätter per Makro erstellen

Indiana1972

Newbie
Registriert
Okt. 2014
Beiträge
1
Hallo, ich habe ein Problem, dessen Lösung mir Stunden an Arbeit abnehmen würde:

1. Ich möchte in einer bestehenden Arbeitsmappe aus einer Excel-Tabelle (eines Tabellenblattes "urliste") die n (ca.30) Einträge enthält (in Spalte "Name" und Spalte "Vorname") per Makro n neue Tabellenblätter in der selben Arbeitsmappe erzeugen.

2. Diese neu erzeugten Tabellenblätter sollen dann jeweils als Blattname "Vorname.Nachname" (gemeint sind natürlich die verknüpften Inhalte) bekommen. (also jeweils den Vornamen und Nachnamen aus der jeweiligen Zeile)

3. In diese neu erzeugten Tabellenblätter (vorname1.nachname1 ... vorname n.Nachname n, s.o.) soll automatisch eine aktive Tabelle aus einem (schon vorhandenen) Tabellenblatt Namens "Leer" kopiert werden, die jeweils auf die entsprechende Zeile der ursprünglichen Tabelle verweist. D.h. mit den Daten der zugehörigen Zeile verknüpft wird.

@julimos: ...besser?

Hat jemand eine Idee zu einem der Punkte?

Schon mal vorab vielen Dank für die Hilfe,

Oliver
 
Zuletzt bearbeitet:
Vielleicht erstmal ordentlich formulieren was du willst?
Scheint auf jeden Fall möglich zu sein, aber du wirfst ein bisschen viel durcheinander.
Es gibt in Excel die Arbeitsmappe, eine Arbeitsmappe enthält u.a. Tabellenblätter.
 
Hast Du ein Glück!!!
Ich hab genau dafür ein Makro in meiner Sammlung:

Code:
Sub Anlegen()
Dim Wiederholungen As Long
Dim wksL As Worksheet 
Set wksL = Worksheets("urliste")
Application.ScreenUpdating = False
Worksheets("urliste").Activate

For Wiederholungen = 1 To Range("A65536").End(xlUp).Row

If Cells(Wiederholungen, 1) <> "" Then
    Worksheets("Leer").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = wksL.Cells(Wiederholungen, 1).Text
    
Else
Exit Sub
End If
Worksheets("urliste").Activate
Next

Set wksL = Nothing

Application.ScreenUpdating = True
End Sub


Das Marko ist schon etwas älter und passt nur zu 99,99% zu deiner Anforderung, aber das solltest du hinbekommen.

Aufgabe des Makros:
Erstelle aus gefüllten Zellen des Arbeitsblattes "urliste" in Spalte A neue Tabellenblätter und kopiere jeweils alles aus dem Blatt "Leer".

Du brauchst also 3 Sachen:
1.) Tabellenblatt "urliste" (oder du änderst das Makro ab)
2.) eine Spalte A in der Du den Namen und Vornamen aus deiner Liste verkettest
3.) Tabellenblatt "Leer" als Kopiermutter

Die restlichen Anpassungen überlasse ich Dir. Vor allem was die Vorgaben aus deinem Blatt "Leer" angehen.
 
Hallo,

ich beschäftige mich exakt mit derselben Problematik.
Das Makro ist klasse, allerdings bekomme ich die Daten aus der Urliste nicht in die dafür vorgesehenen Zellen der Vorlage/Kopiermutter.

Über Unterstützung wäre ich sehr dankbar!
 
@ Arie Luke

Kannst Du das etwas konkretisieren?

In der A-Spalte der "urliste" stehen ja die Blattnamen die angelegt werden sollen.
Und im Blatt "leer" ist die Formatvorlage für alle Namen aus der dem Blatt "urliste".

Was soll denn aus der "urliste" in die Formatvorlage übernommen werden?
 
Hallo,

beschäftige mich notwendigerweise seit diesem Wochenende mit der Möglichkeit der Makros.
Muss eine Tabelle für das Geschäft erstellen und bin bisher mit dem o.g. Code gut weitergekommen, Tabellenblätter werden wie gewünscht mit den Namen in Spalte A erstellt.
Jetzt kommt jedoch der nächste Schritt, wo ich seit heute morgen dran sitze und verzweifle.
Mal sehen, ob ich es verständlich erklären kann.

Folgender Sachverhalt:

Tabellenblatt "urliste" enthält ca. 110 Namen von Mitarbeitern in der Spalte A.(Bußgeldtabelle)
Bußgelder werden je nach Verstoß an Fahrer oder Unternehmen oder auch an beide verteilt.
Aufgrund Tabellenblatt "leer" (Vorlage) wurde für jeden Fahrer ein eigenes Tabellenblatt erzeugt.

Im Tabellenblatt "urliste" soll nun auf einen Blick ersehen werden, wie hoch die Summen der Bußgelder eines jeden Mitarbeiters sind,
welche in den einzelnen Tabellenblättern das Jahr über summiert werden.

urliste:
Fahrer 1 (Spalte A4) hat in Spalte E4 "Summe Fahrer 1 Januar", Spalte F4 "Summe Unternehmen Januar" wie oben beschrieben,
bis Spalte AB, also 24 Spalten für Fahrer und Unternehmen, Januar bis Dezember.

Fahrer 2 (Spalte A5) hat in Spalte E5 "Summe Fahrer 2 Januar", Spalte F5 "Summe Unternehmen Januar" etc.

Tabellenblätter:
Tabellenblatt Fahrer 1: In Spalte G4 "Summe Fahrer 1 Januar", in Spalte H4 "Summe Unternehmen Januar",
Spalte I4 "Summe Fahrer 1 Februar", Spalte J4 "Summe Unternehmen Februar" etc.

Tabellenblatt Fahrer 2: In Spalte G4 "Summe Fahrer 2 Januar", in Spalte H4 "Summe Unternehmen Januar",
Spalte I4 "Summe Fahrer 2 Februar", Spalte J4 "Summe Unternehmen Februar" etc.

Problem:
Zeige in "urliste" Spalte E4 Ergebnis von Tabellenblatt "Fahrer 1" aus Spalte G4.
Zeige in F4 Ergebnis von Unternehmen von Fahrer 1 aus Spalte H4

Zeige in "urliste" Spalte E5 Ergebnis von Tabellenblatt "Fahrer 2" aus Spalte G4
Zeige in F5 Ergebnis von Unternehmen von Fahrer 2 aus Spalte H4

usw...


Entschuldigung, aber weniger Worte fand ich nicht.
Danke schon mal im Voraus.
Rückmeldung erfolgt selbstverständlich.

Gruß Emilio
 
Hey Emilio,

Mal davon abgesehen, dass du für dein Problem einen eigenen Thread hättest starten sollen...bist du denn wahnsinnig in diesem Forum eine Frage zu stellen die auf eine Excel-Datenbank hinausläuft... :-)

Wie kommt ihr denn mit 100+ Tabellen in einem Workbook klar? Habt ihr da eine Listbox eingebunden, oder muss man sich da zum richtigen Kollegen durchklicken?

Wie auch immer, stehen die Summen immer in G4 bzw. H4? Wenn ja, könnte man dem Makro sagen, dass es für jedes neue Tabellenblatt einfach zwei Formeln in die "Urliste" schreibt.

Best...
 
Hallo Janush,

erst mal danke, dass du dich so schnell meinem Thema zugewendet hast.
Wie du wohl unschwer bemerkt hast, fehlt mir das notwendige Hintergrundwissen, um diese Aufgabe in ihrer ganzen Größe zu erkennen.
Deshalb habe ich auch keinen neuen Thread gestartet, da ich dachte (aber das mit dem Denken ist ja immer so ne Sache..), es wäre eine Weiterführung des vorherigen Codes.

Zu deiner Frage: Summen sind in den jeweiligen Tabellenblättern immer in den gleichen Spalten,G4 bis AD4, da ja von Vorlage "leer" kopiert.

Folgende Summen Fahrer 1/Unternehmen:
Tabellenblatt: urliste:
G4 ------------------> E4
H4 ------------------>F4
I4 ------------------>G4
J4 ------------------>H4
K4 ------------------>I4
L4 ------------------> J4
..bis zur letzten Spalte..
AD4 ------------------>AB4
-----------------------------------------------------------

Folgende Summen Fahrer 2/Unternehmen:
Tabellenblatt: urliste:
G4 ------------------>E5
H4 ------------------>F5
I4 ------------------>G5
J4 ------------------> H5
K4 ------------------> I5
L4 ------------------> J5
..bis zur letzten Spalte..
AD4------------------>AB5

...aktuell 108 Namen und somit Spalten und genauso viele Tabellenblätter.
Jedoch werde ich noch mehr Spalten anlegen, damit gleich Vorlagen für neue Mitarbeiter vorhanden sind.
Noch zum Verständnis:
In den jeweiligen Tabellenblättern muss jeder Verstoß einzeln explizit aufgeführt sein, mit Anzahl der Verstöße und jeweilige Summe, Januar bis Dezember. Getrennt für Fahrer und Unternehmen.
Ich ging davon aus, dass es möglich wäre, den Code folgendermaßen fort zu führen:

Da ja jedes Tabellenblatt den Namen eines Fahrers hat, welche sich in Spalte A der urliste befindet, müsste das "Programm" die Summen der einzelnen Zellen der Tabellenblätter, die ja immer gleich sind (s.o.) in die jeweilige Spalte der urliste eintragen, dessen Namen mit dem Tabellenblatt übereinstimmt.. :)

Wenn neuer Tread notwendig, darfst du gerne Verschieben, muss ich nur finden können :rolleyes:

Lieben Dank.

Emilio
 
Zuletzt bearbeitet: (Leerzeichen wurden in der gesendeten Nachricht nicht gespeichert, somit Information möglicherweise unverständlich)
Ach, ist mit doch voellig egal wo du deine Themen reinschreibst :p Ich dachte nur, da der Urspruengiche Thread schon so alt ist...

...und ich bin ja auch kein Moderator oder sowas in der Art.

Also zu deinem Problem:

Ich muss zugeben, dass ich mir noch nicht ganz vorstellen kann, wie deine Tabellen ausehen. Warum hat da jede 108 Spalten? Oder ist das nur die Urliste? Warum schreibst du nicht einfach eine Formel ganz vorne rein. Z.B. in E4

=INDIREKT(A4 & "!G4")

Wobei in A4 der Name des Fahrers steht. Wenn du die Formel runterziehst, funktioniert sie dynamisch fuer alle Fahrer.

Ich hoffe ich habe das richtig erklaert, bin nicht so der Formelfreund :freak:
 
Hallo Janush,

kam nun endlich mal wieder dazu, mich mit dem Problem auseinander zu setzten.
Die Formel passt (fast) perfekt.
Alles gut, wenn nur ein Name in A4 steht. In diesem Fall der Nachnahme.
Beim z.B. Herrn Bauer brauch ich aber auch den Vornamen, weil es da natürlich mehrere gibt.
Und bei zwei Wörtern, die nicht miteinander verbunden sind, gibt er mir #BEZUG!
Lösung parat oder muss ich immer einen Alexander_Bauer machen?
Aber sonst klasse. Runterziehen klappt ebenfalls bestens!

Gruß Emilio
 
Mmhhh, Namen mit Leerzeichen müssen wahrscheinlich in Hochkommas gesetzt werden. Kann grade ned testen, aber versuch mal "'" & A4 & "'!G4"
 
Hallo Janush,

hat bestens geklappt :daumen:
Danke dafür...

..jetzt hätte ich noch zwei Kleinigkeiten, da denke ich, hab ich alles, um die Tabelle im Geschäft einzusetzen.
Zum Verständnis:
Da sich deine Formel auf den Namen der jeweiligen Tabelle bezieht, habe ich sie entsprechend verändert. =INDIREKT("'" & AD2 & "'!G5")
Der Name der jeweiligen Tabelle ist nach "AD" gewandert, so können die Namen der Mitarbeiter nach Bedarf verändert werden.
Die jeweiligen Tabellen heißen nun Fahrer 1,Fahrer 2 etc.

Finaler Bedarf:
1. Da die Namen der Tabellen nicht mehr die Namen der Mitarbeiter haben, soll zur Orientierung auf jeden Tabellenblatt in "B1"
der Name des Mitarbeiters zu lesen sein.
Name in "A2" Tabelle "Übersicht" soll angezeigt werden in "B1" Tabellenblatt "Fahrer 1".
Wenn sich der Name verändert, soll natürlich auf dem jeweiligen Tabellenblatt in "B1" der Name ebenfalls verändert werden.

2. In Tabelle "Übersicht" Spalte "D"ein Link auf das jeweilige Tabellenblatt.
Was nicht klappt: dynamisches herunterziehen für alle Mitarbeiter.

Besten Dank.
Ergänzung ()

Nachtrag:
Natürlich erstelle ich die Mappe dann neu, damit die Änderung sich auf alle Tabellenblätter auswirkt.
 
Zurück
Oben