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 :

compter le nombre d’occurrences identiques dans une colonne


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2016
    Messages : 1
    Points : 0
    Points
    0
    Par défaut compter le nombre d’occurrences identiques dans une colonne
    bonjour
    j'ai crée une macro sous vba-excel pour compter le nombre des contrats identique mais ça marche pas
    ci aprés le code
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Private Sub agence_Change()
    Dim Rw As Range
    Dim i As Integer
    Dim j As Integer
    i = 2
    j = 1
     
    Feuil4.Select
    Feuil4.Activate
    ActiveCell.SpecialCells(xlLastCell).Select
    Range(Selection, Cells(1)).Select
    'Tant que la cellule de la colonne 9 n'est pas vide
    While Trim(Feuil4.Cells(i, 9).Value) <> ""
    Dim nb As Integer
    If Cells(i, 9).Value Like agence.Text Then
    nb = nb + 1
    Rows(i).Select
    End If
     
    i = i + 1
    Wend
     
    While Cells(i, 9).Value Like agence.Text
    Dim nb1 As Integer
    Dim nb2 As Integer
    If Cells(i, 8).Value = Cells(i + 1, 8).Value Then (pour compter le nombre des contrats identiques dans une colonne le probleme est ici ce code ne renvoie pas le nombre des contrat identique)
    num1 = num1 + 1
    End If
     
    If Cells(i, 7).Value = Cells(i, 6).Value And Cells(i, 7) <> "" And Cells(i, 6) <> "" Then
    nb2 = nb2 + 1
    End If
    i = i + 1
    Wend
     
    nb.Text = b
    produit.Text = nb.Text - nb1
    encaissé.Text = nb.Text - nb2
    annulé.Text = produit.Text - encaissé.Text
     
    End Sub

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour et bienvenue,

    3 petites choses pour avoir plus de chances d'obtenir une réponse:
    • Ne pas poster ta question dans la discussion d'un autre
      Beaucoup d'intervenants regardent les discussions sans réponse et si, par hasard, quelqu'un te répond, tu ne pourras pas mettre la discussion en "Résolu".
    • Baliser ton code avec les balises [CODE][/CODE]. Je l'ai fait pour toi cette fois-ci.
    • Ca ne marche pas ne nous donne aucune indication.
      Soit il y a un message d'erreur et il faut que tu nous le donnes et par quelle ligne il est généré, soit ton code ne donne pas le résultat attendu et il faut nous dire ce qui se passe.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    après les remarques de AlainTech, les miennes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Feuil4.Select
    Feuil4.Activate
    à quoi ça sert ?
    il suffit de commencer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Feuil4'si c'est le codename
    ...
    ...
    End With
    et mettre un "." devant les "Cells" ou "Range" appelés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.SpecialCells(xlLastCell).Select
    pourquoi "Select" ?, Quelle est la cellule active ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Selection, Cells(1)).Select
    ne sert à rien et je l'aurais mis (par logique) dans l'autre sens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(1),Selection).Select
    mais comme je dis, inutile

    ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    While Trim(Feuil4.Cells(i, 9).Value) <> ""
    Dim nb As Integer
    tu déclares une variable à l'intérieur d'une boucle donc à chaque fois nb s'initialise, "Dim nb As Integer" à déclarer en début de procédure

    je ne vais pas plus loin sans meilleures informations

    bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Une piste :
    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 Plage As Range
     
        With Worksheets("Feuil4")
     
            Set Plage = .Range(.Cells(1, 9), .Cells(.Rows.Count, 9).End(xlUp))
     
        End With
     
        MsgBox Application.CountIf(Plage, agence.Text)
     
    End Sub

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/09/2014, 11h15
  2. Réponses: 8
    Dernier message: 28/11/2012, 15h49
  3. Réponses: 3
    Dernier message: 27/07/2012, 11h25
  4. [MySQL] Compter le nombre de valeurs identiques dans une colonne d'une table
    Par luca120 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 00h40
  5. Réponses: 5
    Dernier message: 22/02/2008, 19h34

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