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 :

Ecrire une formule dans une cellule [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 77
    Points
    77
    Par défaut Ecrire une formule dans une cellule
    Bonjour à tous,
    Je crée plusieurs feuilles par recopie sous VBA et souhaite réaliser un report d'une feuille sur la suivante.
    Je voudrais, dans la feuille appelée Sept (pour Septembre), en E6, écrire la formule "=Août 2016!L6C9", sachant que 2016 est stocké dans la variable numérique Annee.
    Pour cela j'ai écrit le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Sheets(2)
        .Select
        .Name = "Sept"
        .Cells(4, 4).Value = Nom & " " & Prenom
        .Cells(5, 4).Value = "Septembre " & Annee
        Formule = "=Août " & CStr(Annee) & "!L6C9"
        .Range("E6").FormulaR1C1Local = Formule
    End With
    A la place de ma formule j'obtiens "=Août '2016'!L6C9". Vous remarquerez les apostrophes de part et d'autre de 2016, ce qui déclenche le message d'erreur #NOM

    Pouvez-vous m'indiquer la syntaxe correcte

    Merci
    Mille jours d’entraînement pour forger, dix milles jours d’entraînement pour polir.
    Shimen Musashi - Gorin-no-sho Rouleau de l’eau

  2. #2
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour Horemheb,

    Pour voir la bonne syntaxe d'une formule :
    • Tu l'écris toi même dans la cellule E6
    • Lance l'enregistreur de macro
    • Place toi dans E6
    • F2
    • Enter
    • Stop l'enregistreur



    La macro vient de te donner la solution.
    Il n'y a plus qu'a adapter.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  3. #3
    Membre régulier Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 77
    Points
    77
    Par défaut
    La macro ne permet pas d'utiliser la variable de date, ce qui ne règle pas le problème de la présence des apostrophes autour de l'année
    Mille jours d’entraînement pour forger, dix milles jours d’entraînement pour polir.
    Shimen Musashi - Gorin-no-sho Rouleau de l’eau

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Essaie d'extraire juste les caractères de l'année avant de concaténer

    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Citation Envoyé par horemheb Voir le message
    La macro ne permet pas d'utiliser la variable de date, ce qui ne règle pas le problème de la présence des apostrophes autour de l'année
    L'idée de l'enregistreur est juste pour voir la syntaxe exacte d'une formule qui fonctionne.
    Car
    Citation Envoyé par horemheb Voir le message
    en E6, écrire la formule "=Août 2016!L6C9", sachant que 2016 est stocké dans la variable numérique
    est faux !

    Je remarque aussi que dans ton code, une fois tu convertis l'année en String et pas la seconde fois.
    Concaténer des chiffres les convertis automatiquement en string.

    Petit test pour t'en convaincre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
        Dim i As Long, j As Integer, k As Double
            MsgBox TypeName(i & j & k)
    End Sub
    Pour ce qui est de ta problématique, il y a une grosse différence entre un onglet nommé Août 2016 et un autre nomme Août2016.
    Pour faire référence à une cellule de l'un, la syntaxe va être =Août2016!$I$6 (sans quotes) alors que pour l'autre ça va être ='Août 2016'!$I$6 (avec quotes pour indiquer que l'espace est dans le nom de l'onglet).


    Voila une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formule = "='Août " & annee & "'!L6C9"
    Excel va interpréter une formule syntaxiquement valide et ne va donc pas décider de la modifier par lui même comme il les fait en ajoutant les quotes dans ton cas.

    En espérant être clair
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  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 764
    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 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut Ecrire des formules dans des cellules avec VBA
    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

  7. #7
    Membre régulier Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 77
    Points
    77
    Par défaut
    Merci Antonysansh, je ne connaissais pas cette subtilité des apostrophes dans l'écriture des noms de feuille, d'où mon souci pour obtenir une formule correcte. J'ai rectifié, ça marche.
    Encore merci.
    Mille jours d’entraînement pour forger, dix milles jours d’entraînement pour polir.
    Shimen Musashi - Gorin-no-sho Rouleau de l’eau

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

Discussions similaires

  1. [Toutes versions] Imbriquer une formule dans une formule à l'aide de l'outil Insertion de fonction
    Par Philippe Tulliez dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/08/2014, 11h21
  2. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  3. [XL-2010] Formule : attribuer une formule dans une cellule
    Par popi33370 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2014, 18h06
  4. Réponses: 3
    Dernier message: 29/01/2008, 12h08
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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