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 :

VBA ne détecte pas la fin d'instruction


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut VBA ne détecte pas la fin d'instruction
    Bonjour à tous,

    J'ai un problème tout bête, c'est une erreur de compilation car l'éditeur ne détecte pas la fin d'instruction !!!

    Avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set plage = ActiveSheet.Cells(1, 225)
    plage.Formula = "=COUNTIF(H4:H891;"O")"
    ou ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set plage = ActiveSheet.Cells(1, 225)
    plage.FormulaLocal = "=NB.SI(H4:H891;"O")"
    A priori, il bloque sur le O

    Quelqu'un a-t-il une idée quelconque ??? Merci d'avance de votre aide !

    (PS : je bosse avec Excel2003 avec le SP3)

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    les guillemets qui encadrent ton O, ferment le premier et reouvre pour le suivant
    je crois qu'il faut les doubler : à essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plage.Formula = "=COUNTIF(H4:H891;""O"")"
    sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plage.Formula = "=COUNTIF(H4:H891;" & chr(34) & "O" & chr(34) & ")"

  3. #3
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Effectivement, je n'ai plus l'erreur de fin d'instruction (merci ! ), par contre, sur cette même instruction, j'ai maintenant une erreur 1004 !

    Je ne vois pas pourquoi, car cette formule copiée "à la main" dans une cellule fonctionne parfaitement !

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    j'ai pas regardé plus loin : Formula : Anglais : Les arguments sont séparés par des virgules, et non par des ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plage.Formula = "=COUNTIF(H4:H891,""O"")"

  5. #5
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Pas mieux... ARGH !!!

  6. #6
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    chez moi ca marche

    tu n'aurais pas enlevé cette ligne ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set plage = ActiveSheet.Cells(1, 225)
    si tu l'enleves il faut ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(1, 225).formula = "=COUNTIF(H4:H891,""O"")"

  7. #7
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Non, non, la ligne est bien là, mais j'ai toujours l'erreur 1004 !

    En attendant, j'ai codé une version nettement plus "rustique", mais qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        nbre_O = 0
        contenu_cell = "O"
        For Each j In [H:H]
             If j = contenu_cell Then
                  nbre_O = nbre_O + 1
             End If
        Next
    Ce n'est pas très optimal mais bon...

  8. #8
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plage.FormulaLocal = "=NB.SI(H4:H891;""O"")"

  9. #9
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Salut,

    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plage.FormulaLocal = "=NB.SI(H4:H891;""O"")"
    J'ai déjà essayé... et pas mieux => erreur 1004...

    Merci quand même !

  10. #10
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    je pensais que tu voulais mettre une formule

    tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbO = application.WorksheetFunction.CountIf(range("H:H"),"O")

  11. #11
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    YES !!!

    Non, je ne voulais pas spécialement une formule, mais je ne connais pas suffisamment les instructions VBA existantes, donc je fais avec ce que je trouve !

    Merci à vous de votre aide !

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

Discussions similaires

  1. Programme boucle ne détecte pas la fin de fichier
    Par sirene92 dans le forum Débuter
    Réponses: 1
    Dernier message: 31/12/2014, 19h20
  2. [XL-2007] Excel-VBA : Formule longue sur plusieurs lignes erreur fin d'instruction
    Par Pauline1374 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/03/2014, 17h46
  3. [VBA-E]Msgbox pas assez grand
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 19/04/2006, 14h18
  4. [VBA] ne reconnait pas une variable
    Par gyzmo5 dans le forum Access
    Réponses: 6
    Dernier message: 26/01/2006, 12h26
  5. [VBA]possible ou pas ? creer une image jpg a partir 7 jpg
    Par sakuraba dans le forum Général VBA
    Réponses: 5
    Dernier message: 03/01/2006, 10h45

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