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 de cellule contenant la meme info


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut compter le nombre de cellule contenant la meme info
    Bonjour , je souhaiterai créer une petite fonction qui me permette de compter le nombre de cellule ayant la même information

    Par exemple supposont que dans la cellule B1 , B2 et B3 j'ai la même chose
    je souhaiterai (et cela peut importe que je soit sur B1 , B2 ou B3) qu'on m'affiche 3

    Pour l'instant j'ai un bout de code mais lorsque je suis en B1 il me met 3 , en B2 : 2 et en B3 : 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    NbRevision = 1
        For j = 1 To ligne 'ligne correspond à la derniere ligne non vide du classeur 
            If Cells(j, 2).Value = Cells(j + 1, 2).Value Then
                NbRevision = NbRevision + 1
            Else
                GoTo Suite
            End If
        Next j
    Suite: 
     
    MsgBox (Nbrevision)
    PS : on ne peut pas avoir la meme info en B1 et C1 par exemple

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bonjour,
    quel est cet horrible goto suite ? tu souhaites gérer quel type d'erreur avec ca ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    ce n'est pas pour une erreur
    J'ai fais ca pour ne pas chercher jusqu'a la derniere ligne car si la cellule B4 n'est pas "égale" à la cellule B3, inutile d'aller plus loin (mes cellules sont triés par odres croissant sur la colonne B)

  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
    Bonjour à tous

    C'est vrai qu'il n'est pas beau ce goto, et sortir d'une boucle de cette facon devrait à la longue provoquer une erreur

    Voici un boucle qui fonctionne sur le pricipe suivant :

    calcul dans une colonne, le nombre d'occurences identiques à la cellule ou l'on se trouve en fonction de la colonne ou l'on se trouve

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub nombre()
    dim i as long, total as long
    for i = 1 to cells(65536,selection.column).end(xlup).row
        if cells(i,selection.column) = selection then total = total + 1
    next i
    msgbox "il y a " & total & " " & selection
    end sub
    cordialement

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Bon je vais essayer d'être un peu plus précis car malgres votre aide , je n'arrive pas à réaliser ce que je souhaite

    prenons un exemple (je pense que cela sera plus clair)
    Supposons que j'ai cette feuille :
    A gauche les numéro de ligne et à droite la colonne B


    1 | Doc1
    2 | Doc1
    3 | Doc1
    4 | Doc2
    5 | Doc2
    6 | Doc3


    Je rappel d'abord que la cellule B est trié par ordre alphabétique donc la ligne 6est forcement apres la 5

    Mon besoin est le suivant : il faut que je parcours toute la feuille, et que dans une variable je récupere le nombre de celule identique à celle active

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    Mon besoin est le suivant : il faut que je parcours toute la feuille, et que dans une variable je récupere le nombre de celule identique à celle active
    donc ta procedure est declenché par l evenement Worksheet_SelectionChange ?

    si tel est le cas le code de wilfried_42 doit convenir a ta demande.

  7. #7
    Membre éprouvé
    Inscrit en
    Juillet 2005
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 121
    Par défaut
    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
     
    sub test ()
    dim val as string
    dim compteur as long
     
    compteur = 1
     
    range("B1").select
    val = activecell.value
    do until activecell.value = ""
        compteur = compteur +1
        activecell.offset(1,0).select
    loop
     
    msgbox "il y a " & compteur & " occurences de " & val
     
    end sub
    A TESTER...

  8. #8
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    Ton raisonnement est quelque peu erroné.
    En traduisant en francais ton code on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pour chaque ligne du classeur
       Si les cellules deux cellules consécutives sont égales alors 
          Incrémenter le compteur.
       Sinon
          arreter tout.
       Finsi
    Afficher le compteur
    Maintenant il faut plus de précision sur ce que tu veux faire :
    • Les cellules qui sont comptés sont elles forcément consécutives ?
    • Veux tu compter le nombre d'occurence de la cellule active dans la colonne active quelque soit leur position ?


    On va prendre le cas ou la consécutivité des cellules n'est pas une condition nécéssaire. Pensons en algorithme avant de coder.

    On défini les variables : Ligne, Compteur
    La constante : ValeurActive

    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
    ValeurActive <- Valeur(CelluleActive)
    Compteur <- 0
    Ligne <- 1
    
    Tantque Ligne <= Derniere(Ligne)
        Si Valeur(CelluleTestee) = ValeurActive alors
            Compteur +1
        Fin Si
        Ligne +1
    Fin Tantque
    
    Afficher(Compteur)
    
    Avec :
    Valeur(Cellule) Donnant la valeur de la cellule testée
    Derniere(Ligne) Donnant la dernière ligne non vide.
    Afficher(Element) Affichant l'élément entré en paramètres
    Je me tiens à disposition si tu as des questions

    EDIT : Oops avais oublié de valider le message T_T

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

Discussions similaires

  1. Compter le nombre de cellules contenant une date
    Par thomanneca dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 20/08/2014, 20h30
  2. [XL-2010] Compter le nombre de cellules contenant un temps
    Par seboboch dans le forum Excel
    Réponses: 5
    Dernier message: 22/11/2011, 17h15
  3. Compter un nombre de cellule contenant mot "flange" (suite)
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/09/2009, 15h00
  4. Compter un nombre de cellule contenant mot "flange"
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2009, 13h48
  5. Compter le nombre de cellule
    Par flyfrog dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/06/2006, 14h38

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