Références cellules

Résolu
debutantdumidi Messages postés 3 Statut Membre -  
debutantdumidi Messages postés 3 Statut Membre -
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. Lazarey Messages postés 3255 Date d'inscription   Statut Membre Dernière intervention   745
     
    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
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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. Lazarey Messages postés 3255 Date d'inscription   Statut Membre Dernière intervention   745
       
      Salut

      Pourquoi pas très pro ??
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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. Lazarey Messages postés 3255 Date d'inscription   Statut Membre Dernière intervention   745
       
      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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. debutantdumidi Messages postés 3 Statut Membre
       
      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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Range("A" & DerniereLigne & ":K" & DerniereLigne).Select
      0
    3. debutantdumidi Messages postés 3 Statut Membre
       
      Merci Eric, c'est tout bon...
      0