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

zellinhalt vergleichen

zellinhalt vergleichen
18.06.2009 15:06:21
kerberus
hallo zusammen,
vielleicht könnt ihr mir weiterhelfen. ist es möglich per VBA unterschiede innerhalb der Zellen zu markieren?
BSP: Zelle A1: "Der Mann hat einen alten Mantel" / B1: "Der Mann hat einen grünen Mantel"
Als Ergebnis des Vergleichs des Zellinhaltes soll "alten" (A1) bzw. "grünen" (B1) innerhalb der Zelle farblich hervorgehoben werden.
Ist dies möglich?
Vielen Dank.
Kerbi

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

Betreff
Datum
Anwender
Anzeige
AW: zellinhalt vergleichen
18.06.2009 15:14:29
Helmut
Berechne Anfangsposition und Länge des zu markierenden Texteils und dann etwa so
With ActiveCell.Characters(Start:=22, Length:=10).Font
.Name = "Verdana"
.FontStyle = "Standard"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
AW: zellinhalt vergleichen
18.06.2009 15:31:55
kerberus
Hallo Helmut,
Danke. Das Problem ist eben gerade die Identifizierung des zu färbenden Textteils, wobei auch mehrere Teile markiert werden können; es sollten einfach alle Unterschiede hervorgehoben werden. Im Beispiel, "alten"/"grünen". Ich habe eine Excel Tabelle die ca. 2000 Zeilen hat, mit Kommentaren. Jetzt möchte ich hervorheben, in wiefern sich die Kommentare unterscheiden.
Vielen Dank.
Kerbi
Anzeige
AW: zellinhalt vergleichen
18.06.2009 15:42:17
Helmut
Dazu ist es erforderlich, genau zu spezifizieren, was unterschiedlich heißt, z.B.
einzelne Wörter unterscheiden sich
Unterschiede auf Positionsebene
sollen Wortumstellungen ignoriert werden.
Da es sich um, wie ich annehme, um unstrukturierte Kommentare handelt, gibt es wahrscheinlich keine einfache Lösung.
Reicht es nicht einfach aus, per bedingtem Format anzuzeigen, welche Zellen sich unterscheiden?
AW: zellinhalt vergleichen
18.06.2009 15:49:09
kerberus
Hallo Helmut,
Dein Einwand ist korrekt, es ist schwierig ohne genaue Spezifizierung (Kommentare sind wie angenommen mehrheitlich unstrukturiert). Dein Vorschlag mit der Bedingten Formatierung wäre die Notlösung. Einfache wäre wahrscheinlich einfach die Wörter innerhalb der Zelle zu vergleichen und wenn unterschiedlich, dann wird das Wort rot markiert. Schwierig ich weiss, aber ein Versuch ist's wert, da ich festgestellt habe, dass fast nichts unmöglich ist... geniale Köpfe im Forum sei Dank.
Gruss & Dank
Kerbi
Anzeige
AW: zellinhalt vergleichen
18.06.2009 16:46:58
Helmut
Im Prinzip so (Anpassungen sind erforderlich)

Sub test()
Dim myLength As Long
Dim i As Long
Dim j As Long
Dim myTestString As String
myLength = Len(Range("a1").Value)
For i = 1 To myLength
If Mid(Range("a1").Value, i, 1) = " " Or i = 1 Then
For j = i + 1 To myLength
If Mid(Range("a1").Value, j, 1) = " " Or j = myLength Then
If i = 1 Then
myTestString = Mid(Range("a1").Value, i, j - i)
Else
If j = myLength Then
myTestString = Mid(Range("a1").Value, i + 1, j - i)
Else
myTestString = Mid(Range("a1").Value, i + 1, j - i - 1)
End If
End If
If InStr(Range("b1").Value, myTestString) = 0 Then
With Range("a1").Characters(Start:=i, Length:=j - i).Font
.Color = -16776961
End With
End If
j = myLength
End If
Next j
End If
Next i
End Sub


Anzeige
AW: zellinhalt vergleichen
18.06.2009 15:33:03
ptonka
Hallo,
folgendes Makro markiert ab der Stelle, an der der Text sich ändert, den Text rot.
Vielleicht kannst Du ihn Dir etwas anpassen.
Gruß,
Ptonka

Sub vergleich()
Letztezeile = [A65536].End(xlUp).Row
For i = 1 To Letztezeile
WertA = Cells(i, 1).Value
WertB = Cells(i, 2).Value
LängeA = Len(WertA)
LängeB = Len(WertB)
Select Case LängeA
Case Is >= LängeB
AnzahlZeichen = LängeA
Case Is  ZeichenB Then
Cells(i, 1).Select
With ActiveCell.Characters(Start:=j, Length:=1).Font
.ColorIndex = 3
End With
Cells(i, 2).Select
With ActiveCell.Characters(Start:=j, Length:=1).Font
.ColorIndex = 3
End With
End If
Next j
Next i
End Sub


Anzeige
AW: zellinhalt vergleichen
18.06.2009 15:39:21
kerberus
Ptonka,
Vielen Dank. Werde das Ganze mal testen.
Kerbi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige