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

XL 2013 Est-il possible faire une recherche dans une chaîne concaténée ?

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 !

Backhandshot

XLDnaute Occasionnel
Bonjour à tous!
Voilà je recherche une manière pour rechercher des combinaisons de chiffres dans une liste de tirages concaténée. Mais ces combinaisons de chiffres peuvent se retrouver dans une chaîne de 40 caractères.
Je joins un fichier qui sera plus facile à comprendre. J'imagine que par VBA le temps de calcul sera plus rapide.
Votre aide serait appréciée.
Merci et bonne journée !
 

Pièces jointes

Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour,

une solution sous forme de fonction personnalisée

Code:
Function Compte(Plage, Combinaison)
 For Each Cel In Plage
    If InStr(1, Cel, Combinaison) > 0 Then Compte = Compte + 1
 Next
End Function

en AA5 : =Compte($X$5:$X$15;Z5) à tirer vers le bas

A+
 
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour Forum, Paf

La fonction que tu as fait ne fonctionne pas correctement, si tu prends la combinaison #4 (1214285763) elle devrait afficher qu'elle est apparue 1 fois dans le tirage #1 mais elle affiche 0. Tu ne dois pas être loin de la solution et pour afficher le numéro du tirage à droite du nombre de sortie...une solution.
Merci pour ton aide
 
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonsoir Forum,
Paf, Cisco
Même problème que Paf, combinaison #4 affiche 0 sortie voir post #3.
Après vérification les formules ou fonctions reçues fonctionnent seulement sur les 2 premières combinaisons.
Merci de votre aide.
 
Dernière édition:
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour à tous,

Dans ce genre de problème on encadre les nombres par un séparateur (en général l'espace).

Voyez le fichier joint et ces 3 fonctions VBA :

Code:
Function CONCAT(r As Range) As String
For Each r In r
  If r <> "" Then CONCAT = CONCAT & " " & r
Next
If CONCAT <> "" Then CONCAT = CONCAT & " "
End Function

Function NbSorti(r As Range, cherche As String)
cherche = Application.Trim(cherche) 'SUPPRESPACE
If cherche = "" Then NbSorti = "": Exit Function
cherche = "* " & Replace(cherche, " ", " * ") & "* "
For Each r In r
  If Replace(r, " ", "  ") Like cherche Then NbSorti = NbSorti + 1
Next
End Function

Function NoTirage(r As Range, cherche As String) As String
Dim i As Long
cherche = Application.Trim(cherche) 'SUPPRESPACE
If cherche = "" Then NoTirage = "": Exit Function
cherche = "* " & Replace(cherche, " ", " * ") & "* "
For i = 1 To r.Count
  If Replace(r(i), " ", "  ") Like cherche Then NoTirage = NoTirage & ", " & i
Next
NoTirage = Mid(NoTirage, 3)
End Function
A+
 

Pièces jointes

Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Re,

Le tableau de concaténation peut être supprimé avec ces fonctions :

Code:
Function CONCAT(r As Range) As String
For Each r In r.Cells
  If r <> "" Then CONCAT = CONCAT & "  " & r '2 espaces
Next
CONCAT = CONCAT & " "
End Function

Function NbSorti(r As Range, cherche As String)
cherche = Application.Trim(cherche) 'SUPPRESPACE
If cherche = "" Then NbSorti = "": Exit Function
cherche = "* " & Replace(cherche, " ", " * ") & "* "
For Each r In r.Rows
  If CONCAT(r) Like cherche Then NbSorti = NbSorti + 1
Next
End Function

Function NoTirage(r As Range, cherche As String) As String
Dim i As Long
cherche = Application.Trim(cherche) 'SUPPRESPACE
If cherche = "" Then Exit Function
cherche = "* " & Replace(cherche, " ", " * ") & "* "
For i = 1 To r.Rows.Count
  If CONCAT(r.Rows(i)) Like cherche Then NoTirage = NoTirage & ", " & i
Next
NoTirage = Mid(NoTirage, 3)
End Function
Fichier (2).

Edit : si le tableau des tirages a un grand nombre de lignes le calcul est long...

Utiliser alors la solution du post précédent.

A+
 

Pièces jointes

Dernière édition:
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour Forum,
Paf,Cisco et Job75

Job75, les fonctions ne fonctionnent pas correctement quand je les applique sur mon fichier, si je prends la combinaison 1,2,3,4,5 elle me renvoie qu'elle a sorti 46 fois mais en réalité elle a sorti 11 fois. Je crois que la fonction calcule un des chiffres de la combine 2 fois ou plus. C'est peut-être juste une question d'astérisque mal positionnée mais je ne suis pas assez fort pour trouver.
Est ce que la fonction s'applique pour seulement les combinaisons à 5 chiffres ou peut être utilisée pour une recherche de 3,4,5,6,7 chiffres ?

Merci de votre aide qui est appréciée.


Bonne journée!
 
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour à tous !
Job 75 je crois avoir trouver, comme je disais c'était une question d'astérisque, j'ai remplacé cette ligne
cherche = "* " & Replace(cherche, " ", " * ") & "* "

par celle-ci
cherche = "* " & Replace(cherche, " ", " * ") & " *"

Je vais continuer à tester.
Merci beaucoup pour votre aide.
Bonne journée !
 
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Re,

C'est peut-être juste une question d'astérisque mal positionnée ()

Vous avez tout à fait raison, j'ai fait un erreur 😡

Au lieu de :

Code:
cherche = "* " & Replace(cherche, " ", " * ") & "* "
il faut écrire :

Code:
cherche = "* " & Replace(cherche, " ", " * ") & " *"
Je joins les 2 fichiers corrigés.

Edit : je n'avais pas vu votre post #9, vous avez trouvé tout seul, félicitations.

Est ce que la fonction s'applique pour seulement les combinaisons à 5 chiffres ou peut être utilisée pour une recherche de 3,4,5,6,7 chiffres ?

Le nombre de valeurs séparées par un espace peut être quelconque.

A+
 

Pièces jointes

Dernière édition:
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour Forum,

Job75

Travail très impressionnant, je vous remercie beaucoup.
Je vais pouvoir continuer mon fichier personnel de loto.

Encore une fois merci !
Bonne journée !
 
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour à tous

Bonsoir Forum,
Paf, Cisco
Même problème que Paf, combinaison #4 affiche 0 sortie voir post #3.
Après vérification les formules ou fonctions reçues fonctionnent seulement sur les 2 premières combinaisons.
Merci de votre aide.

Backhandshot, la prochaine fois, essaye, STP, d'être plus précis en décrivant davantage ton besoin.
Au vu de ton 1er post et de ton fichier mis en pièce jointe, comment est-ce que je pouvais deviner que tu voulais mettre en évidence les combinaisons de la colonne K sortant dans la colonne X, avec les nombres pas forcément les uns après les autres, "touche à touche" ? De plus, pourquoi n'as-tu pas mis en évidence 0412192021 en Z6 qui se trouve aussi au début de X7 (On devrait avoir AA6=1, et AB6 =3, non ?), ce qui m'a fait penser que ta flèche orange était une erreur ? Si tu donnes des exemples incomplets...

@ plus.
 
Dernière édition:
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour Forum,
Cisco, Job75, Paf

Cisco pour faire suite à votre message, je m'excuse si ce n'était pas assez explicite, j'avais mentionné dans le post #1

Mais ces combinaisons de chiffres peuvent se retrouver dans une chaîne de 40 caractères.
et de plus j'ai fourni un fichier que je pensais assez explicite.
Encore une fois mes excuses.
J'apprécie vraiment tous les gens qui sont ici pour aider les novices comme moi.
Merci de votre aide appréciée


Bonne journée !
 
Re : Est-il possible faire une recherche dans une chaîne concaténée ?

Bonjour

Je comprend bien, et merci pour ton message. Mais quand je dis "être plus précis"...

Bonjour Forum,
Cisco, Job75, Paf
...j'avais mentionné dans le post #1
Mais ces combinaisons de chiffres peuvent se retrouver dans une chaîne de 40 caractères.
Bonne journée !

ta phrase ne nous dit pas si ces nombres doivent être les uns à coté des autres, dans l'ordre uniquement, ou pas...

@ plus
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…