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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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 )

+ 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