Als Antwort auf diesen Beitrag
ja, denken ist manchmal schlecht.
die Ursache für deinen Fehler liegt in dieser Zeile:
' Formeln für Spalten N, O, Q, R
wsNV.Range("N" & startZeile & ":N" & letzteZeileM).FormulaLocal = _
"=""'"" & XVERWEIS(M" & startZeile & ";$D$254:$D$" & letzteZeileD & ";$E$254:$E$" & letzteZeileD & ";"""";0;1)"
du stellst hier dem Ergebnis noch das Hochkomma ' voraus (
.FormulaLocal = "=""'"" & ...)
das Hochkomma ist das Texterkennungszeichen für Excel, dh wenn du was in eine Zelle schreibst, das das mit dem Hochkomma beginnt, dann ist das immer Text.
dh wenn du hinterher die Formeln in Werte wandelst, bleiben sie auch bei einem XVerweis-Ergebnis "" technisch gesehen Text (halt ohne Zeichen) und diese Zellen werden keine Leerzellen (obwohl sie so aussehen)
damit wird hier auch deine spätere Prüfung mit If IsEmpty() nicht TRUE sondern bleibt FALSE, weil diese Zellen Text enthalten.
somit bekommst du auch für Spalte N kein Ergebnis.
Abhilfe wäre also, dass du hier das Hochkomma in der Formel weglässt, so wie in den anderen Formeln auch.
Sollte das Hochkomma an dieser Stelle aus einem anderen Grund notwendig sein, dann kannst auch die Prüfung auf Leerzelle so machen:
If datenN(j, 1) = "" Then uniqueN(datenM(j, 1)) = True
das ="" ist da weniger sensibel als das IsEmpty, weil es eben auch bei einem Text ohne Inhalt ein TRUE ergibt und nicht nur bei einer echten Leerzelle.
Gruß Daniel