Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

neues Blatt einfügen, wenn Bedingung erfüllt

neues Blatt einfügen, wenn Bedingung erfüllt
28.11.2006 20:37:46
Martin
Hallo,
ich suche nach einer Möglichkeit in VBA, neue Tabellenblätter in die Arbeitsmappe einzufügen, wenn einer oder mehrere Werte in der Spalte A vorhanden sind.
Beipiel:
Spalte A enthält Werte wie Apfel, Birne, Pflaume, blau, grün, rot usw.
Spalten B - variabel enthalten jeweils ebenfalls Daten.
Wenn in Spalte A nun der Wert Apfel oder Birne gefunden wird, soll ein neues Blatt mit Namen "Obst" hinter dem letzten vorhandenen Blatt eingefügt werden.
Ein 2. Blatt mit Namen "Farben" soll eingefügt werden, wenn der Wert blau oder grün in Spalte A gefunden wird. Die jeweiligen Werte in Spalte A kommen in der Regel mehrfach vor, es soll aber nur je 1 Blatt eingefügt werden. In diese Blätter sollen anschließend die kompletten Zeilen mit Wert "Apfel" oder "Birne" bzw. "blau" oder "grün" unter Beibehaltung aller Formate kopiert werden.
Könnte mir bitte jemand dabei helfen ?
Danke, Martin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neues Blatt einfügen, wenn Bedingung erfüllt
28.11.2006 21:16:28
ramses
Hallo
Da EXCEL ein Tabellenkalukationsprogramm ist und keine Hellseherischen Funktionen, auch nicht mit VBA :-), bietet. ist das was du willst nicht zu lösen.
Ich gehe davon aus, dass du nicht blaue Äpfel oder grüne Pflaumen auswerten willst
Woher soll EXCEL wissen, wann es bei welchen Einträgen welche Tabelle erstellen soll ?
Gruss Rainer
AW: neues Blatt einfügen, wenn Bedingung erfüllt
28.11.2006 21:48:58
Martin
Hallo Rainer,
vielleicht habe mich etwas unklar ausgedrückt, bin als Fragesteller in Punkto VBA noch nicht erfahren. Ich probiers mal nochmal:
Die Spalte A dient im meinem Makro, mit dem ich eine umfangreiche Excelltabelle verarbeite als Sortierspalte. In Spalte A stehen eben solche Sortierbegriffe wie Apfel, Birne, Pflaume, blau, rot, grün, usw. Über diese Sortierbegriffe möchte ich anschließend alle Zeilen in das neu anzulegende Tabellenblatt "Obst" kopieren, die in Spalte A den Sortierbegriff Apfel oder Birne oder Pflaume enthalten. Gleiches soll mit den Sortierbegriffen aus dem Bereich Farbe passieren. Alle Zeilen mit Sortierbegriff blau oder rot oder grün sollen in das neu anzulegende Tabellenblatt "Farben" kopiert werden.
Bislang hatte ich die Tabellenblätter über den nachfolgen Code eingefügt und anschließend die Zeilen über ein If Bedingung in das jeweilge Blatt kopiert.
' neue Blätter in Arbeitsmappe jeweils rechts einfügen
'
ActiveSheet.Name = "Gesamtliste"
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = "Obst"
ActiveWorkbook.Sheets("Obst").Tab.ColorIndex = 6
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = "Farben"
ActiveWorkbook.Sheets("Farben").Tab.ColorIndex = 3
' Identifizieren und Kopieren der Produkte entsprechend der Produktcluster in verschiedene Blätter
Do Until IsEmpty(Cells(aRow, 1))
If Cells(aRow, 1).Value = "Apfel" Or _
Cells(aRow, 1).Value = "Birne" Or _
Cells(aRow, 1).Value = "Pflaume" Then
aRowT = aRowT + 1
Worksheets("Gesamtliste").Rows(aRow).Copy Destination:=Worksheets("Obst").Rows
(aRowT)
End If
aRow = aRow + 1
Loop
Problem bei dieser Methode ist allerdings, wenn kein entsprechender Begriff aus dem Bereich Obst gefunden wurde, ein leeres Tabellenblatt vorhanden ist. Dieses möchte ich gerne vermeiden, indem nur die Tabellenblätter eingefügt werden, für die auch die definierten Suchbegriffe in Spalte A gefunden wurden.
Ich hoffe nun ist meine Anforderung etwa besser beschrieben und es gibt eine Lösung dafür!
Martin
Anzeige
AW: neues Blatt einfügen, wenn Bedingung erfüllt
28.11.2006 21:57:55
Martin
Hallo Rainer,
vielleicht habe mich etwas unklar ausgedrückt, bin als Fragesteller in Punkto VBA noch nicht erfahren. Ich probiers mal nochmal:
Die Spalte A dient im meinem Makro, mit dem ich eine umfangreiche Excelltabelle verarbeite als Sortierspalte. In Spalte A stehen eben solche Sortierbegriffe wie Apfel, Birne, Pflaume, blau, rot, grün, usw. Über diese Sortierbegriffe möchte ich anschließend alle Zeilen in das neu anzulegende Tabellenblatt "Obst" kopieren, die in Spalte A den Sortierbegriff Apfel oder Birne oder Pflaume enthalten. Gleiches soll mit den Sortierbegriffen aus dem Bereich Farbe passieren. Alle Zeilen mit Sortierbegriff blau oder rot oder grün sollen in das neu anzulegende Tabellenblatt "Farben" kopiert werden.
Bislang hatte ich die Tabellenblätter über den nachfolgen Code eingefügt und anschließend die Zeilen über ein If Bedingung in das jeweilge Blatt kopiert.
' neue Blätter in Arbeitsmappe jeweils rechts einfügen
'
ActiveSheet.Name = "Gesamtliste"
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = "Obst"
ActiveWorkbook.Sheets("Obst").Tab.ColorIndex = 6
Worksheets.Add after:=Sheets(Worksheets.Count)
ActiveSheet.Name = "Farben"
ActiveWorkbook.Sheets("Farben").Tab.ColorIndex = 3
' Identifizieren und Kopieren der Produkte entsprechend der Produktcluster in verschiedene Blätter
Do Until IsEmpty(Cells(aRow, 1))
If Cells(aRow, 1).Value = "Apfel" Or _
Cells(aRow, 1).Value = "Birne" Or _
Cells(aRow, 1).Value = "Pflaume" Then
aRowT = aRowT + 1
Worksheets("Gesamtliste").Rows(aRow).Copy Destination:=Worksheets("Obst").Rows
(aRowT)
End If
aRow = aRow + 1
Loop
Problem bei dieser Methode ist allerdings, wenn kein entsprechender Begriff aus dem Bereich Obst gefunden wurde, ein leeres Tabellenblatt vorhanden ist. Dieses möchte ich gerne vermeiden, indem nur die Tabellenblätter eingefügt werden, für die auch die definierten Suchbegriffe in Spalte A gefunden wurden.
Ich hoffe nun ist meine Anforderung etwa besser beschrieben und es gibt eine Lösung dafür!
Martin
Anzeige
Noch offen...
28.11.2006 22:08:38
ramses
Hallo
Sorry,... aber das ist mir nicht klar genug.
Daher stelle ich die Frage auf offen.
Gruss Rainer
AW: neues Blatt einfügen, wenn Bedingung erfüllt
28.11.2006 22:11:32
Matthias
Hallo Martin,
ich würde die Zuordnungen (Apfel->Obst, rot->Farbe usw. in einem (evtl. versteckten) Tabellenblatt anlegen, das ist flexibler als es fest im Code zu verankern, Nicht dass ich glaube, dass rot irgendwann einmal Obst sein wird, aber es könnten ja neue Begriffe dazukommen.
Und wenn das Blatt leer ist, blende es doch einfach aus. Lass einen Zähler mitlaufen und schreibe am Schluss:
Sheets("Obst").Visible = (Zähler > 0)
Gruß Matthias
AW: neues Blatt einfügen, wenn Bedingung erfüllt
30.11.2006 11:26:33
Martin
Hallo Matthias,
den Tipp die leeren Tabellenblätter auszublenden bzw. zu löschen habe ich erstmal umgesetzt. So geht es natürlich auch. Aber neue Tabellenblätter nur dann einzufügen, wenn in der Suchspalte A entsprechende Suchbegriffe gefunden wurden finde ich einfach eleganter als eine definierte Anzahl Blätter einzufügen und anschließend die leeren wieder zu löschen.
Ideal wäre es wenn der bisher benutzte Code:
Do Until IsEmpty(Cells(aRow, 1))
If Cells(aRow, 1).Value = "Apfel" Or _
Cells(aRow, 1).Value = "Birne" Or _
Cells(aRow, 1).Value = "Pflaume" Then
aRowT = aRowT + 1
Worksheets("Gesamtliste").Rows(aRow).Copy Destination:=Worksheets("Obst").Rows
(aRowT)
End If
aRow = aRow + 1
Loop
für das identifizieren und anschließende Kopieren der Zeilen zusätzlich noch folgendes könnte:
- prüfen ob das Worksheet ("Obst") bereits existiert
- wenn ja die gewünschten Zeilen kopieren
- wenn nein einmalig ein Worksheet ("Obst") anlegen und dann Zeilen kopieren
- danach weiter Abfrage bzgl. der Sortierbegriffe "blau, grün usw."
Also nahezu Laie bzgl. VBA weiß ich aber nicht, ob sowas überhaupt geht.
Vielen Dank für die Hilfe!
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige