Bonjour atlonia, eriiic,
en complément de la réponse d'eriiic, note que [A2] est la notation abrégée de Range("A2") ; c'est donc la cellule A2 de la feuille qui est indiquée par ta variable f ; bien sûr, c'est la même chose pour f.[A3000], donc la cellule A3000 de la feuille f.
attention : la 1ère parenthèse droite doit plutôt être à la fin, comme ceci :
For Each c in Range(f.[A2],f.[A3000].end(xlup))
ainsi, pour ta feuille f : [A3000].end(xlup) retourne la 1ère cellule non vide de ta colonne A, au-dessus de ta ligne 3000 ; ce sera par exemple A800 ; et dans ce cas, ton Range (la plage) sera : A2:A800
la barre verticale est faite avec Alt Gr 6 (pas par Alt 6), et comme mentionné par eriiic, c'est un caractère de redirection ; avec l'ancien DOS (Disk Operating System), et toujours valable dans une fenêtre d'invite de commandes, ce caractère sert à rediriger la sortie d'une commande DOS en entrée d'une autre commande DOS ; par exemple : dir | more redirige la sortie de la commande dir (liste des fichiers) en entrée de la commande more (qui est un filtre pour faire une pause en cas de liste trop longue pour tenir sur un seul écran : ça affiche « -- Suite -- ») et ça attend une action de l'utilisateur : Ctrl c pour stopper la commande ou une autre touche pour afficher la suite de la liste ; le mot « pipe » employé par eriiic n'est pas une pipe qu'on fume mais l'abréviation du mot « pipeline » : c'est le canal de redirection ; le caractère barre verticale « | » n'est pas utile dans ton instruction VBA.
dhany