Anzeige
Archiv - Navigation
1476to1480
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
Tabelle in eine Spalte
26.02.2016 15:02:26
Alex
Hallo zusammen,
ich hatte dies bereits gefragt, aber war dann leider im Urlaub und konnte noch keine wirkliche Lösung finden. Leider finde ich keine Möglichkeit mehr auf den ursprünglichen Beitrag zu antworten, deshalb verzeiht mir bitte diese Dopplung.
Mein Problem ist folgendes: Ich habe eine Tabelle (C-CZ; 1-1000) die sich von alleine ausfüllt. In den Zellen stehen Begriffe, die sich wiederholen und es sind auch nicht alle Zellen der Tabelle gefüllt. Die Tabelle prüft eine andere ab und fühlt sich dementsprechend. Also manchmal sind die ersten 5 Zeilen einer Spalte gefüllt und manchmal die ersten 100. Jetzt möchte ich das jeder Begriff, der in der Tabelle vorkommt, mir in Spalte B untereinander ausgegeben wird. Am besten nur einmal. Wobei ich das Löschen der Dopplung mit einer Hilfsspalte schon hinbekomme. Mir geht es hauptsächlich um das Zusammenfassen der Tabelle in eine Spalte.
Die Lösung darf auch gerne VBA sein, aber ich persönlich kenne mich damit nicht aus.
Werner hatte bereits im letzten Beitrag angemerkt, dass die Tabelle zu groß sei für eine Formellösung.
Ich wäre euch echt dankbar, wenn Ihr mir helfen könnt. Freue mich über jede Antwort!
Danke im Voraus und schönes Wochenende!
Grüße
Alex

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle in eine Spalte
26.02.2016 17:37:44
Peter
Hallo Alex,
als VBA-Lösung z. B. so:
Option Explicit
Public Sub Eintraege_anzeigen()
Dim MyDict  As Object
Dim vTemp   As Variant
Dim lZeile  As Long
Dim lSpalte  As Long
Set MyDict = CreateObject("Scripting.Dictionary")
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
vTemp = .Range("C1:CZ1000")
For lZeile = LBound(vTemp, 1) To UBound(vTemp, 1)
For lSpalte = LBound(vTemp, 2) To UBound(vTemp, 2)
If vTemp(lZeile, lSpalte)  "" Then
MyDict(Trim$(vTemp(lZeile, lSpalte))) = 0
End If
Next lSpalte
Next lZeile
.Range("B1:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).ClearContents
.Range("B1").Resize(MyDict.Count) = WorksheetFunction.Transpose(MyDict.keys)
.Range("B1:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).Sort _
Key1:=.Range("B1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
End Sub

Gruß Peter

Anzeige
AW: Tabelle in eine Spalte
27.02.2016 18:41:53
Constantin
Hallo Peter,
kleine Frage an dich: Ich habe das VBA-Programm auch versucht umzusetzen und bei mir erscheint beim Resize-Befehl die Meldung "Laufzeitfehler 13" - Typen unverträglich.
Woran könnte das liegen?
Grüße, Constantin

AW: Tabelle in eine Spalte
27.02.2016 18:53:34
Michael
Hi Constantin,
daran, daß Du keine Werte eingegeben hast - wenn MyDict.Count=0 ist, spuckt das Resize.
Schöne Grüße,
Michael

AW: Tabelle in eine Spalte
27.02.2016 19:29:47
Constantin
oh - stimmt! Cooles Programm.
Danke.
Grüße, Constantin

aha!
28.02.2016 18:17:00
Michael
Hi Constantin,
freut mich, daß es das war.
Naja, man könnte noch ne Zeile einfügen:
         Next lZeile
if MyDict.Count=0 then msgbox "Dic = leer" : exit sub ' ****************
.Range("B1:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).ClearContents
Happy Exceling,
Michael

Anzeige
AW: Tabelle in eine Spalte
01.03.2016 16:42:45
Alex
Hallo Peter,
vielen Dank für die VBA. Funktioniert super! Gibt es noch die Möglichkeit, dass sich die VBA automatisch aktualisiert? Denn die Tabelle hängt von einem Dropdown ab. Am besten wäre es, wenn das Dropdown geändert wird, dass sich dann die VBA auch aktualisiert.
Viele Grüße
Alex
P.S.: Ich glaube, ich habe das alles zu kompliziert gestaltet....

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige