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 :

Différence entre range et cells pour une formule [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 501
    Points : 3 062
    Points
    3 062
    Par défaut Différence entre range et cells pour une formule
    Bonjour tout le monde

    Je sais bien que le titre fait un peu simplet, mais une question me taraude depuis longtemps (sans m'empêcher de dormir rassurez-vous ).

    Pourquoi, en étant depuis la Feuil1, la première ligne de code fonctionne et pas la deuxième ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Sheets("Feuil2").Range("A1:A3").FormulaR1C1 = "=RC[1]+1"
        Sheets("Feuil2").Range(Cells(1, 3), Cells(3, 3)).FormulaR1C1 = "=RC[1]+1"
    D'autant plus que cette deuxième ligne fonctionne quand on est sur la Feuil2.

    En fait c'est parce que j'aimerai bien faire mes formules dans les feuilles sans avoir à y aller et quand même utiliser Cells(ligne,colonne) car c'est plus pratique pour les variables.

    Bonne nuit et merci à ceux qui prendront le temps de me répondre.

    Pierre

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    C'est normal, tu veux definir une plage de cellule se trouvant dans la feuille 2, en utilisant comme bornes, des cellules se trouvant dans la feuil1.

    Il faut mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range(Sheets("Feuil2").Cells(1, 3), Sheets("Feuil2").Cells(3, 3)).FormulaR1C1 = "=RC[1]+1"
    Autre "astuce" géniale avec Cells, c'est que tu peux nommé les colonne avec du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range(Sheets("Feuil2").Cells(1, "C"), Sheets("Feuil2").Cells(3, "C")).FormulaR1C1 = "=RC[1]+1"
    Je trouve ca super lisible et pratique

    ++
    Qwaz

  3. #3
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 501
    Points : 3 062
    Points
    3 062
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Salut
    C'est normal, tu veux definir une plage de cellule se trouvant dans la feuille 2, en utilisant comme bornes, des cellules se trouvant dans la feuil1.

    Il faut mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range(Sheets("Feuil2").Cells(1, 3), Sheets("Feuil2").Cells(3, 3)).FormulaR1C1 = "=RC[1]+1"
    Ah, OK, OK, OK. Ça alourdit un peu le code, mais bon je vais me laisser tenter.

    Autre "astuce" géniale avec Cells, c'est que tu peux nommé les colonne avec du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range(Sheets("Feuil2").Cells(1, "C"), Sheets("Feuil2").Cells(3, "C")).FormulaR1C1 = "=RC[1]+1"
    Je trouve ca super lisible et pratique
    Effectivement, ça aussi c'est vraiment bien.

    Adopté.

    Pierre

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Pour alléger le code utilise un with

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with Sheets("Feuil2")
       .Range(.Cells(1, "C"), .Cells(3, "C")).FormulaR1C1 = "=RC[1]+1"
    end With
    Ou déclare une variable worksheet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim TheWs as worksheet
     
    Set theWs = Sheets("Feuil2")
    TheWs .Range(TheWs .Cells(1, "C"), TheWs .Cells(3, "C")).FormulaR1C1 = "=RC[1]+1"


    ++
    Qwaz

+ 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. Différence entre méthode d'inclusion d'une feuille CSS
    Par Death83 dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 11/01/2006, 15h00
  3. Déterminer Algo pour une formule mathématique
    Par jekyll_omiwane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/01/2005, 18h28
  4. différence entre varchar et text pour l'occupation mémoire
    Par champion dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/12/2004, 18h02
  5. Différence entre majuscule et minuscule dans une requête
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/06/2004, 14h42

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