Microsoft Excel

Herbers Excel/VBA-Archiv

Mehrere IDs aus Excel-Tabelle zusammenfügen | Herbers Excel-Forum


Betrifft: Mehrere IDs aus Excel-Tabelle zusammenfügen von: Erika
Geschrieben am: 09.12.2009 17:51:54

Hallo zusammen,

zu diesem Thema habe ich schon verschiedenes gelesen, aber irgendwie trifft keines so richtig auf meine Anforderungen.

Angenommen ich habe eine Excel-Datei mit mehreren Sheets. Die Sheets 2-7 sind ähnlich aufgebaut. Haben alles an der gleichen Stelle stehen. Z.B. in Spalte E eine ID.

Nun möchte ich gerne alle IDs aus den Sheets in Sheet 1 einlesen. Ohne Dopplungen.

Da die Datei von "Nicht-EDVlern" regelmäßig aktualisiert wird, wäre es schön, wenn man einfach "aufs Knöpfchen" drücken müsste und die Liste in Sheet 1 sich automatisch aktualisiert.

Hat einer eine VBA-Lösung dafür?

Ich habe leider bisher nur Sachen gefunden, bei denen die Ausgangslisten verändert werden. Sowas hilft mir leider nciht weiter :(

Über eure Hilfe wäre ich sehr dankbar!

Viele Grüße
Erika

  

Betrifft: AW: Mehrere IDs aus Excel-Tabelle zusammenfügen von: Josef Ehrensberger
Geschrieben am: 09.12.2009 18:14:38

Hallo Erika,

probier mal.

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub listIDs()
  Dim objDic As Object
  Dim lngRow As Long, lngFirst As Long, lngLast As Long, lngIndex As Long
  Dim varID As Variant
  
  Set objDic = CreateObject("Scripting.Dictionary")
  
  lngFirst = 2 'erste Zeile mit ID's in den Tabellen - Anpassen!
  
  For lngIndex = 2 To 7
    With Sheets(lngIndex)
      lngLast = Application.Max(lngFirst, .Cells(Rows.Count, 5).End(xlUp).Row)
      varID = .Range(.Cells(lngFirst, 5), .Cells(lngLast, 5))
      For lngRow = 1 To UBound(varID, 1)
        objDic(varID(lngRow, 1)) = 0
      Next
    End With
    Erase varID
  Next
  
  With Sheets("Tabelle1") 'Ausgabetabelle - Anpassen!
    'Ausgabebereich - Anpassen!
    .Range("E2:E" & CStr(.Rows.Count)).ClearContents
    .Range("E2").Resize(objDic.Count, 1) = Application.Transpose(objDic.keys)
    .Range("E2").Resize(objDic.Count, 1).Sort .Range("E2"), xlAscending, Header:=xlNo
  End With
  
  Set objDic = Nothing
End Sub



Gruß Sepp



  

Betrifft: AW: Mehrere IDs aus Excel-Tabelle zusammenfügen von: Erika
Geschrieben am: 09.12.2009 19:03:15

Hallo Sepp,

erstmal vielen Dank. Werde es morgen ausprobieren und dir dann Bescheid geben. :)

Viele Grüße
Erika


  

Betrifft: AW: Mehrere IDs aus Excel-Tabelle zusammenfügen von: Erika
Geschrieben am: 10.12.2009 08:10:13

Guten Morgen Sepp,

das klappt soweit wunderbar, ich bin begeistert :)

Kannst du vielleicht noch ein wenig mehr für mich kommentieren? Ich möchte gerne nachvollziehen, was das Makro da macht. Das wäre sehr toll. :)

Ansonsten schonmal: Daumen hoch!

Viele Grüße
Erika


  

Betrifft: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: Erika
Geschrieben am: 10.12.2009 12:36:45

Hallo zusammen,

ich habe mir das ganze "Projekt" nochmal durch den Kopf gehen lassen. Bevor ich groß rumerzähle, hier mal eine Beispieldatei: https://www.herber.de/bbs/user/66482.xls

Die richtige Datei ist wesentlich umfangreicher.

Wie man sehen kann, stehen in den einzelnen Tabellenblättern die IDs. Dahinter steht auch immer eine "Art". Nun möchte ich mir gerne die Anzahl der Arten pro ID auf dem ersten Blatt ausgeben lassen (grauer Kasten).

Ist das irgendwie möglich?

Ergänzend dazu:
Jede ID ist einer Adresse zugeordnet. Wie kann man das erste Makro dahingehend ergänzen, dass auch jedesmal die Adressen zu den IDs neu zugeordnet wird? Ist das überhaupt möglich?

Momentan bedien ich mich eines SVERWEISes.

Über jeden Lösungsansatz wäre ich euch sehr dankbar :)

Einen wunderschönen Tag wünscht euch
Erika

P.S.: Falls sich jemand die Mühe machen sollte, und mir direkt die Antwort auf einem Silbertablett serviert (bitte nicht falsch verstehen), wäre es schön, wenn auch alles so kommentiert ist, dass ich es irgendwie nachvollziehen kann. Ich möchte nämlich gerne dabei lernen. :)


  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: welga
Geschrieben am: 10.12.2009 14:01:31

Hallo Erika,

ich habe mal eine Frage:

Warum löst du das nicht über eine Pivottabelle?


Gruß
welga


  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: Erika
Geschrieben am: 10.12.2009 14:04:52

Hallo Welga,

ist eine Pivot-Tabelle dynamisch? Ich habe damit noch nie gearbeitet :)

Der Sinn ist ja, das man nur einmal klicken muss und das Ergebnis steht dort. Wie bereits in einem älteren Beitrag schon erwähnt, arbeiten einige Nicht-EDVler mit der Datei. Daher möchte ich die gerne so einfach wie möglich gestalten.

Aber ich lasse mich gerne über die Vorteile einer Pivot-Tabelle an dieser Stelle aufklären :)

VG
Erika


  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: welga
Geschrieben am: 10.12.2009 14:11:05

Hallo Erika,

du kannst dir die Pivottabelle ja per VBA erstellen lassen, d.h. ein Klick vom Nicht-EDVler und schon werden alle sheets in einem zusammengefasst. Dann wird aufgrund dieses Sheets eine Pivottabelle nach definiertem Layout erstellt.

Eventuell habe ich morgen etwas Zeit, dann schaue ich mal danach. Der Vorteil einer Pivottabelle ist, dass du nicht nur nach der ID zusammenfassen könntest, sondern auch eventuell nach PLZ oder Ort auswerten kannst.

Vielleicht kann dir ja jemand anderes schon mal diesbezüglich weiterhelfen, sonst schaue ich mal morgen danach (falls ich dazu komme).


Gruß
welga


  

Betrifft: an alle: weiterer Lösungsweg?, an Sepp: Wurm gefun von: Erika
Geschrieben am: 10.12.2009 14:20:40

Hallo Welga,

danke für die schnelle Rückmeldung.

Wäre super, wenn mich diesbezüglich jemand aufklären kann. Wobei eine Auswertung nach PLZ oder Ort nciht notwendig ist. Eine Auswertung nach ID reicht vollkommen :)

Was mir noch gerade einfällt:

@ Sepp:
Bei deinem Makro ist mir aufgefallen, dass, wenn eine Tabelle (also die Spalte E, in der die IDs stehen) weniger als drei IDs hat, ein Fehler auftritt. Woran kann das liegen?

Dat Erika


  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: Josef Ehrensberger
Geschrieben am: 10.12.2009 18:27:55

Hallo Erika,

https://www.herber.de/bbs/user/66495.xls

voraussetzung ist, das die Tabellen wie in deiner Datei Zahlenwerte als Name besitzen
und die Tabellen den selben Aufbau haben.


Gruß Sepp



  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: Erika
Geschrieben am: 11.12.2009 09:20:50

Hallo Sepp,

das sieht ja soweit super aus! Ich und meine Kollegen danken dir tausendfach! :)

Allerdings ist mir aufgefallen, dass Kat 2 gar nicht ausgewertet wird?

Vielleicht komm ich ja alleine drauf, wieso das so ist. Vielen lieben Dank und ein wunderschönes Wochenende!

LG
Erika


  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: Josef Ehrensberger
Geschrieben am: 11.12.2009 15:22:34

Hallo Erika,

ich habe den Code nochmals überarbeitet, jetzt sollte es laufen.

https://www.herber.de/bbs/user/66528.xls


Gruß Sepp



  

Betrifft: AW: an alle: WEITERGEDACHT: ID + Ergebnisse auslesen von: Erika
Geschrieben am: 11.12.2009 15:42:13

Klasse. So kann das Wochenende kommen! :)

Tausend Dank nochmal!


Beiträge aus den Excel-Beispielen zum Thema "Mehrere IDs aus Excel-Tabelle zusammenfügen"