XL 2016 comptage d'occurences d'un mot sur différents onglets

Reptor

XLDnaute Nouveau
Bonjour à tous, et merci d'avance à ceux qui prendront le temps de répondre à ce post.

Je vous explique mon problème :

J'ai décomposé un ensemble d'actions (macro) en sous-actions (micro), et j'ai créé un onglet pour chaque action macro, en détaillant dans chaque onglet le détail des actions micro. J'ai attribué le nom d'un agent en face de chaque action micro (dans une colonne 'REALISATEUR DE L'ACTION').
Je voudrais, dans un nouvel onglet, compter combien d'actions micro au total sont attribuées à un agent.
Le hic, c'est que la plage est très spéciale et que je n'arrive pas a la définir sauf en additionnant chaque plage, mais ca va être très/trop lourd. (au regard du nombre d'agents que j'ai & de l'automatisation potentielle dont je parlerais après)

En résumé, je voudrais, sur 56 onglets, compter le nombre d'occurences de "DUPONT" dans la colonne 'REALISATEUR DE L'ACTION' de chaque tableau (soit dans 56 colonnes REALISATEUR DE L'ACTION, appartenant à 56 tableaux différents répartis sur 56 onglets).

Merci d'avance !

Par ailleurs, si jamais vous avez une idée pour compter ce nombre d'occurences mais sur un nombre d'onglet indéfini, mais toujours dans des colonnes nommées 'REALISATEUR DE L'ACTION', je suis extrêmement preneur pour l'automatisation de mon outil.

Merci beaucoup, et j'espère que vos réponses aideront d'autres personnes !
 

danielco

XLDnaute Accro
Bonjour,

Est-ce que cette plage est toujours située dans la même colonne ?

Par exemple, pour la colonne A :

VB:
Sub test2()
  Dim Sh As Worksheet, Ctr As Long
  For Each Sh In Sheets
    Ctr = Ctr + Application.CountIf([A:A], "dupont")
  Next Sh
  MsgBox "Nombre de ""Dupont"" " & Ctr
End Sub
 

Reptor

XLDnaute Nouveau
Merci pour votre réactivité !

Je n'ai pas pensé a passer par les macros, quel boulet je suis --'

Oui, cette plage sera toujours située dans la même colonne étant donné que c'est une macro qui créé les onglets.
J'essaie ça et je reviens vers vous !
Merci encore
 

Reptor

XLDnaute Nouveau
Je viens de me rendre compte que ca ne compte que les occurences de l'onglet actif, pas des autres...
deux points dont je n'ai pas parlé mais :


1/ J'ai oublié de le préciser mais je veux compter toutes les occurences de DUPONT hormis dans les pages 1,2,3 et 4.
2/ Je veux retourner la valeur dans une case et qu'elle se modifie de temps réel si j'enlève une occurence (sans relancer la macro).

Merci !
 
Dernière édition:

danielco

XLDnaute Accro
Mets cette macro dans le module ThisWorkbook :

VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Dim WS As Worksheet, Ctr As Long
  If (Target.Column = 1 Or Not Intersect(Target, Sh.Columns(1)) Is Nothing) And _
    Sh.Index > 4 Then
  For i = 5 To Sheets.Count
    Ctr = Ctr + Application.CountIf(Sheets(i).[A:A], "dupont")
  Next i
  Sheets(1).[A1] = Ctr
  End If
End Sub

Le résultat s'inscrit da la cellule A1 de la première feuille.

Daniel
 

fanch55

XLDnaute Barbatruc
Bonjour,
Si ce sont des tables structurées :
VB:
Sub compter()
    MsgBox TabCount("machin", "truc")
    MsgBox TabCount("REALISATEUR DE L''ACTION", "dupont")
End Sub
Function TabCount(Colonne As String, Valeur As String) As Variant
Dim Lo As ListObject
Dim Sh As Worksheet
    For Each Sh In Worksheets
        For Each Lo In Sh.ListObjects
            On Error Resume Next
            TabCount = TabCount + Application.CountIf(Range(Lo.Name & "[" & Colonne & "]"), Valeur)
        Next
    Next
End Function

Quand vous dites PAGE, est-ce que vous pensez Feuille(Onglet) ou bien autre chose ?
 

Reptor

XLDnaute Nouveau
Je viens de vous faire un fichier test sans information personnelle.
Au final, dans l'onglet AGENT, il devrait y avoir écrit 4 en cellule D5, 3 en cellule D6 et 2 en cellule D7.
(on ne comptabilise pas les actions des onglets "Tableau de bord", "Agents", "Actions principales"
 

Pièces jointes

  • Test n°1 - Copie.xlsm
    83.8 KB · Affichages: 3

Reptor

XLDnaute Nouveau
Allez je UP ce post :
J'ai fini par comprendre. Merci encore à vous 2 !
J'ai commenté le code (auquel on accède en cliquant sur Visual Basic Editor dans notre fichier), si jamais ca peut aider quelqu'un.
J'ai utilisé le code de danielco car il correspondait plus à mon cde mais lorsque je ferais des Tableaux structurés, j'utiliserais celui de fanch55 pour comprendre !
J'ai laissé quelques commentaires pour moi (2 points à éclaircir : un pour rectifier une plage qui n'est pas prise en compte et un parce que je n'ai pas compris l'action.)

Merci encore à vous 2 et j'espère que ce post aidera du monde !

P.S. : vous pouvez réutiliser ce tableau/outil !
 

Pièces jointes

  • Test n°1 - Copie2.xlsm
    83 KB · Affichages: 5

danielco

XLDnaute Accro
Allez je UP ce post :
J'ai fini par comprendre. Merci encore à vous 2 !
J'ai commenté le code (auquel on accède en cliquant sur Visual Basic Editor dans notre fichier), si jamais ca peut aider quelqu'un.
J'ai utilisé le code de danielco car il correspondait plus à mon cde mais lorsque je ferais des Tableaux structurés, j'utiliserais celui de fanch55 pour comprendre !
J'ai laissé quelques commentaires pour moi (2 points à éclaircir : un pour rectifier une plage qui n'est pas prise en compte et un parce que je n'ai pas compris l'action.)

Merci encore à vous 2 et j'espère que ce post aidera du monde !

P.S. : vous pouvez réutiliser ce tableau/outil !
Bonjour,
Je ne comprends pas ce que tu veux. Peux-tu expliquer ?
Daniel
 

Discussions similaires