XL 2019 Modification d'une VBA ou Macro pour une recherche d'occurrence via les lois binomial ou calcul factoriel

Aeroberto0099bis

XLDnaute Nouveau
Bonjour, le Forum je souhaiterai avoir une modification d’un fichier Excel et de sa Macro ou VBA concernant les lois Binomial et un tableau tri selon l’occurrence qui m’a était fourni via ce forum.
Mon tableau permet de chercher le nombre d'occurrence ou combinaisons de chiffres parmi un ensemble.
J'ai créer toute une partie explicative détaillée, exemple par exemple afin d'être le plus compréhensible possible.
Cette partie est expliquée étape par étape afin d'obtenir un résultat non pas un sur une combinaison mais pas l'ensemble des combinaisons existantes.
Je vous remercie d'avances la communauté, et le Forum de votre temps et savoir-faire.
Bien à vous.
 

Pièces jointes

  • EXEMPLE POUR EXCEL DOWLOADS 2024.xlsm
    138.4 KB · Affichages: 7
  • CAS NOMBRE OCCURRENCE 3.xlsm
    113.3 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Aeroberto,
Un essai en PJ avec uniquement le mot Test2 :
VB:
Public Test, Mot
Sub NbTotOccurences()
Dim T, i%
T = Range("B2:F" & [A50000].End(xlUp).Row)
Test = [L2:P2]
For i = 1 To UBound(T)
    Mot = "-" & T(i, 1) & "-" & T(i, 2) & "-" & T(i, 3) & "-" & T(i, 4) & "-" & T(i, 5) & "-"
    Cells(i + 1, "H") = ChercheMot(Mot)
Next i
End Sub
Function ChercheMot(Mot)
Dim j%, k%
For j = 1 To 4
    For k = j + 1 To 5
        If Mot Like "*-" & Test(1, j) & "-*" And Mot Like "*-" & Test(1, k) & "-*" Then ChercheMot = ChercheMot + 1
    Next k
Next j
End Function
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 3.xlsm
    114.2 KB · Affichages: 1

Aeroberto0099bis

XLDnaute Nouveau
Bonsoir Sylvanu,
Merci tout d'abords de votre temps.
Oui le résultat "pure" est exactement ca, la méthode d'identification est parfaite. La méthode binomiale est parfaitement respectée. Car je vois même que vous avez joué avec l'ordre croissant des chiffres et cela fonctionne donc même avec les chiffres dans le désordre. La répétition de 2 chiffres est impossible sur une même date et donc le résultat souhaité est encore bon de ce point de vue la aussi.

Après je me doute que cela est un premier test, et que la mise en situation avec de multiples tests comme sur ma partie explicative avec la manière cumulative que vous m'avez créer la première fois viendront par la suite. Car la le tri sur occurrences et tri sur lignes font bugger la macro mais je pense que c'est tout à fait normal

Note : Au niveau de la colonne de test si vous pouvez mettre la capacité maximale du nombre de test possible, hors toutes démesures bien évidement serait top.
Bien à vous.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un dernier essai avec cumul. Il suffisait d'étendre l'analyse sur tous les tests.
Le statusbar donne la progression des calculs.
Car la le tri sur occurrences et tri sur lignes font bugger la macro mais je pense que c'est tout à fait normal
Evidemment les macros font appel à Feuil2 que vous avez supprimé.
Ensuite, il vous suffit d'adapter les macros en fonction de votre besoin exact, mais la trame est là.
VB:
Public Test, Mot
Sub NbTotOccurences()
Dim T, i%
[H2:H10000].ClearContents
T = Range("B2:F" & [A50000].End(xlUp).Row)
DL = [L50000].End(xlUp).Row
For Ligne = 1 To DL
    Test = Range(Cells(Ligne, "L"), Cells(Ligne, "P"))
    For i = 1 To UBound(T)
        Mot = "-" & T(i, 1) & "-" & T(i, 2) & "-" & T(i, 3) & "-" & T(i, 4) & "-" & T(i, 5) & "-"
        Cells(i + 1, "H") = Cells(i + 1, "H") + ChercheMot(Mot)
    Next i
    Application.StatusBar = "Progression : " & Format(Ligne / DL, "0%")
Next Ligne
 Application.StatusBar = ""
End Sub
Function ChercheMot(Mot)
Dim j%, k%
For j = 1 To 4
    For k = j + 1 To 5
        If Mot Like "*-" & Test(1, j) & "-*" And Mot Like "*-" & Test(1, k) & "-*" Then ChercheMot = ChercheMot + 1
    Next k
Next j
End Function
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 4.xlsm
    117.3 KB · Affichages: 3

Aeroberto0099bis

XLDnaute Nouveau
Merci je vais regarder, mais je vous l'aviez dit lors de nos premiers échanges je suis totalement novices au concept de macro et je vais être honnête je n'ai aucunes compétences la dedans. Je m'en excuse sincèrement.
je vais regarder de suite ce fichier.
Merci encore.
Cordialement.
 

Aeroberto0099bis

XLDnaute Nouveau
D'accord, personnellement j'adore les maths et les statistiques via mes études, mais les retranscrire via Excel ne faisait pas partis au programme, hors mis des basiques qui sont loin d'être des macros.
Pourtant j'ai essayer de mis intéresser mais rien que les basiques de coloration de cellules via un enregistrement de vba en direct par Excel c'est déjà du costaud pour moi.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Désolé pour la feuille 2 je ne savais pas qu'elle contenait des informations,
Bonjour,
Je me suis mal exprimé. En renommant votre feuille, les macros VBA la considéraient comme absente, d'où les bugs.
En PJ remis carré en renommant Feuil2 comme à l'origine, toutes les macros marchent.
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 5.xlsm
    117.3 KB · Affichages: 2

Aeroberto0099bis

XLDnaute Nouveau
Bonjour, Sylvanu pas de soucis c'est déjà super que vous puissiez m'aider de nouveau. Tant mieux si j'ai pas modifier votre travail.
J'ai regardé pour moi le cas en occurrence 2 me parait parfait au niveau du résultat, j'ai déjà bien contrôlé, et cela m'as l'air correct.
Je ne sais pas si c'est le cas, pour vous ou l'occurrence 3 est aussi réglée selon cette nouvelle méthode. Mais en occurrence 3 lorsque je modifie via l'onglet, j'ai remarqué des erreurs, je vous ai fait un imprimé écran pour éviter de toucher a votre tableau pour comprendre sur la feuille suivante.
Merci encore pour tout.
Cordialement
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 5 (1).xlsm
    160.4 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est normal, ces versions ne tenaient compte que d'un couple.
Un essai en PJ avec N de 1 à 4, j'ai laissé tomber 5 car n'offre aucun intérêt.
A noter que votre analyse est fausse. En ligne 9 par ex, les triplets sont (1,2,3) (2,3,4) (1,3,4) (1,2,4) donc au nombre de 4 et non au nombre de 3 après votre analyse.
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 6.xlsm
    163.3 KB · Affichages: 1

Aeroberto0099bis

XLDnaute Nouveau
Je m'en suis douté. Le résultat sur occurrence de 2, est absolument parfait. Il y a juste une petite retouche je pense au niveau de la macro concernant l'occurrence de 3 ou j'ai 2 petits défauts sur l'ensemble du test. Je l'ai identifier sur la feuille petite retouche.
Mille merci encore pour le travail accompli et votre temps.
Cordialement.
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 6.xlsm
    212.8 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Effectivement, pour que cet algo marche il faut que les données d'entrée soient triées en mode croissant.
Voici une V7, la dernière pour moi.
"Ya un bug, corrigez !" serait bien mieux si c'était accompagné au moins d'une première recherche dans le VBA. Et ce n'est pas de la macro, c'est de la logique d'analyse.
 

Pièces jointes

  • CAS NOMBRE OCCURRENCE 7.xlsm
    206.9 KB · Affichages: 5

Statistiques des forums

Discussions
312 244
Messages
2 086 562
Membres
103 247
dernier inscrit
bottxok