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

countif boucle

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

  • Test Tab report_3 .xlsm
    35 KB · Affichages: 64

Gardien de phare

XLDnaute Accro
Re : countif boucle

Re,

Si tu peux pouvais mettre dans ton exemple ce que tu attends comme résultat, et non pas ce qui ne te convient pas, ce serait plus facile de comprendre ta demande. A moins que ce ne soit mon neurone qui fatigue...
 

Yaloo

XLDnaute Barbatruc
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

  • Test Tab report_3.xlsm
    33.2 KB · Affichages: 34
Dernière édition:

Discussions similaires

Réponses
16
Affichages
734
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…