Formule de récupération numéro de ligne

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

J

JJ1

Guest
Bonjour à tous,
Je souhaiterais une formule (pas simple, à mon avis) qui récupèrerait le premier numéro de ligne où se trouve 5 nombres parmi la plage A:J .
je joins un exemple de la recherche.
merci et bonne journée.
 

Pièces jointes

Re : Formule de récupération numéro de ligne

Bonjour,

Une solution avec une fonction personnalisée.

Code à copier dans un module standard
Code:
Function pmo_RecupNumLigne(Source As Range, Rechercher As Range) As Long
Dim var
Dim var2
Dim Lig&
Dim nb&
Dim i&
Dim j&
Dim k&
Dim cpt&
Dim result&

Application.Volatile
Lig& = Source.Row
var = Source
var2 = Rechercher
For i& = 1 To UBound(var2, 2)
  If var2(1, i&) <> "" Then nb& = nb& + 1
Next i&
If nb& > 0 Then
  For i& = 1 To UBound(var, 1)
    cpt& = 0
    If result& > 0 Then Exit For
    For k& = 1 To UBound(var2, 2)
      If result& > 0 Then Exit For
      For j& = 1 To UBound(var, 2)
        If var2(1, k&) <> "" Then
          If var2(1, k&) = var(i&, j&) Then
            cpt& = cpt& + 1
            If cpt& = nb& Then
              result& = i&
              Exit For
            End If
          End If
        End If
      Next j&
    Next k&
  Next i&
End If
fin:
If result& > 0 Then
  If Lig& = 1 Then
    pmo_RecupNumLigne = result&
  Else
    pmo_RecupNumLigne = result& + Lig& - 1
  End If
Else
  pmo_RecupNumLigne = result&
End If
End Function

FONCTIONNEMENT
Si on se réfère à votre exemple,
tapez en X1 la formule =pmo_RecupNumLigne(A$1:J$9;K1:O1) et entérinez la
puis tirez X1 jusqu'en X3

Cordialement.

PMO
Patrick Morange
 
Dernière édition:
Re : Formule de récupération numéro de ligne

Bonjour à tous,
J'ai ouvert vos 2 fichiers mais je n'ai pas tout compris (tableau en P ?)
En fait, j'ai 2 tableaux:
A1:Jx
et K1:Oy
En P1,P2......Py, je souhaiterais connaitre la 1ére ligne en descendant dans la plage A1:Jx où se rencontre pour la première fois la combinaison des 5 nombres de la ligne concernée.
J'ai environ 1000 lignes dans la plage et 500 lignes de combinaisons de 5 nombres.(d'où P1 à P500)
merci et bonne soirée
 
Re : Formule de récupération numéro de ligne

Bonjour,

Le fait que tu parles maintenant d'un énorme fichier change un peu la donne ... la formule que tu voulais initialement n'est plus d'actualité ...
Il ne faut pas hésiter et utiliser la jolie fonction personnalisée de PMO2 ...

A +
 
Re : Formule de récupération numéro de ligne

Bonsoir à tous,

Une formule qui fonctionne à condition qu'il n'y ait pas de doublon sur une même ligne.

Code:
={EQUIV(5;FREQUENCE(NB.SI(K1:O1;$A$1:$J$9)*LIGNE($A$1:$J$9);LIGNE($A$1:$J$10)-1);0)-1}

Cf exemple joint.

@+

Gael
 

Pièces jointes

Re : Formule de récupération numéro de ligne

Bonsoir le Forum,

Merci pour toutes vos réponses, je vais tester en vrai sur mon fichier ce calcul d'écarts.
Si j'ai un souci, je reviens vers vous car ce n'est pas très simple.
Bonne soirée à tous.



ps: Pour PierreJean, as tu vu la macro réalisée dans mon sujet "Roulette aléatoire" par Bernard, je pense que le sujet va te plaire étant pro du VBA .(code admin=*** dans "chance")
 
Re : Formule de récupération numéro de ligne

Bonjour à tous,

Un grand merci James007 pour ce compliment que j'apprécie tout particulièrement vu la qualité de tes réponses dans les différents fils où nous nous sommes croisés.

Mais je n'ai pas réussi à gérer dans la formule le cas où il y a un des chiffres de la série présent plus d'une fois dans la ligne.😡 Dans ce cas, la fréquence devient égale à 6 ou plus et comme je cherche "5" dans Equiv, la ligne ne sera pas prise en compte.

@+

Gael
 
Re : Formule de récupération numéro de ligne

Re,

Finalement, la formule suivante semble fonctionner dans tous les cas (C'est grâce à James qui m'a remotivé):

Code:
={EQUIV(1;(FREQUENCE(SI(NB.SI(K1:O1;$A$1:$J$9)=0;"";NB.SI(K1:O1;$A$1:$J$9)*LIGNE($A$1:$J$9));LIGNE($A$1:$J$10)-1)>=5)*1;0)-1}

@+

Gael
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
  • Question Question
Réponses
3
Affichages
122
regis6460
R
  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
299
Retour