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

  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.
    0
    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
      0
      1. Salut

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