Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !

Hoareau

XLDnaute Occasionnel
Bonjour

J'ai un tableau dans lequel, dans une boucle j'utilise contif, pour une même valeur, il me donne des chiffres différents.
J'aimerais savoir pourquoi et comment y remedier.
merci
 

Pièces jointes

Re : countif boucle

Bonjour Hoareau, Gardien de phare, le forum,

Voici une partie de ta macro modifiée (je pense avoir compris), comme tu faisais le calcul dans ta boucle, ton calcul était fait au fur et à mesure, alors qu'il faut qu'il soit fait en dernier.

VB:
'""""""""""""""""""""""""  2 ème partie ajout des calculs dans les cellules """
Dim D As Range
Dim Col_1 As Range
Dim val As Range
With Sheets("test")
  Set Zone_De_Recherche_2 = [A5:AM5]          '1ère ligne du tableau de recherche
    For Each D In Zone_De_Recherche_2
    Set Col_1 = Range(D.Offset(1, 0), D.Offset(14, 0)) 'Chaque colonne du tableau, décalé d'une ligne
      Select Case D.Text 'Recherche de l'entête de colonne
        Case Is = "NB_2"
        Col_1.Interior.ColorIndex = 20
          For Each val In Col_1
            Val_Concat = " " & val.Offset(0, -2) & " - " & val.Offset(0, -1) ' les celulles sont contenées pour faciliterr le comptage
            val.Offset(0, 2) = Val_Concat
            Debug.Print Val_Concat & "  /   " & Col_1.Rows.Count & "   /   " & val
          Next
      End Select
    Next
    For Each D In Zone_De_Recherche_2
    Set Col_1 = Range(D.Offset(1, 0), D.Offset(14, 0)) 'Chaque colonne du tableau, décalé d'une ligne
      Select Case D.Text 'Recherche de l'entête de colonne
        Case Is = "NB_2"
          For Each val In Col_1
            val = Application.CountIf(Col_1.Offset(0, 2), val.Offset(0, 2).Value) '
            val.Offset(0, 1) = Format(val / val.Offset(0, -1) * 100, "0") ' Calcul du % que represente
          Next
      End Select
    Next
End With

With [A5].CurrentRegion
.Columns.AutoFit
.HorizontalAlignment = xlCenter
End With
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

A te relire

Martial
 

Pièces jointes

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

Réponses
5
Affichages
346
Réponses
2
Affichages
114
Réponses
9
Affichages
563
Réponses
16
Affichages
504
Réponses
0
Affichages
304
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…