Autres Formule excel version 2007

Ferbank

XLDnaute Occasionnel
Bonjour;
je suis à la recherche d'une formule simple pour rechercher dans un fichier excel des données suivantes!
Exemple un listing de tirage loto; numéros des tirages sorti par ligne donc 1 ligne et 6 colonnes .
Comment rechercher un série de numéros ex 27 44 46 ou plus simple 8 12 dans une ligne et reporter ces résultats dans une cellule précise?

je joins le fichier peut on positionner la formule en zone z 16
merci

Je pense que c'est simple pour vous, moi je patine pour cette formule
Cordialement à vous tous Fairbank
 

Pièces jointes

  • clas excelformule.xls
    288.5 KB · Affichages: 62

Ferbank

XLDnaute Occasionnel
Bonsoir et merci pour votre réponse:
Mon message me paraissait assez clair pourtant;
je recherche la formule permettant de trouver une série de numéro dans une liste de tirage.
J indique ou écrire la formule soit en cellule Z 11!!
Pour le reste ne pas en tenir compte. merci
 

job75

XLDnaute Barbatruc
Bon avant d'aller dormir voyez le fichier joint et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Recherche As Range, P As Range, c As Range, Q As Range, R As Range
Set Recherche = [T11:Y11]
Set P = [E:J]
If Intersect(Target, Recherche) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
Recherche.Offset(1).Resize(Rows.Count - Recherche.Row).Delete xlUp 'RAZ
For Each c In Recherche
    If c <> "" Then
        P.Replace c, "#N/A", xlWhole
        Set Q = Nothing
        Set Q = P.SpecialCells(xlCellTypeConstants, 16)
        If Q Is Nothing Then Exit Sub
        Q = c
        Set Q = Intersect(Q.EntireRow, P)
        If R Is Nothing Then Set R = Q Else Set R = Intersect(Q, R)
        If R Is Nothing Then Exit Sub
    End If
Next
'---résultat---
R.Copy Recherche(2, 1)
End Sub
Entrez les nombres à rechercher dans la plage T11:Y11, la macro se déclenche automatiquement.

Bonne nuit.
 

Pièces jointes

  • clas excelformule(1).xls
    309.5 KB · Affichages: 19

job75

XLDnaute Barbatruc
On ne vous demande pas de programmer, juste de comprendre un peu.

Le clic droit sur l'onglet "Feuil1" ouvre une liste, cliquez sur Visualiser le code, vous voyez alors la macro.

Pour ce qui est du résultat je vous ai demandé au post #2 d'indiquer ce que vous voulez obtenir mais vous n'avez rien fait.
 

job75

XLDnaute Barbatruc
Oui, vous placerez la macro au bon endroit par copier-coller.

Une solution par formules me paraît très difficile, voire impossible.

Pour terminer ce fichier (2) restitue les dates, la macro complétée :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Recherche As Range, P As Range, Dates As Range, c As Range, Q As Range, R As Range
Set Recherche = [T11:Y11]
Set P = [E:J]
Set Dates = [D:D]
If Intersect(Target, Recherche) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
Recherche.Offset(1).Resize(Rows.Count - Recherche.Row, Recherche.Columns.Count + 1).Delete xlUp 'RAZ
For Each c In Recherche
    If c <> "" Then
        P.Replace c, "#N/A", xlWhole
        Set Q = Nothing
        Set Q = P.SpecialCells(xlCellTypeConstants, 16)
        If Q Is Nothing Then Exit Sub
        Q = c
        Set Q = Intersect(Q.EntireRow, P)
        If R Is Nothing Then Set R = Q Else Set R = Intersect(Q, R)
        If R Is Nothing Then Exit Sub
    End If
Next
'---résultat---
R.Copy Recherche(2, 1)
Intersect(R.EntireRow, Dates).Copy Recherche(2, Recherche.Columns.Count + 1)
End Sub
 

Pièces jointes

  • clas excelformule(2).xls
    309 KB · Affichages: 26

patricktoulon

XLDnaute Barbatruc
bonjour
perso pur une recherche multicritère par vba je me sert d'une formule simple avec evaluate

exemple
VB:
Sub Macro4()
'récuperation de l'index de ligne dans le sheets correspondant au criteres en colonnes "A.B.C"
    criteres = Array("""truc""", """machin""", """chose""")    'criteres a retenir dans le meme ordre que les colonnes
    ColonS = Array("A2:A9", "B2:B9", "C2:C9")    ' colonne a observer pour les criteres dans le meme ordre
    feuille = "Feuil1"    'nom de la feuille
    MsgBox Evaluate("=MATCH(1,(" & feuille & "!" & ColonS(0) & "=" & criteres(0) & ")*(" & feuille & "!" & ColonS(1) & "=" & criteres(1) & ")*(" & feuille & "!" & ColonS(2) & "=" & criteres(2) & "),0)") + Range(ColonS(1)).Row - 1
Debug.Print "=MATCH(1,(" & feuille & "!" & ColonS(0) & "=" & criteres(0) & ")*(" & feuille & "!" & ColonS(1) & "=" & criteres(1) & ")*(" & feuille & "!" & ColonS(2) & "=" & criteres(2) & "),0)" ' + Range(ColonS(1)).Row - 1
End Sub
tu met cela dans une boucle pour rechercher plusieur serie
a adapter ;)
ps: si c'est des numeric pas besoins des doubles guillemets
l'array serait

Code:
criteres = Array(218, 345, 500)    'criteres a retenir dans le meme ordre que les colonnes
 
Dernière édition:

Ferbank

XLDnaute Occasionnel
Bonjour patriktoulon
Merci pour cet essai mais je n'y comprend rien ; comment l'appliquer sur ma feuille ?
J'ai bien copié la macro et execution mais elle me signale une erreur d'execution ligne 13 incompatibilité de type!
Es ce bien comme cela que je dois enregistrer la macro et l'executer ou y a t il d'autre solutions?
 

Ferbank

XLDnaute Occasionnel
Merci à job75 qui m'a donné la bonne solution je l'ai copié dans macro et je l'execute .
Est elle applicable sur une autre feuille, même principe, mais avec des dispositions de données différente?
si oui ou non comment modifier les lignes de commande dans cette macro?