# Excel - VBA Makro zum vergleichen



## Fabian (26. August 2005)

Hallo,

ich hab irgendwo folgendes Script gefunden:


```
Sub VergleichKopieren()
    Dim rng As Range, rngCell As Range
    Dim iRow As Integer
    Set rng = Range("A1").CurrentRegion
    For Each rngCell In rng.Cells
        If WorksheetFunction.CountIf(rng, rngCell.Value) > 1 Then
            If WorksheetFunction.CountIf(Columns(3), rngCell.Value) < 1 Then
                iRow = iRow + 1
                Cells(iRow, 3).Value = rngCell.Value
            End If
        End If
    Next rngCell
End Sub
```

Das Script vergleich Spalte A + B und schreibt gefundene (= gleiche) Einträge in Spalte C. Ich bekomm es nicht hin, dass er einträge, die NICHT gleich sind in Spalte C schreibt.

Hat jemand Tipps? ;-)

Danke.


----------



## WaGutSo (12. Januar 2006)

Hallo Fabian
Das Makro ‚Sub VergleichKopieren()’ führ keinen Vergleich durch (in den Tiefen von Excel, für den Anwender unsichtbar, schon) sondern zählt das Vorkommen der Elementen (Einträge). Kommt ein Element (Eintrag) öfter als einmal vor, wird das Elementen (Eintrag) in Spalte 3 ausgegeben. 
Um diese Funktion umzudrehen 
*= Elemente (Einträge) die nur einmal vorkommen ausgeben *
muss nur in der Zeile 6 der Ausdruck ‚*> 1*’ in ‚*= 1*’ geändert werden. Das neue Makro:


```
Sub NurEinmalig()
    Dim rng As Range, rngCell As Range
    Dim iRow As Integer
    Set rng = Range("A1").CurrentRegion
    For Each rngCell In rng.Cells
        If WorksheetFunction.CountIf(rng, rngCell.Value) = 1 Then
            If WorksheetFunction.CountIf(Columns(3), rngCell.Value) < 1 Then
                iRow = iRow + 1
                Cells(iRow, 3).Value = rngCell.Value
            End If
        End If
    Next rngCell
End Sub
```

Ist Das die Antwort die Du gesucht hast?

Walter Gutermann


----------

