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 :

intégrer des " dans une string


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Points : 41
    Points
    41
    Par défaut intégrer des " dans une string
    quelqu'un a une idée de comment faire ?

    Question connexe : si quelqu'un voit une erreur dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Cells(2, 14).Formula = "=SI(ET(" & nom & "!$P$2=0;" & nom & _
     "!$P$3=0;" & nom & "!$P$4=0;" & nom & "!$P$5=0);" & """" & ";SI(ET(((" & nom & _
    "!$P$5-" & nom & "!$P$3)/(" & nom & "!$P$4-" & nom & "!$P$2)*(1026-" & nom & _
    "!$P$2)+" & nom & "!$P$3)/" & nom & "!$B$1031<1,05;((" & nom & "!$P$5-" & nom & _
    "!$P$3)/(" & nom & "!$P$4-" & nom & "!$P$2)*(1026-" & nom & "!$P$2)+" & nom & _
    "!$P$3)/" & nom & "!$B$1031>0,95);attention;" & """))"
    Bon, d'accord, elle est illisibe

  2. #2
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir

    je t'ai ajouté
    des ' si tes noms de feuilles ont des espaces
    des "
    des caractères de continuité (& _) --> aussi ajoutés sur ton post
    de quoi d'embrouiller sur la fin ""attention:-("","":-)""))" vs ""attention"",""""))"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Cells(2, 14).Formula = _
            "=IF(AND('" & nom & "'!$P$2=0,'" & nom & "'!$P$3=0,'" & nom & _
                "'!$P$4=0,'" & nom & "'!$P$5=0),"""",IF(AND((('" & nom & "'!$P$5-'" & nom & _
                "'!$P$3)/('" & nom & "'!$P$4-'" & nom & "'!$P$2)*(1026-'" & nom & "'!$P$2)+'" & nom & _
                "'!$P$3)/'" & nom & "'!$B$1031<1.05,(('" & nom & "'!$P$5-'" & nom & "'!$P$3)/('" & nom & _
                "'!$P$4-'" & nom & "'!$P$2)*(1026-'" & nom & "'!$P$2)+'" & nom & "'!$P$3)/'" & nom & _
                "'!$B$1031>0.95),""attention:-("","":-)""))"
    cordialement


    edit N'hésite pas à utiliser l'éditeur de macro, la formule sort presque tout faite, il te reste à remplacer le nom de feuille (par ex: Feuil1) par "' & nom & "' et le tour est joué.

  3. #3
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    Bonsoir,

    Pas mal de choses à changer : remplacer les
    • Les SI() par des IF()
    • Les ET() par des AND()
    • Les ";" par des ","

    Voici un exemple qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Test()
    Dim Nom As String
        Nom = "Feuil2"
        ActiveCell.Formula = "=IF(" & Nom & "!$D$13 = 0,1,0)"
    End Sub
    Je te laisse adapter ta looooooooooongue formule; Bon courage
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

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

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    SAlut

    Bon j'ai mis du temps et il y a deja des reponse mais je met qd meme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(5, 1).FormulaLocal = "=If(And(" & nom & "!$P$2=0;" & nom & "!$P$3=0;" & nom & "!$P$4=0;" & nom & "!$P$5=0);;IF(And(((" & nom & "!$P$5-" & nom & "!$P$3)/(" & nom & "!$P$4-" & nom & "!$P$2)*(1026-" & nom & "!$P$2)+" & nom & "!$P$3)/" & nom & "!$B$1031<1,05;((" & nom & "!$P$5-" & nom & "!$P$3)/(" & nom & "!$P$4-" & nom & "!$P$2)*(1026-" & nom & "!$P$2)+" & nom & "!$P$3)/" & nom & "!$B$1031>0,95);attention;;))"
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    rebonsoir,

    vite fait, je ne crois pas que ta solution soit la bonne, sur la fin il me semble qu'il faut
    et pas enfin de ce que j'ai compris de la formule.@+
    fred

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

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    J'avoue ne pas mettre interessé au sens de la formule :s
    j'ai fait en sorte que la ligne compile peut etre que certaine partie de la formule n'etaient pas fausses mais que je les ai viré quand meme au cours de mes essais, les ;""""; par exemple car je voyais pas l'interet.

    Un truc me semble bizard sur la formule que j'ai placé, c'est les ';', comme l'indique Bigalo au debut, je me suis aussi dis que les ';' devaient etre remplacés par des ',', mais ca marche meme avec les ';'

    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Points : 41
    Points
    41
    Par défaut
    Merci !!!

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

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Ha ok si je suis co* j'ai compris bien sur tu as raison Fred ;""""; pour avoir des chaine vide dans le corp de la formule

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #9
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re Qwazerty

    j'ai aussi vu que tu avais laissé les ; je crois que ça fonctionne car et non Je m'avance peut être.

    cordialement

    edit c'est pourquoi j'ai mis ""attention:-("","":-)""))", histoire de simplifier avec les parenthèses

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

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    +1 encore
    Effectivement mon FormulaLocal permet de faire plein de chose qui au final cré des erreurs dans tous les sens

    bonne soirée
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut
    juste pour éprouver mes humbles compétences en VBA (pas ma formation), ne pouvait-on pas utiliser des chr(34) au lieu des guillemets, pour ceux qui sont "non-VBA" ?

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "&chr(34) & attention & chr(34) & ";" & chr(34) & chr(34) & ";
    ça évite d'avoir trop de guillemets...

    pas testé cela dit
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

  12. #12
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonjour,

    Ce n’est pas possible : le compilateur attend des guillemets de part et d’autre de chaque chaine de caractères, et Chr(34) à la place n’est pas accepté, même si cela correspond à un guillemet en ASCII : Chr() est une fonction que l’on peut appeler, mais cela ne modifie pas les règles de compilation : un guillemet, résultat d’une fonction, ne peut remplacer un guillemet explicite, attendu par le compilateur.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2007, 18h48
  2. Remplacer des balises par des valeurs dans une String
    Par RadicalBob dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2007, 15h22
  3. [RegEx] Remplacer des caractères dans une string
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 22h26
  4. Mettre des espaces dans une string à intervalles réguliers.
    Par benitoelputoamo dans le forum Général Python
    Réponses: 3
    Dernier message: 15/11/2006, 16h14
  5. LYCOS ET MYSQL - Intégrer des images dans une base!
    Par archeo dans le forum Installation
    Réponses: 3
    Dernier message: 06/04/2004, 13h45

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