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 :

Utilisation de nom de cellule dans la formule d'une macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Utilisation de nom de cellule dans la formule d'une macro
    Bonjour!

    Petit problème qui ne me semblait pas compliqué, mais auquel je ne trouve pas la solution.

    Dans une feuille (disons "concat"), j'ai une cellule renommée "Surf".
    J'utilise une macro pour du postraitement qui va chercher des données, les colles dans la feuille "concat", et rentre des formules dans d'autres celulles.
    J'aimerai que ma macro écrive dans une cellule une formule qui fasse appele à la cellule "Surf", genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=R[-1]C/Surf*100"
    et ça ne marche pas! (erreur pendant l'excution de la macro)
    Quelqu'un pourrait me donner la synthaxe ou métode pour faire marcher ça?

    Merci beaucoup d'avance!

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    bonjour,
    Le mot magique "concaténation" (de chaine de caractère)
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=R[-1]C/" & Surf.address & "*100"

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse. Mais ça ne marche pas
    Apres avoir essayé plusieurs chose, la macro bug toujours avec Surf.adress parceque la macro créer une variable Surf qui est vide.

    Faut-il que je déclare Ma cellule Surf comme une variable à un moment donné, et comment ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 266
    Points : 348
    Points
    348
    Par défaut
    Bonsoir,

    avec l'enregistreur de macro, ça me donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=R[-1]C/Surf*100"
    soit exactement comme toi...

    Quel code d'erreur, tu obtiens?

    Ta feuille n'est pas protégée?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Une idée en passant
    Le code est bon, ça ne fait aucun doute.

    Essaye du côté du menu Outil > Option > onglet Calcul > coche Accepter des étiquettes dans les formules.

  6. #6
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut utilisation de []
    Bonjour,

    Dans ton exemple Surf correspond a quoi ? a une plage nommée, à un Range

    Exemple Pour définir un range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Surf as range
    Set surf = range("A1:B25")
    msgbox surf.adress
    Pour voir l'adresse d'une plage nommée :

    Edit oui, pour la valeur de ta plage nommée "SURF" :

    Edit2 : Autan pour moi, c'était une formule !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PeekNPoke Voir le message
    Le code est bon, ça ne fait aucun doute.

    Essaye du côté du menu Outil > Option > onglet Calcul > coche Accepter des étiquettes dans les formules.
    C'était exactement ça!!
    ça marche nickel maintenant!

    Merci beaucoup PeekNPoke, et merci a tous ceux qui ont répondu!

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

Discussions similaires

  1. [XL-2003] Utilisation d'une fonction VBA dans la formule d'une cellule
    Par robx2309 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/05/2011, 00h41
  2. [XL-2003] Remplacer des références par des noms de cellules dans des formules existantes
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/04/2010, 19h28
  3. nom de cellule dans une variable
    Par Domino40 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/10/2009, 18h14
  4. Utiliser des valeur de cellule dans un userform
    Par swissmade dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/07/2007, 19h38
  5. [Excel] Chercher un nom de cellule dans des formules
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2006, 17h43

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