Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

Makro: Daten zusammenführen

Makro: Daten zusammenführen
05.07.2022 16:33:29
Christoph
Hallo,
ich versuche mich gerade in Markos, da ich gerne folgendes erstellen möchte:
Eine Excel-Mappe bestehend aus 5 Excel-Worksheets. Worksheets 1 bis 4 sind Auflistungen von Personen (Vorname, Name, Alter, Geschlecht)
In Worksheet 5 würde ich gerne mittels eines Buttons alle Personen zusammenführen (auflisten) ohne dabei doppelte mitzunehmen.
Es sollen alle Werte aus den Worksheets 1 bis 4 vergleichen werden und sobald es eine Übereinstimmung bei allen Merkmalen (Vorname, Name, Alter, Geschlecht) gibt, so soll die Person nur einmal im Worksheet 5 gelistet werden.
Könnte mir jemand hierbei helfen? Beispiel Excel zu finden: https://www.herber.de/bbs/user/154005.xlsx">https://www.herber.de/bbs/user/154005.xlsx">https://www.herber.de/bbs/user/154005.xlsx
Vielen Dank.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Daten zusammenführen
05.07.2022 17:00:43
RPP63
Moin!
Kopiere alle untereinander und wende Daten → Duplikate entfernen an.
Gruß Ralf
AW: Makro: Daten zusammenführen
05.07.2022 17:24:46
Eifeljoi5
Hallo
Was Ralf geschrieben hat würde ich auch tun an deiner Stelle, oder wenn es denn sein muss mit PQ.
VBA ist nicht nötig.
https://www.herber.de/bbs/user/154006.xlsx
AW: Makro: Daten zusammenführen
05.07.2022 18:20:35
Luschi
Hallo Eifeljoi5,
eine Hauptforderung: keine Duplikate, hast Du aber in PQ vergessen: = Table.Distinct(#"Expanded {0}")
Gruß von Luschi
aus klein-Paris
AW: Makro: Daten zusammenführen
05.07.2022 18:44:56
Eifeljoi5
Hallo Luschi
Wo du Recht hast hast du Recht, aber mit 70 Jahren ist das Lesen manchmal ein Problem, wenn man nix mehr durch die Brille sieht.
Aber trotzdem Danke für den Hinweis.
Anzeige
AW: Makro: Daten zusammenführen
07.07.2022 12:12:32
Christoph
Hey,
leider kenne ich mich mit dem Power Query Editor nicht aus, mir gefällt aber das Konzept mit dem Aktualisieren. Könnt ihr mir die Funktion ohne Duplikate einbauen?
Bekomme die Bezeichnung .Distinct leider nicht hin =(
Vielen Dank für die Unterstützung.
AW: Makro: Daten zusammenführen
05.07.2022 17:29:29
Oberschlumpf
Hi Christoph,
und da ich PQ noch so überhaupt gar nicht / nada / nix / nothing kann! :-), ich aber trotzdem helfen wollte, bekommst du hier auch noch eine VBA-Lösungsidee
https://www.herber.de/bbs/user/154007.xlsm
Hilfts?
Ciao
Thorsten
Anzeige
AW: Makro: Daten zusammenführen
07.07.2022 13:12:39
Christoph
Hey,
da meine Excel eine Beispieldatei war, kommt beim kopieren in die Originaldatei folgende Fehlermeldung bei der letzten Zeile:
Sheets(lstrName).Range("A9:D" & 9 + UBound(larMember, 2)) = WorksheetFunction.Transpose(larMember)
Hintergrund noch, neben den bekannten Excel-Blättern existieren noch weitere. Hier hab ich die Funktion oben wie folgt geändert:

Sub Zusammenfuehren()
Dim lshNotAll As Worksheet
Dim lloRow As Long
Dim larMember(), liIdx As Integer, lboExist As Boolean
Dim lloNew As Long, lstrName As String
ReDim larMember(3, 0)
For Each lshNotAll In Sheets
 If lshNotAll.Name = "Modul*" Then
For lloRow = 12 To lshNotAll.Cells(lshNotAll.Rows.Count, 1).End(xlUp).Row
For liIdx = 0 To UBound(larMember, 2)
If larMember(0, liIdx) = lshNotAll.Range("A" & lloRow).Value And _
larMember(1, liIdx) = lshNotAll.Range("B" & lloRow).Value And _
larMember(2, liIdx) = lshNotAll.Range("C" & lloRow).Value And _
larMember(3, liIdx) = lshNotAll.Range("D" & lloRow).Value Then
lboExist = True
Exit For
End If
Next
If lboExist = True Then
lboExist = False
Else
larMember(0, UBound(larMember, 2)) = lshNotAll.Range("A" & lloRow).Value
larMember(1, UBound(larMember, 2)) = lshNotAll.Range("B" & lloRow).Value
larMember(2, UBound(larMember, 2)) = lshNotAll.Range("C" & lloRow).Value
larMember(3, UBound(larMember, 2)) = lshNotAll.Range("D" & lloRow).Value
ReDim Preserve larMember(3, UBound(larMember, 2) + 1)
End If
Next
Else
With lshNotAll
lstrName = .Name
lloNew = IIf(.Cells(lshNotAll.Rows.Count, 1).End(xlUp).Row + 1 = 9, 9, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
If lloNew >= 9 And .Range("A9").Value  "" Then
.Range("A9:D" & .Cells(.Rows.Count, 1).End(xlUp).Row).Delete Shift:=xlUp
End If
End With
End If
Next
ReDim Preserve larMember(3, UBound(larMember, 2) - 1)
Sheets(lstrName).Range("A9:D" & 9 + UBound(larMember, 2)) = WorksheetFunction.Transpose(larMember)
End Sub
Die zu durchsuchenden Excelblätter haben eins gemeinsam. Sie fangen alle mit Modul ... an.
Anzeige
AW: Makro: Daten zusammenführen
07.07.2022 15:53:29
Oberschlumpf
Hi,
du solltest in Bsp-Dateien ganz genau die gleichen Zeilen und Spalten benutzen, wie in der Originaldatei!
- denn wir kennen nur die genutzen Zeilen/Spalten in den Bsp-Dateien
- und genau darauf sind unsere VbA-Codes aufgebaut
Wenn du meinen Code für dein Original nicht umstellen kannst, musst du eine neue Bsp-Datei zeigen - denk dran - die gleichen Zeilen/Spalten!
Noch ein Tipp: die Beiträge in diesem Forum sind immer nur so 6 Tage bearbeitbar, also mit Möglichkeit zu antworten - nach dieser Zeit Beitrag im Archiv = nur noch gucken, nich anfassen!^^ :-)
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige