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

Doppelten Teilstring identifizieren und prüfen

Doppelten Teilstring identifizieren und prüfen
Rumah
Hallo Zusammen,
ich habe hier ein kleines Problem und weiß nicht, wie ich es per Makro lösen kann. Ein String besteht aus fünf Ziffern, einem Trennstrich und zwei darauf folgenden Ziffern. Dieser String ist in einer Spalte über x Zellen enthalten. Wie kann ich den gefüllten Bereich der Spalte auf folgende Bedingung prüfen und farbig markieren:
Vergleiche alle doppelt vorkommenden Strings mit den gleichen führenden fünf Ziffern und markiere diese, wenn das nach dem Trennstrich folgende Ziffernpaar bei diesen Strings unterschiedlich ist.
Anbei ein Beispiel, die Strings 42240-90 und 42240-91 kommen jeweils zwei Mal vor, fallen in die eben genannte Bedingung und sollten daher markiert werden.
42239-90
42240-90
42240-90
42241-90
42242-90
42243-90
42243-90
42244-90
42245-90
42245-90
42246-90
42249-90
68908-90
68909-90
68910-90
65353-89
65354-89
65354-89
65355-89
65356-89
65357-89
65358-89
40154-88
40154-88
40154-88
40154-88
40155-88
40155-88
40155-88
40155-88
40156-88
40156-88
40156-88
40156-88
40157-88
40157-88
42240-91
42240-91
Für eure Hilfe lieben Dank
Rumah
Bedingte Formatierung mit SUMMENPRODUKT
01.03.2012 00:25:39
Erich
Hi Ruhma,
die Bed. habe ich noch mal daneben in Spalte B geschrieben - brauchst du nicht:
 AB
242239-90FALSCH
342240-90WAHR
442240-90WAHR
542241-90FALSCH

Formeln der Tabelle
ZelleFormel
B2=SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A21. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc
A31. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc
A41. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc
A51. / Formel ist =SUMMENPRODUKT((LINKS(A2;5)=LINKS(A$2:A$39;5))*(RECHTS(A2;2)<>RECHTS(A$2:A$39;2)))>0Abc

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
... wie ich es per (Makro!) lösen kann ;o) oT
01.03.2012 00:31:39
Matthias
Formatierung mit VBA-Makro
01.03.2012 01:00:16
Erich
Hi Rumah,
wenn die Werte ab Zeile 2 in Spalte A stehen (das hast du uns nicht verraten),
kann VBA das wohl so:

Option Explicit
Sub Dubletten()
Dim zz As Long, strT As String
For zz = 2 To Cells(Rows.Count, 1).End(xlUp).Row
strT = "=SUMPRODUCT((""" & Left(Cells(zz, 1), 5) & _
"""=LEFT(A$2:A$39,5))*(""" & Right(Cells(zz, 1), 2) & _
"""RIGHT(A$2:A$39,2)))"
If Evaluate(strT) > 0 Then Cells(zz, 1).Interior.Color = 65535
Next zz
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
P.S. @Matthias: Warum hast du das denn nicht gleich selbst geschrieben?
Anzeige
Sicher, weil er es für genauso überflüssig ...
01.03.2012 01:11:42
Luc:-?
…hielt wie du ursprgl, Erich! ;-)
Da bietet sich doch die Gegenfrage an, warum hast du's nun doch noch geschrieben? Und in Ergänzung dazu: Warum hast du es dann nicht wenigstens so geschrieben, dass es diese BedingtFormatierung herstellt? Denn du weißt doch auch, dass sich das Range-Objekt im Ggsatz zum FormatCondition-Objekt nicht quasi von selbst wieder entfärbt! ;-)
Gruß Luc :-?
AW: Formatierung mit VBA-Makro
01.03.2012 08:39:10
Rumah
Hallo Erich,
schaut schon mal sehr gut aus, lieben Dank bis hier her. Nur noch kurz eine Frage:
Du arbeitest u.a. mit einem statischen Bereich (A$2:A$39) während der abzufragende Bereich ja dynamisch ist, d.h. u.U. auch mehr als 39 Zeilen hat. Zerhaut es mir die Abfrage irgendwann mal bzw. wie passe ich diesen Parameter noch auf den dynamischen Bereich an?
A$2:A$39 - "39" sollte den Wert der letzten Zeile im Bereich annehmen, oder ist das egal?
Beste Grüße und einen guten Tag
Rumah
Anzeige
Formatierung mit VBA-Makro - variabler
01.03.2012 09:32:51
Erich
Hi Rumah,
das ginge so:

Option Explicit
Sub Dubletten2()
Dim lngZ As Long, zz As Long, strT As String
lngZ = Cells(Rows.Count, 1).End(xlUp).Row
For zz = 2 To lngZ
strT = "=SUMPRODUCT((""" & Left(Cells(zz, 1), 5) & _
"""=LEFT(A$2:A$" & lngZ & ",5))*(""" & Right(Cells(zz, 1), 2) & _
"""RIGHT(A$2:A$" & lngZ & ",2)))"
If Evaluate(strT) > 0 Then Cells(zz, 1).Interior.Color = 65535
Next zz
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
P.S. @Matthias: Ja, das ist ein guter Grund! :-)
AW: Formatierung mit VBA-Makro - variabler
02.03.2012 07:53:27
Rumah
Hallo Erich,
lieben Dank. Hat so funktioniert.
@Matthias - Auch Dir lieben Dank für den nächtlichen Einsatz
Rumah
Anzeige
@Erich, ich war schon fast in der Koje - owT
01.03.2012 08:44:16
Matthias

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige