Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1372to1376
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
Inhaltsverzeichnis

Tabellen Daten zusammenführen

Tabellen Daten zusammenführen
01.08.2014 10:55:33
Herbert
Hallo zusammen,
dachte das Thema wurde schon öfters behandelt leider finde ich aber keine Lösung die mir genau bei diesem Problem helfen kann:
Ich habe 10 Tabellen mit Namen. Diese möchte ich vergleichen lassen und in einer 11ten Tabelle untereinander ausgeben lassen ohne Duplikate.
hört sich nicht schwer an, finde aber im Moment einfach keine passende Lösung.
Grüße, Herbert

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konsolidieren ...
01.08.2014 11:20:15
Herbert
Danke für den Link. Darauf bin ich auch schon gestoßen. Hätte vielleicht erwähnen sollen, dass ich das am liebsten mit einem VBA machen würde da ich des öfteren eine Liste dazu bekomme.
Der Aufbau ist so:
1. Zusammenfassung
2. Liste1
3. Liste2
...
Nun stehen jeweils in den Listen Namen(mit Leerzeichen) untereinaner also Hans Mueller, Guenther Schuh usw.
Dies ist in jeder Liste so. In Zusammenfassung sollte dann jeder Name der je in einer Liste vorkam genau ein mal drin stehen.
Viele Grüße, Herbert

Anzeige
VBA-Lösung gesucht ... Thread offen owT
01.08.2014 11:22:54
neopa
Gruß Werner
.. , - ...

Weil ich es grad in der Hand hab
01.08.2014 11:57:29
Jack_d
Ich hab einst eine vergleichbare Lösung erstellt
die Sammelt aus allen Blättern die DAten und fügt diese Dann in einem Summary zusammen.
Du müsstest in deinem Fall die Kriterien (Ws-Auswahl ; Bereiche) anpassen
und weitergehend deinen Duplikatefilter einrichten. Dazu gibt es aber bereits hunderte Lösungen im Netz.
Sub Raumbuch_erstellen()
Dim Datensammler As Variant
Application.ScreenUpdating = False
Set WB = ActiveWorkbook
blaetter = BlaetterF - 1
DatenLauf = 0
If blaetter 

Anzeige
AW: Weil ich es grad in der Hand hab
01.08.2014 12:47:45
Herbert
Wow, super. Vielen Dank. Werde es mir jetzt gleich mal anschauen.

AW: Weil ich es grad in der Hand hab
01.08.2014 14:13:30
Herbert
Wow, super. Vielen Dank. Werde es mir jetzt gleich mal anschauen.

AW: Weil ich es grad in der Hand hab
01.08.2014 14:16:09
Herbert
OK, leider bin ich dafür noch zu ungeübt um den Code richtig interpretieren zu können. Hab mich jetzt mal daran gemacht und selber was zusammengeschrieben. Leider klappt das nicht so ganz:
'Insert  names from all sheets
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 5 To WS_Count
lastRowCalc = ActiveWorkbook.Sheets("calc").UsedRange.Rows.Count
lastRow = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
ActiveWorkbook.Worksheets(I).Range("A1:A" & lastRow).Copy
Sheets("calc").Range("A" & lastRowCalc + 1).PasteSpecial xlPasteValues
Next I
'Delete duplicate entries
Sheets("calc").Select
Columns("A:A").Select
ActiveSheet.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo
Leider bleibt die Liste auf dem Blatt calc leer, anstatt alle Namen untereinander anzuzeigen :(

Anzeige
AW: Weil ich es grad in der Hand hab
02.08.2014 13:19:09
Jack_D
Moin Moin
Also ich hab aufm Handy nur kurz drüber geschaut, aber ein Fehler liegt auf jeden fall im referenzieren.
In der Schleife musst du für die letzte Zeile auch die Tabellenblätter ansprechen .
Sonst kommt immer die letzte Zeile vom 1. aktiven was im Zweifel vermutlich calc ist .. Somit "0" ist und der Kopier Ränge leer bleibt.
Grüße

AW: Weil ich es grad in der Hand hab
04.08.2014 08:12:32
Herbert
Oh ja danke. Leider funktioniert das Skript immer noch nicht. Er springt zwar zur letzten Zeile in calc aber fügt keine Werte ein. Könnte vielleicht noch einmal jemand drüber schauen?

AW: Weil ich es grad in der Hand hab
04.08.2014 08:28:31
Robert
Hallo Jack_D
Herbert hats schon angesprochen, hier nochmal in Codeform:
lastrow = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
Ersetzen durch:
lastrow = ActiveWorkbook.Worksheets(I).UsedRange.Rows.Count
oder noch besser durch:
lastrow = ActiveWorkbook.Worksheets(I).UsedRange.Specialcells(xlCellTypeLastCell).Row
Viele Grüße
Robert

Anzeige
AW: Weil ich es grad in der Hand hab
04.08.2014 08:36:37
Herbert
Hallo Robert,
das habe ich bereits gemacht. Leider werden die Werte imme rnoch nicht eingefügt. Irgendetwas schein bei der Paste Funktion nicht zu stimmen?

AW: Weil ich es grad in der Hand hab
04.08.2014 08:48:20
Robert
Hallo Herbert (sorry für die Verwechslung vorhin),
Setze mal einen Haltepunkt bei Beginn der For...Next Schleife und lasse den Code dann Schritt für Schritt arbeiten (F8 drücken für Einzelschritt).
So kommt man normalerweise schnell dahinter, was denn da nicht passt.
Ansonsten:
Ich arbeite ungern mit den "Klarnamen" von Zellen, wie sie in den normalen Formeln verwendet werden und benutze eigentlich nurnoch .Cells(Zeilennummer,Spaltennummer) zum Angeben von Zelladressen,Ranges etc. Finde ich irgendwie übersichtlicher, da man Nummernvariablen direkt übergeben kann und nicht mit ("A1:A" &lastrow) arbeiten muss.
Viele Grüße
Robert

Anzeige
AW: Weil ich es grad in der Hand hab
04.08.2014 13:12:00
Herbert
Hallo Robert, vielen Dank für den Hinweis. Habe den Fehler gefunden. Aus irgend einem Grund war die Variable zur Bestimmung der letzten Zeile falsch.
Werde wohl in Zukunft auch mit Cells arbeiten, ist in der Programmierung übersichtlicher. Etwas anderes jetzt aber leider noch: Ich bekomme immer einen 1004 Error wenn ich folgende Zeilen einfügen möchte (vorletzte Zeile):
lastRowCalc = ActiveWorkbook.Sheets("calc").Cells(Rows.Count, 1).End(xlUp).Row
For I = 3 To lastRowCalc
Sheets("Data1").Cells(I, 1) = "=IF(calc!A" & I - 2 & """;calc!A" & I - 2 & ";"")"
Next I
Viele Grüße,
Herbert

Anzeige
AW: Weil ich es grad in der Hand hab
04.08.2014 14:25:09
Robert
Hallo Herbert,
die alte Qual, Formeln via VBA zu schreiben.
Du musst alle Anführungszeichen, die in der Formel vorkommen, verdoppeln!
Da auf Fehlersuche zu gehen ist alles andere als meine Lieblingbeschäftigung :)
Keiner ist dir böse, wenn du einen neuen Thread aufmachst mit der Frage, wie denn diese IF Funktion in VBA auszusehen hat, damit sie funktioniert.
Viele Grüße
Robert

AW: Weil ich es grad in der Hand hab
04.08.2014 14:38:49
Herbert
Hallo Robert,
vielen Dank. Nächstes Mal mache ich auch direkt einen neuen Thread auf. Konnte es lösen, indem ich (wie du schon geschrieben hast) die Anführungszeichen verdoppelt haben UND alle Semikolons durch Kommas ersetzt habe.
Viele Grüße,
Herbert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige