Antwort
Da Du mit (3. Code Zeile)
ActiveCell.Row
nur dann den Wert B2 ausliest, solange Du auch irgendeine Zelle in der 2. Zeile markiert (=aktiv) hast, funktioniert das auch nur in diesem Fall (dabei ist es egal, ob Du A2, B2 ... oder Z2 aktiv hast - Hauptsache eine Zelle in der 2. Zeile). Jede in einer anderen Zeile aktive Zelle führt zum Auslesen von 0 und in der Folge zum Ergebnis 1.
Die einfachste Modifikation wäre dann auch, den Wert B2 in der dritten Zeile des Codes direkt auszulesen, denn dann spielt die aktive Zelle und deren Row() keine Rolle mehr.
count = Range("B2").Value