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 :

Nombre de fois "ok" dans une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut Nombre de fois "ok" dans une colonne
    Bonjour à tous,

    je me permets de poster ici car j'ai un petit souci de code.

    Dans une feuille Excel, j'ai la colonne A qui est remplie de "ok", "oui", "non", etc....

    Je voudrais savoir comment faire (avec du VBA) pour compter le nombre de fois où "ok" apparaît dans la colonne.

    Je connais déja le nb.si, mais j'aurais besoin de quelquechose de vraiement rapide.

    Je vous remercie par avance.

    TheRealMike

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ne connaissant pas le contenu de votre fichier, je ne sais pas si cela sera beaucoup plus rapide que la fonction "NB.SI" mais vous pouvez essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Essai()
    cpt = 0
    txt = "OK"
       For Each c In Range([A2], [A65536].End(xlUp))
         If c.Value = txt
         Then cpt = cpt + 1
         End If
      Next c
      MsgBox "Texte OK trouvé " & cpt & " fois"
    End Sub

  3. #3
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Bonjour,

    Une autre façon assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Application.CountIf(Columns(1), "ok")
    Essais voir?

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut
    Merci beaucoup pour vos réponses.

    Finalement, je pense que le plus rapide est bien le Countif.

    Mais un deuxième problème se pose à moi.

    Je voudrais compter le nombre de cellules non vides dans ma range, et la formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.CountIf(marange, "<> """)
    ne marche pas...

    Auriez-vous une idée?

    Merci d'avance.

    TheRealMike

  5. #5
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Vite vite,

    Voici ce que j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TrouverOK()
        MsgBox Application.CountIf(Columns(1), "ok")
    End Sub
    Sub TrouverVide()
     
        Dim iMax As Long
     
        iMax = ActiveSheet.Range("A65536").End(xlUp).Row
        MsgBox Application.CountIf(Columns(1), "") - (65536 - iMax)
    End Sub
    Et puis?

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour TheRealMike jacques_jean drakkar_agfa le forum
    on peut faire comme cela aussi!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
    Sub Compt()
    Dim n, c As Variant
    For Each c In Selection
    If Not IsEmpty(c) Then n = n + 1
    Next: MsgBox n
    End Sub
    ou pour la colonne a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    MsgBox Application.WorksheetFunction.CountA(Range("$A:$A"))
    End Sub

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut
    Merci pour vos réponses!

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

Discussions similaires

  1. deux fois la même référence dans une colonne
    Par Liloo14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/11/2013, 21h47
  2. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 08h51

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