2007 Makro - Tabellenblätter anhand einer Tabelle & befüllen dieser Blätter

Dieses Thema im Forum "Excel und VBA" wurde erstellt von CaptainScott, 24 Februar 2011.

  1. CaptainScott

    CaptainScott
    Expand Collapse
    New Member

    Registriert seit:
    24 Februar 2011
    Beiträge:
    60
    Zustimmungen:
    0
    Hi,

    ich beziehe mich sozusagen auf den Thread "Tabellenblätter nach Liste erstellen", welcher mir bisher schon sehr gut helfen konnte (ich musste mich deshalb auch direkt hier anmelden ;)). Wie ich also Tabellenblätter anhand einer Liste per Makro erstellen kann, weiß ich jetzt.

    Nun möchte ich das in verschärfter Form anwenden, sprich, die Tabellenblätter sollen anhand einer Liste erstellt UND GLEICHZEITIG mit bestimmten Werten gefüllt werden. Bei den Datensätzen (eine Zeile entspricht einem Datensatz) handelt sich zum Beispiel um PLZ, Ort, Ortsteil, Straße, Hausnummer (+Zusätze) und bestimmte Kennzahlen jede Hausnummer betreffend. Natürlich hab ich hier ein paar Beispiele:

    Code:
    A		B		C		D		E	F		G	H	I
    PLZ		Ortsname	Ortsteil	Straße		HNR	HNR-Zusatz	BKG	BLA	PIPAPO
    35423		Lich		Arnsburg	Bergermühle	9	A		1	bla1	pipapo1
    35423		Lich		Bettenhausen	Am Alten Hof	1			1	bla3	pipapo2
    35423		Lich		Bettenhausen	Am Alten Hof	2	C		2		
    35423		Lich		Bettenhausen	Am Alten Hof	3			0		
    35423		Lich		Bettenhausen	Am Alten Hof	4	A		0		
    35423		Lich		Bettenhausen	Am Alten Hof	5	A		0		
    35423		Lich		Bettenhausen	Am Alten Hof	6			0		
    35423		Lich		Bettenhausen	Auf der Bleiche	1	E		2		
    35423		Lich		Bettenhausen	Auf der Bleiche	2			1		
    35423		Lich		Bettenhausen	Auf der Bleiche	2	A		1		
    
    
    .

    Diese Datensätze sollen nun in die zu erstellenden Tabellenblätter einfließen. Und zwar soll für jede Straße EIN Tabellenblatt erzeugt werden, welches dann mit den restlichen Daten gefüllt wird. Das bedeutet somit für die Straße "Am Alten Hof" das dafür ein Tabellenblatt erzeugt wird, in dem die Straße, PLZ, Ort und Ortsteil übernommen werden, aber die Hausnummern (mit ihren enstrechenden Zusätzen und Kennzahlen) untereinander stehen.
    Und das war und ist für mich bisher die Schwierigkeit.

    Ich habe das natürlich in einer Datei besser veranschaulicht. In dieser findet ihr Testdaten, das Formular und ein gefülltes Formular, quasi das Ergebnisbeispiel wie es aussehen soll (oder zum besseren Verstehen meines Vorhabens). Das Layout des Formulars muss natürlich nicht berücksichtigt werden, dass kann ich dann später immer noch per Formatpinsel oder separatem Makro erledigen. Es geht erstmal nur darum, dass die Daten in den Zellen landen wie im Beispiel zu sehen ist.

    Wenn ihr ein paar Hinweise oder Erklärung im Code hinterlasst, wäre ich euch noch dankbarer. Denn ich möchte ja auch was lernen und die Sache verstehen, die da abläuft.

    Liebe Grüße und vielen Dank im Voraus

    Maik
     

    Anhänge:

  2. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.430
    Zustimmungen:
    13
    Hi Maik,

    könnte so aussehen.
     

    Anhänge:

  3. CaptainScott

    CaptainScott
    Expand Collapse
    New Member

    Registriert seit:
    24 Februar 2011
    Beiträge:
    60
    Zustimmungen:
    0
    Moin,

    wow... vielen lieben Dank. Ich hab mir die Datei und das Makro gerade mal angeschaut um zu testen, bzw. die Schritte nachzuvollziehen und bin Restlos begeistert. Das Ganze sieht aber viel komplizierter aus, als ich angenommen habe. Also nochmals Danke für deine Mühe.

    Ein paar Anpassungen musste ich schon vornehmen (noch mehr Spalten vorhanden), funktionert aber immernoch prima. Den Button zum Starten musste ich leider rausnehmen, der wurde bei mir einfach nicht angezeigt. Hab's nun als "normales" Makro in meiner personl.xls drin :)

    Nur mit der Formatierung der Tabellenblätter muss ich nochmal schauen. Ich habe zwar ein Makro das das Tabellenblatt beschriftet und formatiert, aber leider klappt das immer nur bei einem Blatt. Wie bekomme ich das denn hin, dass es über sämtliche Blätter läuft?

    Gruß Maik
     
  4. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.430
    Zustimmungen:
    13
    Hi Maik,

    da du leider nicht schreibst, was du wie formatieren willst, nur mal theoretisch.

    die Fromatierung muß immer nach dem Erstellen des neuen Sheets und vor dem Eintragen der Daten erfolgen.

    Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = dic

    Also nach dieser Zeile, dann wird die Formatierung auch auf alle neuen Sheets angewendet.

    Wenn das Sheet schon besteht, wird die Formatierung natürlich nicht geändert.
     
  5. CaptainScott

    CaptainScott
    Expand Collapse
    New Member

    Registriert seit:
    24 Februar 2011
    Beiträge:
    60
    Zustimmungen:
    0
    Hi,

    die Daten die du mir bereits per Makro in die neuen Tabellenblätter eingespeist hast, sollen nun noch eine gescheite Formatierung bekommen, damits ganz gut aussieht und man es gescheit drucken kann.

    Somit wären die Tabellenblätter mit Werten ja alle schon vorhanden, nur eben die Formatierung muss noch vorgenommen werden (ist ne ganz normale Formatierungsgeschichte: Hier ein paar Rahmen, da mal was Fett usw. Ganz einfach per "Makro aufzeichnen" aufgezeichnet).

    Heißt das, dass ich meinen Formatierungscode "einfach" nach der Zeile in deinem Makro für die Tabellenblatterstellung einfügen kann und das es dann funktionert?

    Gruß Maik
     
  6. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.430
    Zustimmungen:
    13
    Hi Maik,

    Füge deinen Code für die formatierung dort ein, lösche die Blätter noch einmal und führe das komplette Makro einfach nochmal aus.
     
  7. CaptainScott

    CaptainScott
    Expand Collapse
    New Member

    Registriert seit:
    24 Februar 2011
    Beiträge:
    60
    Zustimmungen:
    0
    Moin,

    schon mal vielen Dank. Am Montag wird's getestet. Ich melde mich dann :)
     
  8. CaptainScott

    CaptainScott
    Expand Collapse
    New Member

    Registriert seit:
    24 Februar 2011
    Beiträge:
    60
    Zustimmungen:
    0
    Ich werde verrückt, es funktioniert perfekt.

    Das neue Tabellenblatt wird angelegt, die Formatierung vorgenommen und dann alles mit den Werten befüllt. Das ist super. Kleines Manko ist bisher nur, dass wenn ich mehr Hausnummern habe als auf eine Seite gehen, die Formatierung immer nur bis zur ersten Seite vorgenommen wird. Aber das kostet nur wenige Minuten den Formatpinsel auf die Einträge der 2. Seite vorzunehmen.

    ich danke dir vielmals, du hast mir wirklich viel gezeigt und ich bin in meinem Wissen wieder einen Schritt nach vorne :) Vielen Dank.
     
  9. CaptainScott

    CaptainScott
    Expand Collapse
    New Member

    Registriert seit:
    24 Februar 2011
    Beiträge:
    60
    Zustimmungen:
    0
    Hallo allerseits,

    ich grabe das Thema mal wieder aus, da ich bei einer Abwandlung des schon weiter oben beschriebenen Makros nicht weiter komme.

    Der Vollständigkeithalber schreibe ich kurz worum es diesmal geht:
    Ich habe wieder ein Tabellenblatt mit Daten (Tabelle1) in dem in den ersten 4 Spalten Werte drin stehen (PLZ, Ort, Ortsteil, Straße - auch doppelt). Aus der 3. Spalte (Ortsteil) werden daraufhin Tabellenblätter generiert, die nach dem Ortsteil benannt werden (aber keine Duplikate).

    Bis hier hin funktioniert das auch...:13: Aber jetzt...

    ... sollen diese neuen Tabellenblätter mit Werten der restlichen 3 Spalten gefüllt werden. Sprich, ich möchte die PLZ in Zelle B4 haben, den Ort in E4, den Ortsteil in G4 und alle Straßen zum gleichen Ortsteil fortlaufend nach unten (OHNE Duplikate) ab Zelle A8.

    Wie gesagt, habe ich versucht, dass obige Makro umzubasteln. Die Tabellenblätter werden auch angelegt und richtig benannt - Das sollte so passen.
    Auch werden Werte für die PLZ und den Ortsteil in den neuen Tabellenblättern eingetragen, jedoch kann dabei schon etwas nicht stimmen. Aber da hört mein Makrowissen auch schon auf.

    Ich habe eine Datei angehängt mit Beispieldaten im ersten Tabellenblatt und einer "Zielvorlage" (wie und wo diese Daten verarbeitet werden sollen) im zweiten Tabellenblatt. Das Makro befindet sich in "diese Arbeitsmappe".

    Liebe Grüße
    Maik
     

    Anhänge:

    #9 CaptainScott, 10 Mai 2011
    Zuletzt bearbeitet: 10 Mai 2011
Die Seite wird geladen...

Diese Seite empfehlen