Auswerten eines Tabellenblattes und sortierte Ausgabe in ein neues Tabellenblatt
#1
Hallo liebe Forengemeinde,

ich habe ein Problem an dem ich mir leider mit meinem Wissen die Zähne ausbeiße.

Ich habe eine Tabelle, bei der im ersten Tabellenblatt Daten abgefragt werden, die mittels Makro ins zweite Tabellenblatt übernommen werden. Es handelt sich um folgende Daten:

Abgefragt werden:

Name
Vorname
P.Nummer
Einheit
Datum
E.Ort
E.Nummer (Individuelle Eingabe)
E.Art (Auswahl B.Einsatz; H.Einsatz; B.Einsatz CSA; H.Einsatz CSA, Übung; Übung CSA; Strecke)
Dauer (in Minuten)
Bemerkungen (variable Eingabe)
A.Test (Auswahl ja, nein-->vorausgewählt)
Theorie (Auswahl ja, nein-->vorausgewählt)

Die Daten werden in Tabelle 2 folgendermaßen übernommen
A: Name; B: Vorname; C: P.Nummer; D: Einheit; E: Nummer; F: Datum; G: Ort; H: E. Art; I: Dauer in Minuten; J: Bemerkungen; K: A-Test; L: Theorie

In Tabelle zwei sind dann irgendwann mehrere Einträge/ Zeilen unter dem selben Namen. Auf Tabelle 3 möchte ich für jeden Namen nur noch eine Ausgabezeile. Diese Zeile soll mir, je nach Inhalt von Tabelle2/Spalte H: E.Art nur das aktuellste Datum ausgeben.

Ingesamt wäre der Inhalt von Tabelle 3 dann:

A: Name; B: Vorname; C: P.Nummer; D: Einheit;

E: Einsatz/Übung (wenn Tabelle 2/H: = B.Einsatz oder H.Einsatz oder Übung --> Ausgabe aktuellstes Datum)
F: Einsatz/Übung CSA (wenn Tabelle 2/H: = B.Einsatz CSA; H.Einsatz CSA, Übung CSA --> Ausgabe aktuellstes Datum)
G: Strecke (wenn Tabelle2/ K: =ja --> Ausgabe aktuellstes Datum)
H: Theorie (wenn Tabelle 2/ L: =ja --> Ausgabe aktuellstes Datum)

Im Grunde soll mir Tabelle 3 aus dem Datenpool von Tabelle 2 für jeden Teilnehmer in einer Zeile eine Übersicht über die Datumsaktuellsten Einträge anzeigen.

Ich hoffe was in meinem Kopf rumschwirrt ist dadurch halbwegs verständlich. Vielleicht hat jemand eine Idee ob und wenn ja, wie man das ganze lösen könnte.

Ich danke im Voraus.

Grüße Christian
Top
#2
Hallo Christian

Irgendwie geht es in deinem Beitrag nicht um Sortieren.
Grüsse
Detlef

Bitte keine PN!
Seit Nikolaus 2012 mit Excel 2010. Seit Ostern 2015 mit Office 365
Top
#3
Guten Morgen Detlef,

Ich weiß leider selbst nicht so genau wie ich dem ganzen einen sinnvollen Titel geben soll. Ich habs mal ansatzweise versucht. :)
Danke für deinen Hinweis.

Grüße
Christian
Top
#4
Hallo,

ließt sich wie Transponieren mit VBA an. Vielleicht könntest Du uns eine Beispieltabelle einsetzen?


Zitat:Sub Transponiere()
    Sheets("Tabelle1").Range("A1:A5").Copy 'Bereich müsste angepasst werden
    Sheets("Tabelle2").Range("A1").PasteSpecial Transpose:=True
End Sub

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#5
Hallo Marcus,

Ich habe das ganze mal schnell als kleine Tabelle hinzugefügt. Ich habe es nur schnell zusammengeschrieben. Ich hoffe das reicht aus.

Grüße
Christian


Angehängte Dateien
.xlsm   Testmappe_forum.xlsm (Größe: 120,45 KB / Downloads: 18)
Top
#6
Hallo Cirda,

warum benutzt du nicht die Filterfunktion?
Top
#7
Guten Morgen,

der Sinn dahinter ist, das man Ende des Jahres, oder zu einem beliebigen Zeitpunkt gebündelt den Status eines jeden in der Liste vorkommenden sieht. Bei ingesamt 150 Leuten und vorraussichtlich über 600 - 700 Einträgen der einzelnen Leute wäre ein Filtern sehr mühsam. Eine Makro zu erstellen um einen einzelnen auszufiltern, wäre mit meinem Wissen möglich.

Ich hätte aber am liebsten eine Komplettausgabe der Liste.

Viele Grüße
Christian
Top
#8
Hallöchen,

von Vorteil wäre sicher, wenn Deine Spaltenüberschriften auf Ziel und Quelle identisch wären. Man kann das zwar ggf. zuordnen, aber bei Einsatz/Übung und Einsatz/Übung CSA hätte ich so meine Schwierigkeiten - oder splittest Du hier die Spalte Einsatz aus dem Container in zwei? Wenn ja, warum?

Man könnte überlegen, ob man dann eine Formellösung für den Autofilter oder den Spezialfilter anpasst. Aber da Du sowieso VBA verwendest, könnte man das eventuell auch darüber lösen.

Unabhängig davon mal ein Tipp:
So was
Code:
Sheets("Abfrage").Select
    Range("C33").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Container").Select
    Range("L2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

kann man so zusammenfassen
Code:
Sheets("Abfrage").Range("C33").Copy
    Sheets("Container").Range("L2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Hallo Christian,

sieh mal, ob dir das: Listenseparator weiter hilft.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Jockel
Top
#10
Hallo,

ich würde wie folgt vorgehen:

Die Tabelle Container erst nach Namen und dann nach Datum absteigend sortieren.
Das aber wenn die Namen wirklich Eindeutig sind, sonst würde eine ID aus Name und Vorname in einer weiteren Spalte bilden und nach der sortieren.

Nach dieser Sortierung stehen die jüngsten Daten für jede Person an erste Stelle des auftauchens.
In einer weiteren Spalte mit zum Beispiel mit folgender Formel:
=WENN(ZÄHLENWENN($A$1:A1;A2)=1;"";1)
das erste Auftren kenntlich machen.

Jetzt nach dieser Spalte filtern und das Ergebnis in Deine Ausgabe Tabelle kopieren.
Da kannst Du dann überschüssige Spalten löschen.

Theoretisch kann man alle Aktionen per Makro aufzeichnen.

Wenn Du aber weitergehende Hilfe benötigst, dann solltest Du Deine Beispieldatei mit ein paar Daten mehr füllen. 10-20 Datenzeilen sollten reichen.
Und auch das Ergebnis in Deiner Ausgabe Tabelle dazu zeigen.

Dann kann man Dir sehr gezielt helfen.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Cirda
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste