Filtré une base de donné par 3 Cellules Consécutives
BONSOIR A TOUS, j'ai changer le Titre de mon sujet afin que de mieux me faire comprends, je comptes sur chacun de vous ici pour espéré trouvé de de l'aide.
1) Dans la Colonne A ce trouve ma base de donné ( l'historique des tirages Italien de l'année 1871 a l'année 2021 ).
2) Dans la Colonne J ce trouve l'élément ( les mots ) qu'on recherche dans la Colonne A.
3) la Colonne J est l'historique des tirages de l'année 2021 de la loterie de mon pays Cote d'Ivoire.
J'ai fais une remarqué les deux tirages ont une fortes similitudes de tirage donc mon objectif c'est de retrouvé une fréquence de tirage dans l'historique colonne A, et quand je trouve des similitude OUI je gagne aux prochain tirage très souvent.
J'ai du mal a me faire comprendre cas j'utilise des nombres insignifiant alors je vais essayé de me faire comprendre avec un exemple.
Ma recherche ressemble beaucoup aux mots croisé seulement que j'ai des nombres et pas des lettres.
1) Trois cellules consécutives est = à ( UN MOT )
COLONNE J
79
19
23
= UN MOT recherché dans la colonne A
COLONNE J
23
71
28
= UN MOT à recherché dans la colonne A
COLONNE J
37
80
43
= UN MOT à recherché dans la colonne A
COLONNE J
79
19
23 = UN MOT à recherché dans la colonne A
71
28
= UN MOT à recherché dans la colonne A
COLONNE J
ETC...
..
..
..
= UN MOT à recherché dans la colonne A
COLONNE J
ETC...
..
..
..
= UN MOT à recherché dans la colonne A
Le programme doit ignoré les mots ou les ( bloc de trois nombres ) présent dans la colonnes de J et absent dans la colonne A qui est l'historique de ma recherche raison pour la 41 a été ignoré, j'ai colorié les numéros ou ( MOT ) qui ont été trouvé dans la colonne J et A dans l'espoir de mieux me faire comprendre sinon en réalité ce n'est pas important que les numéros soit colorié
La colonne W est le résultat des mots trouvé avec le nombre de fois qu'il ont été retrouvé dans la colonne A.
Je croise les doigts dans l'espoir que j'ai réussi a me faire comprendre.
IL y a DjiDji59430 qui ma donné une formule mais le contenu de mon fiché qui est de 800.000 lignes j'aimerais avoir un Macro VBA s'il vous plait.
on concatène la colonne A
en b1 on met =recherche(j1&j2&j3;colonne concaténée) on a soit "valeur!", soit un nombre==>il a trouvé 3 cellules dans l'ordre
un nb.si() te donne le nb d'occurrence
Si tu connais quelqu'un en VBa ....
Merci a tous.
Bonjour,
Solution en VBA
Sub Tirages()
Dim DerLig_A As Long, DerLig_J As Long, DerLig_K As Long
Application.ScreenUpdating = False
Columns(2).ClearContents
Columns("K:L").ClearContents
DerLig_A = Range("A" & Rows.Count).End(xlUp).Row
DerLig_J = Range("J" & Rows.Count).End(xlUp).Row
'Création du mot de la colonne A
Range("B1:B" & DerLig_A - 2).FormulaR1C1 = "=RC[-1] & "" "" & R[1]C[-1] & "" "" & R[2]C[-1]"
Range("B1:B" & DerLig_A - 2).Value = Range("B1:B" & DerLig_A - 2).Value
'Création du mot de la colonne J à rechercher
Range("K1:K" & DerLig_J - 2).FormulaR1C1 = "=RC[-1] & "" "" & R[1]C[-1] & "" "" & R[2]C[-1]"
Range("K1:K" & DerLig_J - 2).Value = Range("K1:K" & DerLig_J - 2).Value
'Formules de comptage
DerLig_K = Range("K" & Rows.Count).End(xlUp).Row
Range("L1:L" & DerLig_K).FormulaR1C1 = "=COUNTIF(C[-10],RC[-1])"
Range("L1:L" & DerLig_K).Value = Range("L1:L" & DerLig_K).Value
'Tri ascendant du nombre de tirages pour détecter les plus fréquents
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("L1:L" & DerLig_K), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("J1:L" & DerLig_K)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
le fichier
Cdlt
Bonsoir Arturo83
Je suis tellement heureux que je n'ai pas pu m'empêché de couleur quelque larmes, WOUAH je pensais que ce que je demandais n'était pas réalisable c'était juste une folie , et là mon imagination , mon souhait , deviens une réalité grâce a toi, vous êtes des petits anges dans ce Groupe , je vous remercie du plus profond de mon cœur, là tu viens de réglé un problème qui me prenais souvent 2 jours cas mon mal de dos est intense, Mille merci a vous tous mais plus particulièrement à DjiDji59430 qui ma orienté son intervention était très précieux , à 3GB qui est vraiment génial qui ma guidé Wouah vous êtes formidable, afin un très grand Merci infini a toi Arturo83 , merci a chaque bénévole de ce forum , je suis trop content vous ne pouvez pas vous imaginé la joie que j'ai. Merci encore.