XL 2021 Probleme avec mon fichier combi4

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

fab5152

XLDnaute Nouveau
Bonjour j'ai un dernier soucis avec mon fichier combi4
j'ai le même soucis que pour l'autre

je voudrais savoir combien de fois ma combinaisons B,B2,B3,B4 sors ensemble dans n'importe quel ordre dans mon tableau en C4 à F373
est pourtant il me marque nom dans ma formule
je voulais savoir ce que j'oublie
merci pour votre aide par avance

j'ai xl 2021 soi Microsoft office 365 mais en 32 bits est que c'est ça qui pose un problème pour ma formule
 

Pièces jointes

Bonjour fab5152, [Edit] salut sylvanu,

Voyez le fichier joint et cette fonction VBA dans Module1 :
VB:
Public d As Object 'mémorise la variable

Function Compte(plage As Range, ref As Range)
Dim a, i&, b
If d Is Nothing Then 'évite le calcul à chaque fois
    Set d = CreateObject("Scripting.Dictionary")
    Set plage = plage.Parent.Range(plage.Rows(1), plage(plage.Rows.Count, 1).End(xlUp))
    For i = 1 To plage.Rows.Count
        a = Application.Transpose(Application.Transpose(plage.Rows(i)))
        tri a, 1, 4
        a = Join(a)
        d(a) = d(a) + 1
    Next
End If
a = Application.Transpose(Application.Transpose(ref))
tri a, 1, 4
a = Join(a)
Compte = d(a)
End Function

Sub tri(a, gauc, droi) ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Pour gagner du temps le Dictionary n'est calculé que la 1ère fois.

Mais il est recalculé chaque fois qu'on valide ou modifie des cellules dans la feuille de calcul :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set d = Nothing 'force le recalcul de d
End Sub
A+
 

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
15
Affichages
3 K
Compte Supprimé 979
C
Réponses
4
Affichages
1 K
Y
Réponses
4
Affichages
1 K
Y
C
  • Question Question
Réponses
0
Affichages
926
Christian
C
C
Réponses
0
Affichages
912
Christian
C
L
Réponses
5
Affichages
913
L
Retour