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

Doppelte Werte in Zelle löschen

Doppelte Werte in Zelle löschen
23.01.2013 09:35:13
philG
Hallo liebe Herber-Gemeinde,
ich habe ein Problem mit doppelten (kommaseparierten) Werten in einer Zelle meiner Exceltabelle. Ich hoffe Ihr könnt mir zur Lösung des Problems einen Tip geben! :)
Ein Beispiel: Zelle A1=8512,8512,8512,8512,8512,8512,8512,8512,8512,8512,8512,8512,14726,14726,14726,14726,14726,14726,14726,14726,14726,14726,14726,14726
gewünschtes Ergebnis: 8512, 14726
Also, vielen vielen Dank vorab für Eure Hilfe!
Grüße
phil

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Werte in Zelle löschen
23.01.2013 09:49:53
Rudi
Hallo,
in ein Modul:
Function Einzelwerte(sText As String)
Dim objErg As Object, arrTmp, i As Integer
Set objErg = CreateObject("Scripting.dictionary")
arrTmp = Split(sText, ",")
For i = LBound(arrTmp) To UBound(arrTmp)
objErg(arrTmp(i)) = 0
Next
Einzelwerte = Join(objErg.keys, ",")
End Function

B1:=Einzelwerte(A1)
Gruß
Rudi

AW: Doppelte Werte in Zelle löschen
23.01.2013 09:54:07
Matze
Hallo Phil,
Hab das gefunden und etwas umgebaut , viel Spaß damit. Hoffe es funktioniert wie gewünscht.
Sub DoppelteWeg()
Dim strT As String
Dim strZ As String
Dim sCol As Collection
Dim sColZ As Variant
Dim intA As Integer
Dim intS As Integer
Dim intPos() As Integer
Dim rngZ As Range
On Error Resume Next
For Each rngZ In Selection.Cells
Set sCol = New Collection
strZ = rngZ.Value
intA = Len(strZ) - Len(Application.WorksheetFunction.Substitute(strZ, ",", ""))
ReDim intPos(0 To intA)
For intS = 1 To intA
intPos(intS) = InStr(intPos(intS - 1) + 1, strZ, ",")
Next intS
For intS = 1 To intA
strT = Mid(strZ, intPos(intS - 1) + 1, intPos(intS) - intPos(intS - 1) - 1)
sCol.Add strT, strT
strT = ""
Next intS
strT = Right(strZ, Len(strZ) - intPos(intA))
sCol.Add strT, strT
strZ = ""
For Each sColZ In sCol
strZ = strZ & sColZ & ","
Next sColZ
strZ = Left(strZ, Len(strZ) - 1)
rngZ.Value = strZ
Set sCol = Nothing
Next rngZ
End Sub
Matze

Anzeige
Korrektur,...
23.01.2013 09:56:55
Matze
zelle markieren , dann Makro starten:
Ändere
rngZ.Value = strZ
in
rngZ.Value = strZ & ","
Matze

AW: Korrektur,...
23.01.2013 10:42:09
Philg
Hallo Matze,
hat funktioniert!! ... Super ... vielen vielen Dank!
Grüße
philg

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige