Attention à ne pas mélanger des variables et du texte, la bonne syntaxe serait :
Sheets("AD").Range("A1:" & Cells(y, 1).Address).Select
Disons que tu veux sélectionner les cellules A1 à A10, tu écrirais en VBA Range("A1:A10"). Dans ton exemple, l'addresse de A10 est obtenue par une variable. Donc on concatene "A1:" qui est constant avec Cells(y, 1).Address qui vaut A10 ( si y vaut 10 ). Si tu écrirais "A1: & Cells(y, 1).Address" Excel traiterais toute la chaine comme du texte et n'interpreterais pas la variable.