Numéro de ligne de Max(Date) + Code correspondant

  • Initiateur de la discussion Initiateur de la discussion Compte Supprimé 979
  • 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 !

C

Compte Supprimé 979

Guest
Bonjour à toutes et à tous,

Je ne suis pas encore parti en vacances, et j'ai les neurones à plat 😛

Qui pourrait me trouver une petite formule matricielle qui serait me donner le numéro de ligne de la date la plus grande, correspondant à un code souhaitée (ici : 10511040)

Voir mon fichier joint 😉

Nota : je veux ensuite intégrer cette formule dans mon code VBA, grace à Application.Evaluate()

A+
 

Pièces jointes

Re : Numéro de ligne de Max(Date) + Code correspondant

Bonjour à tous,
Salut Bruno 🙂,

Peux-tu essayer :

Code:
=RECHERCHE(G42,LIGNE(D2:D40))

où G42 est le code à rechercher

A++🙂
A+ à tous

Edition : NON ne fonctionnne pas !!!!!!
 
Dernière édition:
Re : Numéro de ligne de Max(Date) + Code correspondant

Salut Bruno,

Un essai avec :

=MAX(SI($D$2:$D$40="10511040";$C$2:$C$40))

Plage de cellules à adapter

@+

Edit : j'ai pas précisé, mais matricielle, donc CTRL + MAJ + ENTREE

@+
 
Dernière édition:
Re : Numéro de ligne de Max(Date) + Code correspondant

re,

Après discussion en MP avec l'ami Jocelyn, une autre proposition :

Code:
=EQUIV(VRAI;MAX(($D$2:$D$40="10511040")*$C$2:$C$40)=$C$2:$C$40;0)+1

Bruno, c'est un problème très intéressant que tu nous as soumis là.

N'hésite pas à revenir avec d'autres questions de même style 😀

@+
 
Re : Numéro de ligne de Max(Date) + Code correspondant

Merci à vous les amis 😉

JC, désolé, mais ce n'est pas ce que je voulais, ça je sais faire (même avec les neurones grillés 😀)

Jocelyn, ta formule matricielle fonctionne parfaitement !
Petite question subsidiaire peut-on mettre ce genre de formule dans du VBA grace à : Application.Evaluate() !?

Tibo, désolé également, mais tes 2 propositions ne fonctionnent pas !?
Et ne t'inquiète pas je t'en resortirais des comme ça ;-)

Ca à l'air simple comme ça, mais apparemment ça ne l'est pas 🙂
Je comprends un peu mieux pourquoi mes neurones surchauffaient 😛

En fait je veux intégrer dans un code VBA existant, ce type de recherche.
Mais j'aurais voulu absolument éviter de faire ça en parcourant toutes les lignes avec
Code:
 For Each ... Next
par exemple.

Donc je chercher une formule matricielle ou autre qui puisse me donner le résultat, mais également être intégré dans un Evaluate()

Pas simple, hein !

Qui va gagner le pompon ?

A+
 
Re : Numéro de ligne de Max(Date) + Code correspondant

Bonjour à tous,

Pas vraiment un Evaluate mais le numéro de la ligne dans une cellule.
Un deuxième ZOP 🙁 ????

Code:
Option Explicit

Sub Test()
Range("F1").FormulaArray = _
        "=MAX(IF((R2C3:R40C3=MAX(IF(R2C4:R40C4=""10511040"",R2C3:R40C3))),ROW(R2C3:R40C3)))"
End Sub

A+
 
Re : Numéro de ligne de Max(Date) + Code correspondant

Bonjour à tous,

une fonction non matricielle, mais j'ignore si SOMMEPROD passe avec Evaluate...

Code:
=SOMMEPROD((C2:C40=MAX(C2:C40))*(D2:D40="10511040")*LIGNE(C2:C40))

Edit : ça ne marche pas, désolé
 
Dernière édition:
Yeeess, and the winner is ....

Merci les gars,

Le gagnant est Tototiti2008
king.gif

Parfaitement ce que je voulais et je peux l'intégrer dans Evaluate

En plus je n'étais pas loin dans ma formule de base 🙄
=SOMMEPROD((MAX(C2:C40))*(D2: D40="10511040")*LIGNE(C2:C40))

Voici mon petit code 😉
Code:
Function DerLigE(CodeArt As String)
  Dim DLig As Long
  ' Mettre la valeur de retour de la fonction à ZERO
  DerLigE = 0
  ' Trouver la dernière ligne de la feuille des ENTREES
  DLig = Sheets("Entrees").Range("A" & Rows.Count).End(xlUp).Row
  ' Calculer la ligne du code dont la date est la plus grande
  DerLigE = Application.Evaluate("=SUMPRODUCT((Entrees!C2:C" & DLig & "=MAX(Entrees!C2:C" & DLig _
    & "))*(Entrees!D2:D" & DLig & "=""" & CodeArt & """)*ROW(Entrees!C2:C" & DLig & "))")
End Function

Merci JC, pour t'être décarcassé 😛

Un grand merci à tous, y'a pas à dire c'est vraiment tiptop sur ce forum
yaisse2.gif


Ca repose les neurones qui surchauffent
hola.gif
 
Dernière modification par un modérateur:
Re : Numéro de ligne de Max(Date) + Code correspondant

Bonjour à tous,

Euh, je veux pas jouer les rabats-joie mais comme je l'avais mis dans mon Edition, ça ne marche pas... explication :
Si le code 10511040 n'existe pas à la date maximale, la formule ne fonctionne pas.
Si le code 10511040 existe plusieurs fois à la date maximale, ça additionne les numéros de lignes correspondants.

Bref, cette formule ne fonctionne que si :
pour chaque date, on a forcément le code 10511040
on ne peut avoir plus d'une fois le code 10511040 pour une date donnée
et je ne sais pas si ça correspond à ton cas.
 
Re : Numéro de ligne de Max(Date) + Code correspondant

Salut Tototiti2008,

Euh, je veux pas jouer les rabats-joie
Ah ben, là si c'est clair 🙄
Noooon, je déconne 😀 aucun soucis, tu fais bien de préciser

mais comme je l'avais mis dans mon Edition, ça ne marche pas... explication : si le code 10511040 n'existe pas à la date maximale, la formule ne fonctionne pas.
En fait j'utilise cette fonction pour gérer les retours d'article dans un stock.
Dans un USF, j'interdit un retour si il n'y a pas eu de sorties préalables (normal)
Donc le code est obligé d'exister 😉

Si le code 10511040 existe plusieurs fois à la date maximale, ça additionne les numéros de lignes correspondants.
Là, effectivement ça peut être problématique 🙁
Vu que j'effectue des sorties d'articles par comptes chantier
Donc je peux effectivement avoir le même code à la même date mais pas pour le même chantier !

Zut de zut, il faut que je passe par la bonne vieille méthode "seek"
Passer chaque ligne correspondant au code article de la fin vers le début.

Sachant que j'utilise la méthode FIFO, pour moi un retour d'article ne peut ce faire quand "LOLI"
Last Out Last In (je sais que ça ne se dit pas 😀)

Bon et bien dommage, je voulais accélérer le processus autrement, mais j'ai l'impression que ce n'est pas possible,
à moin que .... Un "matricielliste" passe par là et me trouve une formule magique,
mais pas trop longue en temps traitement 😉

Merci quand même
 
Re : Numéro de ligne de Max(Date) + Code correspondant

re,

Hum hum vu ton dernier message et le fait que tu dis un même code a une même date mais pas sur un même chantier, cela laisse a penser que tu as une colonne pour référencer le chantier en question.

Si l'on admet que cette référence chantier soit en colonne E la formule Tototiti2008 peut etre aménagée en ajouatnt ce test chantier

=SOMMEPROD((MAX(C2:C40))*(D2: D40="10511040")*(E2:E40="reference chantier)*LIGNE(C2:C40))

Voila a toi de voir

Jocelyn
 
[resolu]

Salut Jocelyn,

Merci pour ta remarque, je pense avoir trouver la solution 😉

Comme j'effectue des sorties en FIFO, j'enregistre sur mes sorties le PU de sortie.

Du coup je me sert de ce Prix Unitaire pour retrouver la bonne ligne
Code:
Function DerLigE(CodeArt As String, Pu)
  Dim DLig As Long
  ' Trouver la dernière ligne de la feuille des ENTREES
  DLig = ShtE.Range("A" & Rows.Count).End(xlUp).Row
  ' Mettre la valeur de retour de la fonction à ZERO
  DerLigE = 0
  ' Calculer la ligne du code pour le Prix Unitaire de sortie
  DerLigE = Application.Evaluate("=SUMPRODUCT((Entrees!D2:D" & DLig & "=""" & CodeArt & """)*(Entrees!G2:G" & DLig & "=" & Pu & ")*ROW(Entrees!C2:C" & DLig & "))")
End Function

J'ai testé, cela à l'air de fonctionner, il faut voir ensuite en utilisation réelle 😉

Merci pour tout, pour moi, je pense que c'est résolu !

A+
 
Re : Numéro de ligne de Max(Date) + Code correspondant

Bonjour,

En profitant du fait que les codes sont numériques (même si au format Texte dans le fichier), un essai avec cette formule :

Code:
=EQUIV(MAX(SI(D2:D40="10511040";(C2:C40&D2:D40)*1));(C2:C40&D2:D40)*1;0)+1

Toujours matricielle.

Bon j'ai un peu testé, et ça a l'air de passer. Mais à rereretester quand même.

@+
 
- 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éponses
5
Affichages
613
Réponses
2
Affichages
411
Retour