Bonjour,
J'utilise une formule qui me permet de nommer une plage de cellule dans la feuille DATA dont la taille peut varier (la cellule A1 contient l'en-tête):
with sheets ("DATA")
.Range("A2:A" & .Range("A65536").End(xlUp).row).name = "liste_pc"
end with
Tout se passe bien si j'ai plus de 2 lignes : données en A2 et en A3
Mais si je n'ai qu'une seule ligne ça se corse car la plage n'est pas valable et ça me retourne une erreur : donnée uniquement en A2
Et c'est logique vu que la formule donne .Range("A2:A2").name = "liste_pc"
alors que cela devrait être
.Range("A2").name = "liste_pc"
Du coup, j'ai pensé à une solution qui pourrait être
- création d'une variable 't' qui serait la dernière ligne
- on utiliserait la condition if
ce qui donnerait :
t= .Range("A65536").End(xlUp).row
if t < 2 alors .range("A2:A" & t).name="liste_pc
else
.range ("A2").name="liste_pc"
end if
mais peut être avez-vous une solution plus "élégante" ou plus efficace
Merci pour vos réponses.
Bonne soirée
damien
J'utilise une formule qui me permet de nommer une plage de cellule dans la feuille DATA dont la taille peut varier (la cellule A1 contient l'en-tête):
with sheets ("DATA")
.Range("A2:A" & .Range("A65536").End(xlUp).row).name = "liste_pc"
end with
Tout se passe bien si j'ai plus de 2 lignes : données en A2 et en A3
Mais si je n'ai qu'une seule ligne ça se corse car la plage n'est pas valable et ça me retourne une erreur : donnée uniquement en A2
Et c'est logique vu que la formule donne .Range("A2:A2").name = "liste_pc"
alors que cela devrait être
.Range("A2").name = "liste_pc"
Du coup, j'ai pensé à une solution qui pourrait être
- création d'une variable 't' qui serait la dernière ligne
- on utiliserait la condition if
ce qui donnerait :
t= .Range("A65536").End(xlUp).row
if t < 2 alors .range("A2:A" & t).name="liste_pc
else
.range ("A2").name="liste_pc"
end if
mais peut être avez-vous une solution plus "élégante" ou plus efficace
Merci pour vos réponses.
Bonne soirée
damien