Microsoft Excel

Herbers Excel/VBA-Archiv

etwas komplexer vergleich zweier Spalten | Herbers Excel-Forum


Betrifft: etwas komplexer vergleich zweier Spalten von: Jonathan
Geschrieben am: 20.10.2008 08:27:04

Hallo liebe Experten,

ich stehe gerade vor einem, für mich etwas komplexeren, Problem. Ich denke aber, dass es für euch mit Sicherheit kein Problem darstellt.

Ich habe in einer Tabelle zwei Spalten (A + B). Jede der beiden Spalten kann den Wert "active" oder "on hold" haben. Die länge der Spalten ist variabel, da nach Aktualisierungen mal mehr oder weniger Werte vorhanden sind.

Nun zum Problem:
Es sollen immer die Werte aus A2 mit B2, A3 mit B3 usw. verglichen werden. Steht in Spalte A "active" und in B "on hold" muss in der gleichen Zeile in Spalte C das aktuelle Datum (dies sollte nach Möglichkeit nur der Wert sein - sprich, die eigentliche Datumsfunktion "HEUTE()" steht z.B.in einem anderen Tabellenblatt)

Umgekehrt, wenn also in A "on hold" und B "active" dann muss in Spalte D das aktuelle Datum (Wert).
Wenn die Zeilen der beiden Spalten die gleichen Werte haben, darf nichts passieren

Gibt es hierfür eine geeignete Lösung?

Vielen Dank schon mal vorab!

Gruß
Jonathan

  

Betrifft: AW: etwas komplexer vergleich zweier Spalten von: David
Geschrieben am: 20.10.2008 08:49:22

Hallo Jonathan.

So?

Option Explicit

Sub test()

Dim i

For i = 1 To Range("A65000").End(xlUp).Row
    If Cells(i, 1) = "active" And Cells(i, 2) = "on hold" Then
        Cells(i, 3) = Date
    ElseIf Cells(i, 1) = "on hold" And Cells(i, 2) = "active" Then
        Cells(i, 4) = Date
    End If
Next

End Sub



Gruß
David


  

Betrifft: AW: etwas komplexer vergleich zweier Spalten von: Jonathan
Geschrieben am: 20.10.2008 08:59:31

Hallo David,

herzlichen Dank für den schnellen Lösungsvorschlag. War genau das was ich gesucht habe!

Gruß
Jonathan


  

Betrifft: AW: etwas komplexer vergleich zweier Spalten von: Bertram
Geschrieben am: 20.10.2008 08:53:15

Hallo Jonathan,

Sub ActiveOnHold()

Dim i As Integer

For i = 1 To Sheets(1).Range("A1").End(xlDown).Row
    If Cells(i, 1) <> Cells(i, 2) Then
        If Cells(i, 1) = "active" Then
            Cells(i, 3) = Date
        Else
            Cells(i, 4) = Date
        End If
    End If
Next i
End Sub


Gruß
Bertram


Beiträge aus den Excel-Beispielen zum Thema "etwas komplexer vergleich zweier Spalten"