XL 2013 NB.SI 3D Plage

  • Initiateur de la discussion Initiateur de la discussion Chris401
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chris401

XLDnaute Accro
Bonjour à tous

Je n'arrive pas à adapter la formule de BOISGONTIER sur ce fichier.
La plage des OUI n'est pas sur une colonne mais sur plusieurs.
Comme dans le fichier, le nom peut se situer sur différentes lignes dans la colonne A.

Macro acceptée bien évidemment.

Bonne journée
Chris

Edit : Nouveau fichier plus représentatif de mon fichier réel
 

Pièces jointes

Dernière édition:
Re : NB.SI 3D Plage

Bonjour Chris,

Un essai avec une fonction personnalisée. Dans un module standard:
VB:
Function compteOccurences(leNom As String, leCode As String)
tabloF = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")
For i = 0 To 11
With Sheets(tabloF(i))
    lig = Application.Match(leNom, .[A:A], 0)
    If Not IsError(lig) Then
        cpt = cpt + Application.CountIf(.Cells(lig, 2).Resize(1, 12), leCode)
    End If
End With
Next i
compteOccurences = cpt
End Function
En B2, tu écris =compteOccurences($A2;B$1) que tu copies à droite.

... à tester ...
 
Dernière édition:
Re : NB.SI 3D Plage

Bonjour à tous,
Salut mon Luc,

Pour un seul Nom....
VB:
Option Explicit

Sub Test()
    Dim CP&, MA&, R&, F&, A&, Sh As Object, Cel As Range, O As Object
    Set O = Feuil2
    CP = 0: MA = 0: R = 0: F = 0: A = 0: O.Range("B2:F10") = vbNullString
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name <> "Recap" Then
            For Each Cel In Sh.Range("A2:M6")
                If Cel = "CP" Then CP = CP + 1
                If Cel = "MA" Then MA = MA + 1
                If Cel = "R" Then R = R + 1
                If Cel = "F" Then F = F + 1
                If Cel = "A" Then A = A + 1
            Next Cel
            O.Range("B2") = CP: O.Range("C2") = MA: O.Range("D2") = R: O.Range("E2") = F: O.Range("F2") = A
        End If
    Next Sh
End Sub

A+ à tous
 
Dernière édition:
Re : NB.SI 3D Plage

Re,

J'ai collé le code un peu vite (sans utiliser les 2 arguments de la fonction personnalisée) 😱 j'ai modifié le code dans mon premier message.

Edit: Salut aussi, mon JC 😀

Attention: j'ai considéré (un peu hâtivement peut-être?) qu'un même nom n'apparaîtrait qu'une seule fois en colonne A de chaque feuille! Me serais-je honteusement fourvoyé?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 macro TCD
Réponses
4
Affichages
272
Retour