.Range(.Cells.Find(What:=header,...............
find gibt ein Ergebnis zurück, Du verwendest es direkt weiter ohne Prüfung.
dim rng as Range
set rng = .cells.find(.......
if not rng is nothing then
... hier dein code um mit dem Ergebnis zu arbeiten.
end if
was die Schleife um das find soll weis ich nicht. Im Grunde verwendet man entweder eine schleife um etwas zu finden oder find(), oder Application.Match()
Bei deinem Bespiel mit .range(.cells.find.... solltest du wie gezeigt erst prüfen ob es ein brauchbares Ergebnis gibt, bevor du es weiterverwendest.
UNd die Suchrange eingrenzen, statt immer das ganze Blatt zu durchsuchen. Deinen ganzen Code habe ich nicht im Detail analysiert. Dazu fehlt mir die Zeit und deshalb antworteten dir auch weniger Leute als du evtl. erwartet hast.
|