Références cellules

Résolu/Fermé
debutantdumidi Messages postés 3 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 8 juillet 2010 - 8 juil. 2010 à 11:20
debutantdumidi Messages postés 3 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 8 juillet 2010 - 8 juil. 2010 à 12:40
Bonjour,

Je débute eb VBA et j'utilise beaucoup l'enregistreur de macro pour arriver à mes fins.
Dans un classeur Excel je récupère la dernière ligne écrite avec :
DerniereLigne = Sheets("Edition").Range("U1")

Je sélectionne la cellule A1 par :
Range("A1").Select

Maintenant je souhaiterais sélectionner la cellule A1 en remplaçant le 1 par la variable DerniereLigne mais je n'arrive pas à trouver la bonne syntaxe.

Quelqu'un peut-il m'aider ?
D'avance merci.


3 réponses

Lazarey Messages postés 3239 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 21 mai 2012 745
8 juil. 2010 à 11:24
Salut,

En admétant que ta variable est déjà déclarée, tu peux utiliser la syntaxe suivante :

Range("A" & DerniereLigne ).Select 


Voila qui devrait fonctionner.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
8 juil. 2010 à 11:26
Bonjour,
Tu peux utiliser :
Range("A" & DerniereLigne)

pas très pro...

Ou alors utiliser Cells(ligne, colonne) comme ceci :
Cells(DerniereLigne, 1).Select


Rappel : les .Select sont à éviter un maximum en VBA car ils ralentissent la macro
0
Lazarey Messages postés 3239 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 21 mai 2012 745
8 juil. 2010 à 11:29
Salut

Pourquoi pas très pro ??
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
8 juil. 2010 à 11:37
Salut Lazarey,
C'est une remarque qui m'avais été faite par un très bon programmeur VBA sur ce forum. De fait, la syntaxe Cells est très explicite. Celle Range("Col" & variable) reste néanmoins à mes yeux de bidouilleur plus accessible à un novice...
Ceci doit constituer un débat pas très utile car pour moi l'essentiel est que ... ça fonctionne non?
0
Lazarey Messages postés 3239 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 21 mai 2012 745
8 juil. 2010 à 11:40
Oui, c'est sur, ça fonctionne et c'est bien ;)
Je te demande parce que j'utilise toujours Range qui est plus "lisible" je trouve et qui permet à des personnes qui veulent aller voir ton code de comprendre plus facilement. Après niveau performances, c'est pareil non ??
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
Modifié par eriiic le 8/07/2010 à 11:46
Bonjour,

Tant qu'on y est vu que tu débutes autant te donner aussi comment atteindre la dernière cellule de la colonne A :
[A65536].end(xlup).select

et pour le n° de ligne :
derlig=[A65536].end(xlup).row

Faire +1 pour avoir la 1ère ligne libre

En cas de besoin on peut compliquer un peu pour que la formule s'adapte automatiquement à excel 2003 et 2007

Et dernière colonne utilisée de la ligne 1 :
dercol=[IV1].end(xltoleft).column


eric
0
debutantdumidi Messages postés 3 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 8 juillet 2010
8 juil. 2010 à 12:20
Merci à vous tous pour votre aide mais il me reste encore un problème.
J'ai testé :
Range("A" & DerniereLigne ).Select
Et ça fonctionne très bien et je me positionne sur la bonne cellule.

Par contre j'ai voulu appliquer vos propositions à :
Range("A54:K54").Select
En remplaçant par
Range("A" & DerniereLigne:"K" & DerniereLigne).Select
Et là j'ai un message « erreur de compilation »
Pourquoi ?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
8 juil. 2010 à 12:34
Range("A" & DerniereLigne & ":K" & DerniereLigne).Select
0
debutantdumidi Messages postés 3 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 8 juillet 2010
8 juil. 2010 à 12:40
Merci Eric, c'est tout bon...
0