Hi Jürgen,
Doppelte Einträge wie 1600583 zu finden und als doppelt
eingetragen zu erkennen ist problemlos mit Vba möglich.
Allerdings, das Semikolon ist natürlich übel:
;1600583
1600583
Ok, da würde ich dann Semikolon durch Leerzeichen ersetzen
Gewaltigere Probleme machen aber Einträge wie
3M Deutschland GmbH 92 Elektro-Isolierband,
3M Deutschland GmbH Isolierband
es reicht wenn 3M Deutschland GmbH verschwindet
NYM-J 3 x 1,5
NYMJ3x15
wieso, sind doch eindeutige Werte, sollen auch beide erhalten
bleiben, damit sowohl mit Strich,Leerzeichen und Komma, wie
auch ohne dem gesucht bzw. gefunden werden kann
Ist unterschiedlich geschrieben, ist aber das Gleiche doppelt in einer Zelle, also müßte doch eins verschwinden!?
Weiterhin wird es schwierig ein Makro zu basteln was aus
15mm x 33m 15 x 33 x 0,075
33m x 15mm x 0,075mm
macht.
braucht nicht
Ich kenne jetzt nur zwei Zellen deiner Liste, was noch alles
für Komplikationen auftreten ist noch zu prüfen.
mehr kann ich Dir/euch nicht zumuten, ihr würdet mir sicher
zum Suizid raten.
-) oder einen Programmierauftrag daraus machen.
Okay, ich schreibe ein Makro, was alle exakt doppelten Wörter
ermittelt und auflistet. Mit exakt ist gemeint, sie haben
vorne und hinten ein Leerzeichen, d.h. „;1600583“ wird nicht
als doppelt erkannt.
Werden diese doppelten Werte,Wörter „nur“ aufgelistet, oder
kann auch mein Wunsch erfüllt werden, d.h. wenn ich den Wert
in der Auflistung lösche, sich auch der Text entsprechend
reduziert?
Welches „und“ soll denn gelöscht werden wenn mehrere und’s vorhanden sind. Immer das erste „und“ stehen lassen, alle anderen „unds“ löschen macht für den Textusammenhang wenig Sinn.
Ich denke schon du mußt da manuell durch und pro zelle entscheiden welche "Und"s gelöscht werden müssen.
Mehr ist im Rahmen dieses Forums nicht drin.
Das würde mir auch schon seeeehr helfen.
Die Datei: http://www.hostarea.de/server-11/November-dec943eeb4…
enthält in Modul1 den nachfolgenden Code.
In A1 steht:
Mindestbestellmenge - 15 Rollen - FE510055117 - 3M Deutschland GmbH 92 Elektro-Isolierband, 15mm x 33m 15 x 33 x 0,075 / goldgelb / Band aus Polyimidfolie mit einem druckhaftenden Acrylklebstoff. Robust und dünn für den universellen Einsatz an thermisch besonders hoch beanspruchten Isolationen geeignet. - 3M Deutschland GmbH Isolierband;1600583 1600583
Das ergibt sich daraus:
Tabelle:
F:\[Doppel2t.xls]!Ziel2
│ B │ C │ D │ E │ F │ G │ H │
──┼─────┼────┼─────┼─────┼────┼─────────────┼──────┤
1 │ - │ 15 │ x │ / │ 3M │ Deutschland │ GmbH │
──┴─────┴────┴─────┴─────┴────┴─────────────┴──────┘
Tabellendarstellung erreicht mit dem Code in FAQ2363
(Naja, die Zelle A1 sprengt den Code in FAQ2363 und wird viel zu breit angezeigt, deshalb weggelassen)
Den Code zu erweitern daß er stur alle mehrfach vorkommenden Zeichenfolgen löscht ist kein Akt, genauso daß er nur das erste Vorkommen der Zeichenfolge stehen läßt.
Aber wie o.g., ob das Sinn macht.
Kannst ja Info geben welche Variante du möchtest.
Ansonsten, ich habe so für mich, wer weiß vielleicht ja mal jmd ein ähnliches Problem, weitergebastelt und einige Features entwickelt.
Z.B. daß mehrfache Einträge in einer Zelle automatisch farblich markiert werden und einiges mehr, aber das sprengt den Rahmen von w-w-w.
Gruß
Reinhard
Option Explicit
'
Sub Mehrfache()
Dim Zei As Long, Satz As Variant, c As Integer, Pos As Integer
Dim Spa As Integer, Satz2 As Variant, Satz3 As Variant
With Worksheets("Ziel2")
.Range("B1:IV3").ClearContents ' die 3 an Zeilenanzahl anpassen
For Zei = 1 To 3 ' die 3 an Zeilenanzahl anpassen
Spa = 1
Satz = Split(.Cells(Zei, 1))
Satz2 = ""
Satz3 = ""
For c = 0 To UBound(Satz)
If InStr(1, Satz2, " " & Satz(c) & " ") Then
If InStr(1, Satz3, " " & Satz(c) & " ") = 0 Then Satz3 = Satz3 & " " & Satz(c) & " "
Else
Satz2 = Satz2 & " " & Satz(c) & " "
End If
Next c
Satz3 = Split(Application.WorksheetFunction.Trim(Satz3))
Spa = 1
For c = 0 To UBound(Satz3)
.Cells(Zei, c + 2) = Satz3(c)
Next c
Next Zei
End With
End Sub