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 :

Problème formule VBA [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut Problème formule VBA
    Bonjour, j'essaie d'écrire une formule simple dans une cellule, et j'ai une erreur mais je ne comprends pas pourquoi.

    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ColonneD()
        Dim op As Integer
        op = Range("B" & Rows.Count).End(xlUp).Rows
        Range("D2:D" & op).Formula = "=SI(C1=C2;"x";C2)"
     
    End Sub
    Voici l'erreur :

    Erreur de compilation :
    Attendu : fin d'instruction


    Merci d'avance pour votre aide !

  2. #2
    Membre très actif Avatar de lionel86500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut
    Bonjour,

    Tu ne peut pas mettre de guillemet dans des guillemets
    j'ai eu le même problème et je l'ai solutionné comme cela

    j'ai changé Formula en FormulaLocal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub ColonneD()
        Dim op As Integer
        sguil = """"   ' cela représente 1 guillement
        ' MsgBox sguil
        op = Range("B" & Rows.Count).End(xlUp).Rows
        Range("D2:D" & op).FormulaLocal = "=SI(C1=C2;" & sguil & "x" & sguil & ";C2)"
     
    End Sub
    J'ai essayé ca marche

  3. #3
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Merci de ta rapide réponse !

    En prenant en compte ta réponse j'ai solutionné mon probleme comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D2:D" & op).FormulaLocal = "=SI(C1=C2;""x"";C2)"
    Et cela fonctionne, je te remercie beaucoup

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si l'on souhaite avoir une application pérenne, il est préférable d'utiliser la propriété Formula et de plus il faut utiliser la filiation complète de l'objet Range, à savoir la feuille et son classeur.
    Soit par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim op As Long
     With ThisWorkbook.Worksheets("Feuil1")
     op = .Range("B" & .Rows.Count).End(xlUp).Row
     .Range("D2:D" & op).Formula = "=IF(C1=C2,""x"",C2)"
     End With
    ps : Il faut éviter aussi de typer une variable comme un Integer pour connaître le nombre de lignes car il est possible d'avoir plus de 32767 lignes
    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

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour Lionel,
    Tu ne peut pas mettre de guillemet dans des guillemets
    Dans une chaîne de caractères utilisée comme valeur de la propriété Formula ou FormulaLocal, ton affirmation est fausse.
    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

  6. #6
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    Bonjour Philippe,

    Merci pour tes precisions.

    Je n'ai pas donné mon code entier et je travaille déjà sur la meme feuille précédemment. Est-il donc necessaire de rajouter du code comme tu l'a fait pour préciser la feuille ?

    J'ai utilisé un Integer parce que je suis certain qu'il n'y aura pas plus de 50 lignes.

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ai pas donné mon code entier et je travaille déjà sur la meme feuille précédemment. Est-il donc necessaire de rajouter du code comme tu l'a fait pour préciser la feuille ?
    L'affichage du code de ta procédure publiée à l'ouverture de cette discussion ne le reflète pas.
    Si tu as activé la feuille en début de procédure, il est évident que les objets Range utilisés dans cette procédure font partie de cette feuille mais ce n'est pas une bonne pratique.
    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

  8. #8
    Membre confirmé Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Par défaut
    C'est noté !

    Merci pour tes precisions

    Bonne journée

  9. #9
    Membre très actif Avatar de lionel86500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut
    Bonjour,

    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour Lionel,

    Dans une chaîne de caractères utilisée comme valeur de la propriété Formula ou FormulaLocal, ton affirmation est fausse.

    je n'avais pas essayé de mettre double guillemet c'est vrai.
    quand j'ai rencontré le problème je l'ai solutionné comme le l'ai invoqué.

    en ce qui concerne formula ou formulalocal (je prends la seconde )

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour Lionel,
    en ce qui concerne formula ou formulalocal (je prends la seconde )
    C'est ton choix mais si comme l'indique ta signature, tu es développeur informatique et que tu persistes à garder la propriété FormulaLocal pour écrire des formules dans Excel, je te promet bien du plaisir si un jour tu dois développer une application pour une entreprise française ou belge qui serait ou aurait une filiale étrangère.
    La propriété Formula a pour avantage de pouvoir être utilisée quelque soit l'interface linguistique d'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

  11. #11
    Membre très actif Avatar de lionel86500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut
    Non pas de filiale à l'étranger.

    Jusqu'à ce jour je n'ai jamais connu de soucis.

    je pense que tu es un expert en VBA Excel
    pour ma part je me suis auto formé, j'ai appris le vba par l'exemple avec Internet.
    Aujourd'hui j'arrive à développez des applications complexes, je suis sur quelle pourraient être optimisés mais elles fonctionnent et les utilisateurs en sont ravis.

  12. #12
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    J'adore cette partie
    ...elle pourraient être optimisés mais elles fonctionnent et les utilisateurs en sont ravis
    Comme Windows quoi

  13. #13
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    je pense que tu es un expert en VBA Excel
    pour ma part je me suis auto formé, j'ai appris le vba par l'exemple avec Internet.
    Aujourd'hui j'arrive à développez des applications complexes, je suis sur quelle pourraient être optimisés mais elles fonctionnent et les utilisateurs en sont ravis.
    Je suis également un autodidacte et n'ai aucune formation de base en informatique.
    Cependant je suis curieux et me remets constamment en question et suis toujours ouvert à ceux qui ont plus d'expériences que moi et lorsque quelqu'un me dit "Attention j'ai rencontré tel problème et l'ai résolu ainsi", je me précipite sur mes codes pour les modifier.

    Non pas de filiale à l'étranger.
    Avec le nombre de fusions, de rachats d'entreprises, je me méfierais

    je suis sur quelle pourraient être optimisés
    Ce n'est pas une question d'optimisation mais simplement du bon sens qui pérennise une application mais surtout facilite la maintenance et t'évitera peut-être des heures de recherche le jour où ton application sera utilisée par une machine avec une autre interface linguistique.
    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

  14. #14
    Membre très actif Avatar de lionel86500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut
    Moi aussi j'ai appris avec entre autre ce forum et j'essai toujours de voir ce qui se fait.
    et quand une question est posée et que j'ai rencontré le problème et trouvé la solution je la donne.
    c'est peu être pas toujours la meilleure, mais elle la le mérite d'être juste.

    je vais donc ne plus faire de fausses notes et m'abstenir de répondre

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

Discussions similaires

  1. Problème d'execution d'une formule VBA
    Par Nemerion dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/04/2013, 19h23
  2. VBA problème formule
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/06/2011, 15h23
  3. problème formule vba excel
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/04/2008, 15h43
  4. [VBA-E97]Problème formule addition
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/04/2007, 19h38
  5. [VBA-E] Problème formule
    Par nattyman dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/08/2006, 10h55

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