HERBERS Excel-Forum - das Archiv

Thema: Zellinhalte vergleichen | Herbers Excel-Forum

Zellinhalte vergleichen
Kaiser

Hallo
Ich benötige Eure Hilfe, bei der Erstellung eines Makros. Siehe Upload Datei.
https://www.herber.de/bbs/user/66612.xlsx
Also der Bereich wäre C4 - AG42 immer im Aktiven Tabellenblatt.
In Spalte C Zelle 4 soll als erstes geprüft werden, ob eine Hintergrundfarbe vorhanden ist.
Wenn ja keine Aktion - weiter zu C5 ....
Wenn keine Hintergrundfarbe vorhanden zB hier ab F4 soll geprüft werden ob der Wert von B4 und der Wert von F3 übereinstimmt. Wenn ja soll in dann "frei " eingetragen werden. Wenn Nein soll der Wert aus A4 eingetragen werden.
Bei F5 soll der Wert von B5 mit dem Wert von F3 verglichen werden. Widerrum wenn der Wert übereinstimmt "frei" eintragen ansonsten den Wert aus A5 eintragen.
In der nächsten Spalte wiederum soll in G4 soll der Wert aus B4 mit dem Wert aus G3 verglichen werden.
Aktionen wie oben.
Mit Formeln habe ich es hinbekommen, aber per Makro wäre es einfacher bei der Erstellung.
Ich hoffe ich habe mich verständlich ausgedrückt und hoffe auf Eure Hilfe.
MfG Jörg

AW: Zellinhalte vergleichen
welga

Hi Georg,
also probier mal das hier:
Sub test1()
Dim spa As Long, zei As Long
With ThisWorkbook.Sheets(1)
For zei = 4 To 42
For spa = 3 To 33
.Cells(zei, spa).Select
If Selection.Interior.Pattern <> xlNone Then GoTo nachste
If .Cells(zei, 2).Value = .Cells(3, spa).Value Then
.Cells(zei, spa).Value = "frei"
Else
.Cells(zei, spa).Value = .Cells(zei, 1).Value
End If
nachste:
Next spa
Next zei
End With
End Sub

Gruß
welga
AW: Zellinhalte vergleichen
Jörg

Hallo Welga
Hab es gerade probiert und mus sagen EINWANDFREI.
Erst mal VIELEN DANK dafür.
Habe mir heute nachmittag auch Gedanken gemacht und
folgendes erst mal für 1 Spalte geschrieben. Da müsste ich aber 31 Schleifen
hintereinander setzten und immer die Offsetwerte ändern, sowie 31 Variablen definieren.
Da ist Dein Code natürlich viel besser.
Sub MonatAusfüllen() erst mal 1 Spalte
a = Cells(3, 6)
For Each Zelle In Range("F4:F42")
If Zelle.Interior.ColorIndex = xlNone Then
If Zelle.Offset(0, -4).Value = a Then
Zelle.Value = "frei"
Else
Zelle.Value = Zelle.Offset(0, -5)
End If
End If
Next
End Sub
Also noch mal besten Dank
MfG Jörg