Clever-Excel-Forum

Normale Version: VBA Neue Liste: mehrere Spalten in 1-Spalte mergen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag

Mit meinen VBA-Grundkenntnissen stosse ich an Grenzen an!
Ich habe eine Tabelle mit Projekten und Kundennamen. Jedes Projekt ergibt 2 Erträge: ErtragA beim Auftragserteilung und ErtragB beim Abschluss.

Nun möchte ich alle Erträge auflisten, die in einer bestimmte Zeitperiode gelaufen sind.

Die Grundtabelle ist im Sheet "Daten" gespeichert:
Name der Tabelle: tblDaten
ID    Name     Vorname     Projektbezeichnung     Kommentar     AuftragsdatumA     ErtragA     Seriennummer     AbschlussdatumB     ErtragB




Die Zieltabelle soll im sheet "Filter" beim Drucken eines cmdButton erstellt werden.
In der Soll-Tabelle habe ich 2 Kriterien:
vonDatum
bisDatum

Name der Tabelle: tblFilter
ID    Name     Vorname     Projektbezeichnung     Datum     Ertrag


In der Zieltabelle sind alle Projekte mit Erträge (egal ob ErtragA oder ErtragB) sein, die zur Zeitperiode passen. Das heisst, ein Projekt kann (muss aber nicht) 2 mal in der Tabelle sein.

Hier habe ich eine Beispieltabelle erstellt, wie ich es mir vorstelle.


Dateien bitte im Forum hochladen: https://www.clever-excel-forum.de/Thread...ng-stellen



Wenn Ihr da einen Lösungsvorschlag hättet, wäre ich super froh.

Danke und Gruss


Samuel
Hier die Tabelle im Anhang mit dem VBA-Code.

Die Daten verschwinden jedes mal, wenn ich eine in der neuen Zeile schreiben will!!!
Muss man die Tabelle nach jedem Eintrag speichern?

Gruss

Samuel
Hallöchen,

wenn ich eine in der neuen Zeile schreiben will, verschwindet nix. Wobei die Frage ist, ob meine eine die Gleiche ist wie Deine eine...
Es sieht so aus, dass ich mit Array arbeiten muss! Somit muss ich nicht von einer Tabelle in der Andere zwischen jeder Suche switchen.

Habt Ihr da gute Tutorials?

Gruss

Samuel
Hallo,

probiere es doch mal ohne vba. Mein Vorschlag:
1. Hilfsspalte erstellen, die alle Zeilen die in deinen gewählten Zeitraum fallen mit X oder was auch immer markiert.
2. 
Code:
WENN($E$6="";"";WENNFEHLER(INDEX(shtDaten'!A:A;KKLEINSTE(WENN('shtDaten'!$AE:$AE="X";ZEILE(X$1:X$99));ZEILE(X1)));""))
entsprechend anpassen. In meinem Beispiel gehe ich davon aus, dass im Feld E6 auf dem FilterReiter ein X steht, wenn dies der Fall ist wird in Hilfsspalte AE auf dem Datenblatt nach allen Einträgen gesucht die ein X aufweisen und diese untereinander aufgelistet. Es handelt sich um eine Matrixformel also bitte nach der Eingabe mit Strg+Shift+Enter abschließen.
Hoffe das hilft.

EDIT:

Grundsätzlich sollte es auch klappen eine Intelligente Tabelle zu erstellen, mittels Hilfsspalte zu markieren was benötigt wird und dann über einen Filter die Ergebnisse ausspucken zu lassen. Das hätte den Vorteil, dass in Ermangelung der Matrixformel weniger Rechenleistung benötigt wird.
So in etwa?