10.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Forum,

ich stehe vor folgendem Problem:
Ich habe eine gegebene Tabelle mit Informationen. Jetzt sollen im ersten Schritt zwei Spalten nach bestimmten Informationen durchsucht werden und wenn deren Inhalt dem Suchkriterium entspricht in ein neues WorkSheet kopiert werden.

Der zweite Schritt entspricht dem ersten, nur dass sich jetzt die Suchkriterien geändert haben. Wieder sollen die Ergebnisse in einem neuen Sheet aussgegeben werden.

Das ganze soll geschehen, wenn man in der Ursprungstabelle auf einen Button klickt.

Kann mir jemand dabei helfen?

Vielen Dank und viele Grüße

Mike

28 Antworten

0 Punkte
Beantwortet von
http://www.fileuploadx.de/84891

ist eine sehr spatanische Version der eigentlichen Datei. Muss aber aus Datenschutzgründen reichen.

Ziel soll sein, dass dieses Quellsheed bestehen bleibt, und dann weitere Sheets angelegt werden.
In denen sollen die möglichen Kombinationen aa, ab, ba, bc ausgegeben werden, alles andere wird "Sonstiges"

Gruß Mike
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mike,

das es sich um eine Dummydatei handelt ist kein Problem. Ich finde aber in der Datei kein Makro. Wie soll ich nun testen, ob bei mir ebenfalls der Fehler400 aufläuft.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

sorry... da hab ich gestern die falsche Datei erwischt.
Ist aber auch nicht mehr so wild, denn die Dummy-Datei funktioniert jetzt. Keine Ahnung warum.

Aber es ergeben sich immer mehr Problemchen...
Ich habe einfach nicht genug Wissen über VB um damit richtig umzugehen.

http://www.fileuploadx.de/8744

hier ist die Datei mit dem Macro, die ich dir gestern schon geben wollte.
Er arbeitet schon, aber nicht so, wie ich möchte - das liegt wohl an mir.
Ziel soll, wie schon gesagt sein, dass er alle Spalten die das Wort "alle" (im Bereich "C9:E1000") sucht, in das neue Sheet kopiert und das auch wieder unter die blaue Überschriftenzeile setzt.

Das ist ja erst mal nur der Dummy.
Vision ist, dass ich vielleicht über drei Drop-Down Menüs oder so, alle Kriterien, die in den Spalten C bis E vorkommen auswählen kann, mir so die Kombination zusammenstelle, die ich brauche und diese Filterung dann in einem neuen Sheet - im Idealfall dann mit dem Namen der Filterkriterien - ausgegeben werden!

so long...

Mike
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mike,

lade Dir unter http://www.excelbeispiele.de/Beispiele_Supportnet/test%20-%20Copy%20(2).xls Deine Datei mit den Änderungen herunter. Wenn Du auf den Button klickst, kannst Du einen Suchbegriff eingeben. Alle gefundenen Datensätze werden einschließlich der Überschriften neuen Tabellenblatt aufgeführt.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver...

vielen Dank für deine Hilfe! Die Positionierung hat mich gerade verzweifeln lassen und mit dieser Zeile
objNewSheet.Cells(objNewSheet.Range("C65536").End(xlUp).Offset(1, 0).Row, 1)

hätte ich wohl nie gearbeitet (Unwissenheit).
Aber jetzt kann ich es mir zusammenreimen.

Die Funktionsweise steht jetzt - dank dir!
Kannst du mir noch erklären, wie ich doppelte Einträge löschen kann oder von Anfang an verhindern kann, dass diese erzeugt werden?
Problem ist ja, dass er die Spalten "C" bis "E" schon durchsuchen muss, wenn aber in "C" und "E" in einer Zeile der selbe Inhalt steht, darf dafür im Ergebnis nur eine Zeile ausgegeben werden.

Gruß Mike
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mike,

lade Dir wieder unter http://www.excelbeispiele.de/Beispiele_Supportnet/test%20-%20Copy%20(2).xls Deine Beispieldatei herunter. Darin habe ich integriert, dass Datensätze, die bereits kopiert wurden, nicht nocheinmal kopiert werden, wenn in dem Bereich der Suchbegriff erneut vorkommt.

Ich hoffe, Du meintest das so?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
super!
Das ist genau das, was ich brauchte.
Auf die Idee das ganze mit einer "Hilfs Tabelle" zu machen, bin ich natürlich nicht gekommen. Ganz große Klasse.

In der Zwischenzeit habe ich schon weiter gebastelt um meiner Vision mit den Dropdown Boxen näher zu kommen, aber auch da habe ich noch viele Steine im Weg liegen.


Sub ComboInsert()
Dim combo As Object
Set combo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=Range("a1").Left, Top:=Range("a1").Top, Width:=120, Height:=25.5)
combo.ListFillRange = "Sheet1!C9:C21"
End Sub


Das klappt schon mal... jetzt habe ich da aber auch wieder doppelte Einträge aus der Spalte C.

Da kann ich das

If objAktSheet.Cells(rngSuchbereich.Row, 256) <> "x" Then
objAktSheet.Rows.Range("C7:H8").Copy _
objNewSheet.Cells(7, 3) '(Zeile, Spalte)
objAktSheet.Rows(rngSuchbereich.Row).Copy _
objNewSheet.Cells(objNewSheet.Range("C65536").End(xlUp).Offset(1, 0).Row, 1)

sicher nicht mehr so ohne weiteres verwenden, richtig?
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mike,

nein, damit kannst Du so wie der Code im Moment ist, nichts anfangen, da dann der Code anders aussehen müsste.
Warum arbeitest Du eigentlich nicht mit dem Autofilter. Damit kannst Du doch geziehlt Begriffe pro Spalte filtern lassen und erhälst abschließend nur die Zeilen angezeigt, die der Bedingung entsprechen. Diese Zeilen kopierst Du dann einfach.

Ich habe Dir in Deine Deine Beispieldatei mal ein Beispiel eingebaut, mit dem Du die gefilterten Werte in das neue Blatt kopieren kannst. Lade Dir die Datei wieder unter dem Dir bekannten Link herunter.
MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

Autofilter aus dem Grunde nicht, weil die "gefilterten" Daten (über die Auswahl des Dropdowns) dann sofort in einem neuen Sheet gespeichert werden sollen.
Mit der Autofilter-Version habe ich versucht meinen Chef zu befriedigen, aber der will es halt nicht :-( - Wäre ihm zu umständlich... darum drehe ich mich da mit diesen blöden Drop-Down Menüs etwas im Kreis.

So wie du den Autofilter und Kopierfunktion jetzt hast, so bräuchte ich das für den Dropdown...
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Mike,

sorry, aber das verstehe ich nicht. Wo ist der Unterschied, ob ich nun in 3 Kombinationsfeldern eine Auswahl treffe und die Daten danach gefiltert und kopiert werden oder man das über den Autofilter macht und die Daten danach gefiltert und kopiert werden?

Für solch eine Lösung wie Du sie anstrebst muss man mit Schleifen arbeiten, die dann Spalte für Spalte abarbeiten.

Was ich auch nicht so ganz verstehe, warum Du nicht gleich bei der Aufgabenstellung erwähnt hast, was Du nun jetzt erst nach AW13 erwähnst, Also die Auswahl von 3 Kriterien über ComboBoxen. Wobei nicht die ComboBoxen, sondern eher die 3 Kriterein eine Rolle spielen. Dann hätte man den Code gleich in eine andere Richtung entwickeln können.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...