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 :

précision sur parenthèses et guillemets


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut précision sur parenthèses et guillemets
    Bonjour,
    Je découvre l'utilisation de VBA. Qui pourrait m'éclairer sur l'utilisation des parenthèses et des guillemets.
    J'ai téléchargé les tuto sur ce site, mais ça reste assez flou.
    J'ai modifié un code créé par l'un d'entre vous pour une utilisation perso mais j'ai galèré pour mettre les parenthèses et guillemets aux bons endroits pour que ça fonctionne.

    merci d'avance.

  2. #2
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    D'une façon générale dans VBA, les guillemets encadre du texte.
    Ex MsgBox "Bonjour"

    Quand aux parenthèses elles sont utilisées principalement dans les syntaxes, les conditions ou les calculs.
    Pour les syntaxes le mieux reste l'utilisation de l'aide.

    S'il te faut d'autres infos soit plus clair dans ta demande

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonjour et merci de votre réponse.

    Je vais illustré ma question à partir du morceau de code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    formule = "=CountIF(" & P.Address & ":" & P.Offset(30, 0).Address & "," & Chr$(34) & ">" & x.Value & Chr(34) & ")"
        formule = formule & "/"
        formule = formule & "COUNTA(" & P.Address & ":" & P.Offset(30, 0).Address & ")"
        cible.Formula = formule
    c'est une formule excel qui a été traduite (pas par moi ) mais elle fonctionne.
    J'ai essayé de la trduire en français avec formulalocal, j'ai mis beaucoup de temps à placer les guillemets et parenthèses aux bons endroits.

    pour les guillemets, les formules sont considérées comme texte ?
    Les adresses des cellules également ?
    Et le signe = idem ?

    Quant au signe & qui sert si j'ai bien compris à réunir (concaténer) des morceaux de codes, est ce le but dans la formule où il encadre les références des cellules ?

    Merci de vos lumières

  4. #4
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Je vais tenter de te répondre le plus clairement possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    formule = "=CountIF(" & P.Address & ":" & P.Offset(30, 0).Address & "," & Chr$(34) & ">" & x.Value & Chr(34) & ")"
        formule = formule & "/"
        formule = formule & "COUNTA(" & P.Address & ":" & P.Offset(30, 0).Address & ")"
        cible.Formula = formule
    Ce bout de code permet d'écrire, par VBA, une formule dans une cellule Excel.
    La formule est "construite" dans la variable formule et la cellule est représentée par cible. d'où la dernière ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cible.formula = formule
    Il utilise 2 fonctions CountIf et CountA que je ne connaîs pas mais qui visiblement s'utilisent comme suit
    CountIf(PlageCel, Condition) compte toutes les cellules de la plage qui répondent à la condition.
    CountA(PlageCel) compte toute les cellules de la plage.
    Ici la plage de cellule est représentée par P.Address.Offset(30, 0).Address
    Soit une première cellule et les 30 suivantes dans la même colonne.
    La condition est "> xx" ou xx est la valeur de x.Value

    Au final Si
    P.adresse = A1
    x.Value = 30
    ca donnerait quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CountIf(A1:A31,">30")/countA(A1:A30)
    Soit compter le nombre de cellule de la plage A1:A31 qui sont > 30 et les diviser par le nombre de cellule de la plage A1:A30

    J'espère avoir été clair

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonsoir j.michel,

    Merci de tes explications, elles décrivent en effet ce qui se passe dans ma formule. countif est la traduction de la formule excel "nombre.si" et counta "NBVAL".
    Mais la n'était pas la question, je m'interrogeais sur l'utilisation et l'emplacement des guillemets et du &.

    merci

  6. #6
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Citation Envoyé par nazaire Voir le message
    je m'interrogeais sur l'utilisation et l'emplacement des guillemets et du &.
    Ooops .....

    Alors en plus simple:
    Les guillements encadrent toutes les parties de texte brut de la formule
    Les & permettent effectivement de concatener des chaines de caractères entre elles ou d'jouter à du texte brut des variables de type string

    Ex:
    "CountIf(" en texte brut
    puis & P.Address pour ajouter une varaible qui contient une chaine de caractères.

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

Discussions similaires

  1. Précision sur Oracle 9iAS r2
    Par Patmane dans le forum Oracle
    Réponses: 9
    Dernier message: 18/03/2007, 04h41
  2. Précisions sur l'Override
    Par WebPac dans le forum Langage
    Réponses: 7
    Dernier message: 26/10/2004, 08h09
  3. Précisions sur Import/export
    Par electro dans le forum Import/Export
    Réponses: 9
    Dernier message: 15/10/2004, 13h34
  4. [Observateur] Précisions sur le design pattern Observer [UML]
    Par joquetino dans le forum Design Patterns
    Réponses: 2
    Dernier message: 07/10/2004, 22h35
  5. Précision sur les sauvegarde à chaud
    Par alxkid dans le forum Administration
    Réponses: 2
    Dernier message: 09/08/2004, 18h55

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