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

NB.Si et renvoi valeur

  • Initiateur de la discussion Initiateur de la discussion alienox
  • 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 !

alienox

XLDnaute Occasionnel
Bonsoir le forum,

J'ai un tableau comportant 10 cellules par 3, avec un chiffre par cellule.

Avec la formule Nb.si, j'arrive à compter le nombre de fois est présent un chiffre dans le tableau.
Mais comment renvoyer les chiffres comptés en ordre croissant?

Voir le fichier joint

Bonne soirée

et merci d'avance
 

Pièces jointes

Re : NB.Si et renvoi valeur

Bonjour le forum et bonjour Laurent950,

Merci de t'intéresser au sujet et de ton aide, mais ce que tu proposes est déjà ce que je fais dans le fichier joint, j'ai mis ta formule dans le fichier pour comparaison, mais le problème est qu'il me sort tous les num présents avec des doublons....

A savoir que les chiffres changent tous les jours dans ce tableau.

A+
 

Pièces jointes

Re : NB.Si et renvoi valeur

Re à tous, et bonjour Laurent950,

Très bien et à partir de cela, peut-on mettre les chiffres dans l'ordre du nombre de fois présent?

Merci beaucoup pour ce que vous faites.
 
Re : NB.Si et renvoi valeur

Avec une macro ? vous savez vous servir de VBA ?

voici le code que j'ai laisser tel quel :

il y a le fichier joint aussi au message par formule je sais pas faire !

VB:
Sub test()

Dim TabBase() As Variant
TabBase = Range(Cells(3, 3), Cells(5, 12))

Dim TabRes() As Variant
ReDim TabRes(1 To UBound(TabBase, 1) * UBound(TabBase, 2), 1 To 5)

cpt = 1
For i = 1 To UBound(TabBase, 1)
    For j = 1 To UBound(TabBase, 2)
        Debug.Print TabBase(i, j)
        TabRes(cpt, 1) = TabBase(i, j)
        Debug.Print TabRes(cpt, 1)
        cpt = cpt + 1
    Next j
Next i

' repére le doublon !
For i = 1 To UBound(TabRes, 1)
    For j = i + 1 To UBound(TabRes, 1)
        If TabRes(i, 1) = TabRes(j, 1) Then
            TabRes(j, 2) = "Doublon"
        End If
    Next j
Next i

' Compteur du nombre de fois qu'il y a le numéro !
For i = 1 To UBound(TabRes, 1)
    For j = 1 To UBound(TabRes, 1)
        If TabRes(i, 1) = TabRes(j, 1) Then
            TabRes(i, 3) = TabRes(i, 3) + 1
            TabRes(i, 4) = TabRes(i, 3) & TabRes(i, 1)
            TabRes(i, 5) = "Il y a " & TabRes(i, 3) & " fois le NB : " & TabRes(i, 1) & " x dans le Tableau"
        End If
    Next j
Next i

'Cells(13, 6).Resize(UBound(TabRes, 1), UBound(TabRes, 2)) = TabRes

' tri
Call Tri(TabRes(), 4, LBound(TabRes, 1), UBound(TabRes, 1))

'Cells(13, 6).Resize(UBound(TabRes, 1), UBound(TabRes, 2)) = TabRes

cpt = Empty
Dim TabAff() As Variant
' Compte le NB ligne sans doublon !
For i = 1 To UBound(TabRes, 1)
    If TabRes(i, 2) <> "Doublon" Then
        cpt = cpt + 1
    End If
Next i
ReDim TabAff(1 To cpt, 1 To 1)

cpt = 1
For i = 1 To UBound(TabRes, 1)
    If TabRes(i, 2) <> "Doublon" Then
        TabAff(cpt, 1) = TabRes(i, 5)
        cpt = cpt + 1
    End If
Next i

Cells(22, 2).Resize(UBound(TabAff, 1), UBound(TabAff, 2)) = TabAff

End Sub

Sub Tri(TabRes(), ColTri, gauc, droi) ' Quick sort
  ref = TabRes((gauc + droi) \ 2, ColTri)
  g = gauc: d = droi
  Do
    Do While TabRes(g, ColTri) < ref: g = g + 1: Loop
    Do While ref < TabRes(d, ColTri): d = d - 1: Loop
    If g <= d Then
       For k = LBound(TabRes, 2) To UBound(TabRes, 2)
         temp = TabRes(g, k): TabRes(g, k) = TabRes(d, k): TabRes(d, k) = temp
       Next k
       g = g + 1: d = d - 1
    End If
  Loop While g <= d
  If g < droi Then Call Tri(TabRes, ColTri, g, droi)
  If gauc < d Then Call Tri(TabRes, ColTri, gauc, d)

End Sub

laurent
 

Pièces jointes

Dernière édition:
Re : NB.Si et renvoi valeur

Bonjour le Forum et Laurent950,

Après test, cela fonctionne très bien,

A la suite de ce test, j'ai adapté le code à mon fichier (ici joint), mais j'ai un problème de renvoi de valeur dans des textbox.

J'aimerai pouvoir renvoyer les résultats trouvés (grâce à ton code), dans des textbox (10) présent sur un userform, dans l'ordre croissant en partant du textbox de gauche.

J'ai commencé à coder mais ce n'est pas convainquant.

A+
 

Pièces jointes

- 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
4
Affichages
197
Réponses
4
Affichages
262
Réponses
18
Affichages
485
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…