IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Signification de Range(Cell).Cells(Row, column)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 31
    Points
    31
    Par défaut Signification de Range(Cell).Cells(Row, column)
    Bonjour à tous,

    J'essaie de déchiffrer un programme en VBA. Or, je ne connais pas très bien le VBA.
    Une ligne m'intrigue.
    La personne itère sur des lignes en utilisant une variable "LigneCourante" de type Long.

    Or, je lis l'instruction suivante dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = Range("A2").Cells(LigneCourante, 6)
    Je comprends que "Cells(LigneCourante, 6)" permet de sélectionner la cellule à la ligne LigneCourante et à la colonne 6.

    Mais pourquoi préfixer par la sélection de la cellule "A2"? Qu'est-ce que ça veut dire de partir d'une cellule donnée (A2) pour au final en sélectionner une autre (LigneCourante, 6)?

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Oui, tu as raison
    On pourrait simplement écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = Cells(LigneCourante + 1, 6)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Donc est-ce qu'il s'agit de la cellule (LigneCourante, 6) PAR RAPPORT à A2?

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Range("A2").cells(1,1) c'est A2
    Range("A2").cells(2,1) c'est A3
    Range("A2").cells(1,2) c'est B2
    ...etc
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    D'accord merci!!!

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour ajouter un élément de réponse à celle de Mercatog que je salue au passage.
    C'est une syntaxe que j'utilise souvent pour lire ou écrire dans des tables de données surtout si elles sont en décalage par rapport aux lignes et colonnes d'une feuille Excel.
    Par exemple. Imaginons une table de données se trouvant en B3:E11
    Avec le code ci-dessous, je peux lire la 1ère ligne , 1ère colonne de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim db As Range
     Set db = ThisWorkbook.Worksheets("Feuil1").Range("B3").CurrentRegion
     Debug.Print db.Address
     Debug.Print db.Cells(1, 1)
    L'objet db représente bien cette table (B2:E11) et db.cells(1,1) la première ligne et première colonne de la table soit la cellule B3 de la feuille Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence entre Range et cells
    Par bibvba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2017, 12h36
  2. Convertir Range en Cells
    Par Sakapatate dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2008, 14h18
  3. Définition d'un range par Cells(), Cells()
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2008, 22h11
  4. Export Excel - Souci avec Range et Cells
    Par timoth dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/02/2008, 15h00
  5. Réponses: 1
    Dernier message: 25/08/2006, 07h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo