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 fois qu'apparait un texte dans une plage de donnée nommée


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Compter le nombre de fois qu'apparait un texte dans une plage de donnée nommée
    bonjour,
    je souhaiterai que sur la cellule Y32 de la feuille 1 s'affiche le nombre de fois qu’apparaissent le mot PLD ou 1/2 JOURNEE dans ma plage de donnée.

    Le problème est que ma plage est définis par la cellule G4 et ce termine sur la cellule active de la feuille 1... j'ai déjà réussis a ce que ma plage soit nommée par "tableau"

    ex: si je clique sur b28, il faut que ma plage soit définis entre G4 et B28, définis par le terme tableau, et compter le nombre de PLD et de 1/2 journée et ensuite l'afficher en cellule Y32.

    Cela fait plusieurs jours que je cherche sur les forums mais je n'arrive pas a adapter a mon cas. Pourriez vous m'aider? Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut compter le nombre de fois un texte
    Bonjour,

    essais ce 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
     
    Sub plage()
     
    Dim plage As Range
    Dim cellule As Range
    Set plage = Range(Cells(4, 7), ActiveCell)
     
    For Each cellule In plage
      If cellule = "PLD" Then cptPLD = cptPLD + 1
      If cellule = "1/2 journée" Then cptjour = cptjour + 1
    Next
     
    Range("y32") = "PLD = " & cptPLD & " - 1/2 journée = " & cptjour
     
    End Sub
    Cordialement,

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour, bonjour,

    si la plage est déjà définie par le nom "tableau" dans la feuille de calculs,
    il n'y a même pas besoin de code VBA, formule en Y32 dans une version française d'Excel :

    =NB.SI(tableau;"PLD")+NB.SI(tableau;"1/2 JOURNEE")

    Si vraiment un code est nécessaire, pas besoin donc de boucle :
    • formule par code :

    [Y32].Formula = "=COUNTIF(tableau,""PLD"")+COUNTIF(tableau,""1/2 JOURNEE"")"
    • juste le résultat dans la cellule sans formule apparente :

    [Y32].Value = ["=COUNTIF(tableau,""PLD"")+COUNTIF(tableau,""1/2 JOURNEE"")"]

    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With Application
            [Y32].Value = .CountIf([tableau], "PLD") + .CountIf([tableau], "1/2 JOURNEE")
        End With
    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  4. #4
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut compter le nombre de fois un texte
    Bonjour Marc,

    Je suis d'accord avec toi pour "countif" et la boucle inutile mais le demandeur souhaite savoir,si je comprend bien, à quel mot correspond le nombre d'apparition.

    Par ailleurs, le tableau est variable puisque dépendant de la cellule active.

    J'aimerai bien savoir comment notre ami fait pour déterminer son tableau.
    Je sais donner un nom de plage dynamique avec "décaler" et "nbval", c'est à dire fonction du nombre de lignes remplies mais pas fonction d'une cellule active.

    Cordialement,

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Salut Paul,

    mon message est dû en fait à la place laissée à l'interprétation dans la demande …
    C'est sûr avec une présentation claire …

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut macro a simplifier
    Bonsoir et merci à tous pour vos réponses si rapides...
    J'ai testé la solution de marc et elle marche parfaitement donc je le remercie.
    Concernant la question nibledispo, je détermine mon tableau par g4 au début et activecell.row et activecell.column pour la fin de tableau. en espérant t'avoir répondu.

    Cepandant j'aurai une autre question, j'ai enregistré une macro qui sélectionne les plages
    g4;g34, m4;m34, s4;s34, y4;y34, ae4;ae34, ak4;ak34, aq4;aq34, aw4;aw34, bc4;bc34, bi4;bi34, bo4;bo34 et bu4;bu34

    ensuite supprime leur contenu et met un fond blanc.

    ensuite cette macro sélectionne les mêmes plages une colonne avant (cad f4;f34, l4;l34....) et les remplies avec un fond blanc.

    le problème est que cette macro met bien 15 ou 20s a s'appliquer pourriez vous me donner une solution qui effectue ces taches rapidement??
    De même pour une autre macro qui sélectionne les plages du 1er problème (cad g4;g34, m4;m34....) qui ensuite cherche le mot :
    PLD, et rempli ces cases en vert
    1/2 JOURNEE en rouge
    SERVICE en bleu

    Merci

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    La sélection de plages ralentie la procédure et elle est inutile pour modifier les propriétés de cellules !
    Exemple ici !

    Qui plus est la mise en page est de toute manière longue sous Excel …


Discussions similaires

  1. Macro pour compter le nombre de fois qu'apparait un mot dans une feuille
    Par arno1975 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/02/2014, 09h27
  2. [MySQL] Compter le nombre de fois qu'un pilote à gagner dans une saison
    Par Neo57 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/10/2010, 10h22
  3. Réponses: 2
    Dernier message: 22/01/2009, 10h12
  4. Réponses: 6
    Dernier message: 25/11/2007, 12h46
  5. Réponses: 16
    Dernier message: 14/09/2006, 06h43

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