Microsoft Excel

Herbers Excel/VBA-Archiv

mehrere Spalten untereinander ohne Doppler

Betrifft: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 17.09.2014 14:24:59

Hallo zusammen,

ich habe eine Übersicht mit 25 Spalten und ca. 4500 Zeilen. Die Zellen beinhalten Namen, die doppelt vorkommen können; bzw. sind Zellen auch manchmal leer.
Der Inhalt ist dynamisch und ändert sich täglich.

Ich brauche ein Makro, das mir den Inhalt der Spalten ohne Doppler in eine Spalte einfügt.

Kann jemand helfen?

Lg,
Susanne

  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Hajo_Zi
Geschrieben am: 17.09.2014 14:35:17

Hallo Susanne,

Doppelte Löschen
angenommen Deine Daten stehen in A1 bis A????
Bereich markieren = Spalte A anklicken (evtl. eine Leerzeile vorher einfügen)
Daten / Filter / Spezialfilter
keine Duplikate
jetzt kannst du noch einstellen, ob an gleicher Stelle oder woanders placiert; hier also B1 eingeben
Spalte A anschließend löschen
Bei mehreren Spalten, muss die Liste eine Überschrift haben, am besten fett formatiert, dann erkennt sie auch Excel als Überschrift.

GrußformelHomepage


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 17.09.2014 14:41:20

Hallo Hajo,

der Spezialfilter nützt mir nichts, denn ich braucht in erster Linie die 25 Spalten untereinander in einer. Diese soll dann ohne Doppler sein. Ich hab versucht, eine Beispieldatei hochzuladen, aber irgendwie klappt das nicht.

Danke trotzdem.

Lg,
Susanne


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 17.09.2014 15:04:10

.. es wäre auch noch eine Alternative, wenn die finale Spalte Doppler enthält. Macht es das einfacher?


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Rudi Maintaire
Geschrieben am: 17.09.2014 15:36:01

Hallo,
du willst also alle Werte aus allen 25 Spalten ohne Doppler in einer Spalte untereinander haben?

Sub aaa()
  Dim vArr, i As Long, j As Long, oDic As Object, oKey
  Set oDic = CreateObject("scripting.dictionary")
  vArr = Cells(1, 1).CurrentRegion
  For i = 1 To UBound(vArr)
    For j = 1 To UBound(vArr, 2)
     oDic(vArr(i, j)) = 0
    Next
  Next
  i = 0
  ReDim vArr(1 To oDic.Count, 1 To 1)
  For Each oKey In oDic
    i = i + 1
    vArr(i, 1) = oKey
  Next
  Worksheets.Add.Cells(1, 1).Resize(oDic.Count) = vArr
End Sub

Gruß
Rudi


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 17.09.2014 15:44:28

du bist mein Held :) zwei Kleinigkeiten noch: Es soll ab Spalte D beginnen mit untereinander kopieren; und kann bei erneutem Start des Makros der Inhalt in dem TB1 gelöscht und dann neu eingefügt werden? So, dass praktisch diese eine Spalte immer auf dem selben Tabellenblatt steht.

Lg,
Susanne


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Rudi Maintaire
Geschrieben am: 17.09.2014 16:03:11

Hallo,
so?

Sub aaa()
  Dim vArr, i As Long, j As Long, oDic As Object, oKey
  Set oDic = CreateObject("scripting.dictionary")
  vArr = Cells(1, 1).CurrentRegion
  For i = 1 To UBound(vArr)
    For j = 1 To UBound(vArr, 2)
     oDic(vArr(i, j)) = 0
    Next
  Next
  i = 0
  ReDim vArr(1 To oDic.Count, 1 To 1)
  For Each oKey In oDic
    i = i + 1
    vArr(i, 1) = oKey
  Next
  With Sheets("Tabelle1")
    .Columns(4).ClearContents
    .Cells(1, 4).Resize(oDic.Count) = vArr
  End With
End Sub


Gruß
Rudi


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 17.09.2014 16:11:20

Hallo Rudi,

danke für die schnelle Rückmeldung. Beim Ausführen erhalte ich einen Laufzeitfehler. Beim Debuggen wird die Zeile

For i = 1 To UBound(vArr)

markiert;

Kannst du damit was anfangen?

Lg,
Susanne


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Rudi Maintaire
Geschrieben am: 17.09.2014 16:34:38

Hallo,
du musst das Makro aus deiner 4500x25 Tabelle heraus starten.

Gruß
Rudi


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 18.09.2014 12:11:30

Hallo Rudi,

so funktioniert es :) Vielen vielen Dank.

Lg,
Susanne


  

Betrifft: AW: mehrere Spalten untereinander ohne Doppler von: Ich_halt
Geschrieben am: 18.09.2014 13:23:24

... eine Kleinigkeit wäre da doch noch ... Wie muss ich das folgende Makro anpassen, damit es die "eine Spalte" nicht in die Zelle A1 und folgende einfügt, sondern in Zelle A2?

Sub Column()
  Dim vArr, i As Long, j As Long, oDic As Object, oKey
  Set oDic = CreateObject("scripting.dictionary")
  vArr = Cells(1, 1).CurrentRegion
  For i = 2 To UBound(vArr)
    For j = 4 To UBound(vArr, 2)
     oDic(vArr(i, j)) = 0
    Next
  Next
  i = 0
  ReDim vArr(1 To oDic.Count, 1 To 1)
  For Each oKey In oDic
    i = i + 1
    vArr(i, 1) = oKey
  Next
  With Sheets("TA_Column")
    .Columns(4).ClearContents
    .Cells(1, 1).Resize(oDic.Count) = vArr
    Sheets("TA_Column").Select
    Columns(1).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  End With
End Sub


Lg,
Susanne


 

Beiträge aus den Excel-Beispielen zum Thema "mehrere Spalten untereinander ohne Doppler"