Salut jpmalb,
Salut l'équipe,
pour répondre à ta question : pourquoi ?
Ta première instruction calcule la dernière ligne non vide.
Si ta feuille est vide, elle donne comme résultat 1; si elle n'est pas vide, elle donnera 2, 3,...
derLigne = Range("A" & Rows.Count).End(xlUp).Row
Ce qui ne va pas, c'est que ta deuxième instruction ne placera le curseur sur la première ligne libre QUE SI derligne est différente de 1 !
Comme ta feuille était vide et donc que derligne = 1, ça ne risquait pas de te donner autre chose que 1 jusqu'à la fin des temps !!
If derLigne <>1 then
derLigne = Range("A" & Rows.Count).End(xlUp).Row +1
End If
Donc, dans le cas où tu veux utiliser une feuille sans en-tête de colonne, pour calculer ta première ligne libre, il faut faire :
iRow = IIf([A1] = "", 1, Range("A" & Rows.Count).End(xlUp).Row + 1)
A+