Références cellules

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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.
    1. Modérateur
      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
      1. Salut

        Pourquoi pas très pro ??
      2. Modérateur
        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?
      3. 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 ??
    2. Contributeur
      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
      1. 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 ?
      2. Contributeur
        Range("A" & DerniereLigne & ":K" & DerniereLigne).Select
      3. Merci Eric, c'est tout bon...