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]comptage de lignes en fonction du contenu des cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut [VBA]comptage de lignes en fonction du contenu des cellules
    bonjour a tous,

    j'aurais voulu savoir si il etait possible de compter le nombre de ligne en fonction de ce que contient une cellule de la ligne voir plusieur cellule de la ligne.pour le moment je fait un comptage de ligne en fonction des selection effectuer dans les filtre, mais j'aimerais que ce comptage soit automatique en fonction de ce que contiennet certaines cellules, pour pouvoir remplir un autre tableaux.

    merci d'avance.

    biensur si cela est possible auriez vous de sexemple a me presenter ou une piste sur laquelle me lancer?

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pas trés clair ... mais cela ressemble à l'utilisation de la fonction NB.SI sous ecel ?

  3. #3
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    a peu pres oui
    j'ai un tableau de 26 colonne et 250 ligne.
    je veux compter le nombre de ligne comportant une chaine de caractere "text" dans les colonne A,J,K,L,M.

    j'espere que c plus clair comme ça.

  4. #4
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    personne ne veut m'aider?

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Tu n'as qu'à faire une boucle, et compter.
    Un truc dans ce genre (j'avoue, je ne l'ai pas testé...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Sub CompteText()
        Dim Compteur As Integer
        Dim Ok As Boolean
        Dim i As Integer
     
        Compteur = 0
        For i = 1 To 256
            Ok = False
            If InStr("Text", Range("A" & i).Value) > 0 Then Ok = True
            If InStr("Text", Range("J" & i).Value) > 0 Then Ok = True
            If InStr("Text", Range("K" & i).Value) > 0 Then Ok = True
            If InStr("Text", Range("L" & i).Value) > 0 Then Ok = True
            If InStr("Text", Range("M" & i).Value) > 0 Then Ok = True
            If Ok = True Then Compteur = Compteur + 1
     
        Next i
     
        MsgBox (Compteur)
     
    End Sub
    Ça peut facilement s'optimiser, mais il faut bien que tu aies un peu de boulot quand même...

  6. #6
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    c sur je te remercie.
    c en cherchant qu'on apprend.enfin c comme ça que je fait car il y'a encore un an VB ete inconnu pour moi et tout ce que ej sais je l'ai appris seul.
    mais VB avec excel est assez galere enfin je trouve.alors qu'avec VISIO c clair comme de l'eau.
    mais merci bcp quand meme.

  7. #7
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    bonjour a tous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Sub Command4_Click()
     
    Dim Compteur As Integer
    Dim Ok1, Ok2, Ok3 As Boolean
    Dim n As Integer
     
    Compteur = 0
    For n = 0 To 500
            Ok = False
            If InStr("DIAG", Range("H" & n).Value) > 0 Then Ok1 = True
            If InStr("EC", Range("K" & n).Value) > 0 Then Ok2 = True
            If InStr("56", Range("S" & n).Value) > 0 Then Ok3 = True
            If Ok1 = True And Ok2 = True And Ok3 = True Then Compteur = Compteur + 1
    Next n
     
    MsgBox (Compteur)
     
    End Sub
    j'ai utitliser la code suivant qui est le meme que celui quer tu m'a donner mais le probleme et qu'il me sort une erreur :
    la methode range de l'objet global a echouer(erreur 1004).
    je ne compren pas pourquoi.
    j'ai essayer plusieur variante mais je ne voit pas quoi faire.

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    .. déja H0 ça n'existe pas comme cellule ... revoi ta boucle for ..

  9. #9
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    merci bbil pour cette info.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Sub Command4_Click()
     
    Dim Compteur As Integer
    Dim Ok1, Ok2, Ok3 As Boolean
    Dim n As Integer
     
    Compteur = 0
    For n = 2 To 500
            Ok = False
            If InStr("DIAG", Range("H" & n).Value) > 0 Then Ok1 = True
            If InStr("EC", Range("K" & n).Value) > 0 Then Ok2 = True
            If InStr("56", Range("S" & n).Value) > 0 Then Ok3 = True
            If Ok1 = True & Ok2 = True & Ok3 = True Then Compteur = Compteur + 1
    Next n
     
    MsgBox (Compteur)
     
    End Sub
    est ce que comme ça ça parait mieux?
    car il ne me donne pas le resultat que j'attend.je doit obtenir 2 et il me donne 0.je suis desoler d'etre si mauvais.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonjour,
    Si celà peut t'aider, ce code compte le nombre de cellule contenant le chiffre 25 de A2 à A 500.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Test()
    Dim CompterCellules As Integer
      Dim iCell
      Application.ScreenUpdating = False
      For Each iCell In Range("A2:A500")
        If iCell.Value = 25 Then
        'iCell.Name
        CompterCellules = CompterCellules + 1
        End If
      Next iCell
      MsgBox CompterCellules
     
    End Sub
    jpleroisse

  11. #11
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    merci bcp a tous
    j'avais juste fais une petite erreur dans le code

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/09/2014, 01h03
  2. [MySQL] Changement bgcolor d'une ligne en fonction du contenu d'une cellule
    Par clementdevelop dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/05/2013, 14h41
  3. Réponses: 1
    Dernier message: 05/03/2012, 15h04
  4. Suppression d'une ligne en fonction du contenu d'une case
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2008, 13h43
  5. Réponses: 2
    Dernier message: 29/08/2007, 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