Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

intelligenter Filter

intelligenter Filter
17.04.2008 08:46:30
Specke
Hallo Experten,
ich brauche mal eure Hilfe, um mein Konstrukt vielleicht etwas zu vereinfachen.
In einer Spalte habe ich folgende Werte
A
B
C/D
A
B/E
A/G/D
C/D
usw.
Ich brauche eine Auflistung aller Werte ohne Duplikate und "/" .
Also:
A
B
C
D
E
G
Im Moment mache ich es so, dass ich die Liste ohne Duplikate in eine Hilfsspalte schreibe, dort nach den "/" suche und die dahinter stehenden Werte ans Ende der Liste schreibe und dann nochmal nach Duplikaten filtere.
Geht das vielleicht eleganter?
Gruß Specke

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
schnelleres Vereinzeln der Daten
17.04.2008 09:45:00
Matthias
Hallo
Hilft das ein Stück weiter?
Userbild
Gruß Matthias

AW: schnelleres Vereinzeln der Daten
17.04.2008 10:43:00
Specke
Hallo Matthias,
danke für Deine Bemühungen. Das hilft mir leider nicht wirklich.
Gruß Specke

AW: schnelleres Vereinzeln der Daten
17.04.2008 11:46:00
Armin
Hallo,
Du brauchst noch ein Event der die Procedure startet! Im Beispiel habe ich einmal das Aufrufen der Tabelle benutzt. Man könnte jedoch auch einen Button installieren.
Den Code in die Codeseite der Tabelle speichern.
Natürlich sind noch einige Anpassungen an Deine Gegebenheiten erforderlich.

Sub Worksheet_Activate()
Dim Rx As Range, maxZeile As Long, Sx As String, Sy As String, Sp As Integer
maxZeile = Worksheets(ActiveSheet.Name).Cells(Rows.Count, 2).End(xlUp).Row
For Each Rx In Worksheets(ActiveSheet.Name).Range("A1:A10") 'anpassen
Sy = Rx.Value
Sp = InStr(1, Sy, "/", 1)
If Sp = 0 Then Sp = Len(Sy) + 1
Do
Sx = Mid(Sy, 1, Sp - 1)
Cells(maxZeile, 2).Value = Sx
maxZeile = maxZeile + 1
Sy = Mid(Sy, Sp + 1, Len(Sy))
Sp = InStr(1, Sy, "/", 1)
If Sp = 0 Then Sp = Len(Sy) + 1
Loop Until Len(Sy) = 0
Next
End Sub


Gruß Armin

Anzeige
Vielen Dank! Gruß Specke (owT)
17.04.2008 12:28:00
Specke

AW: intelligenter Filter
17.04.2008 11:13:00
Wolli
Hallo Specke,
schreib Dir ein Makro, das Zeile für Zeile durchgeht und immer, wenn es einen "/" findet, eine Zeile unterhalb einfügt und den Inhalt nach dem "/" dorthin verschiebt. Anschließend musst Du dann die Duplikate rausfischen, entweder mit Spezialfilter oder durch 1. Sortieren und 2. Liste von oben nach unten durchgehen und Zeilen mit bereits vorhandenen Werten löschen.
Ist zwar auch nicht sehr elegant, kann aber immerhin automatisch laufen.
Gruß, Wolli

AW: intelligenter Filter
17.04.2008 11:17:03
Specke
Hallo Wolli,
automatisch läuft meins auch.
Deine Variante (Zeilen löschen) kann ich so leider nicht verwenden, da in den dazugehörenden Spalten auch noch Werte stehen, die ich weiterverwenden möchte.
Danke und Gruß
Specke
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige