Recherche de valeurs dans un tableau

Fermé
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015 - 7 juil. 2015 à 10:27
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 8 juil. 2015 à 15:04
Bonjour à tous,

Je rencontre un nouveau problème avec excel...
Je voudrais faire une recherche qui pour une case de mon tableau cherche sa dernière occurence dans les lignes précédentes, si occurence il y a.
J'ai tenté la rechechev, l'index(equiv) : le problème que je rencontre est le même, ça recherche dans toutes les lignes du tableau et prend la première trouvée.

SI quelqu'un peut m'aider, merci d'avance.


A voir également:

6 réponses

Excel-worker Messages postés 589 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 58
7 juil. 2015 à 11:03
Bonjour,

Merci de nous transmettre un fichier avec exemple pour une meilleur compréhension.

Tu pourras l'héberger ici : www.cjoint.com et nous fournir le lien donné.

Cordialement.
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
7 juil. 2015 à 11:26
https://www.cjoint.com/c/EGhjzGrn8WC
Je n'ai mis que les colonnes pertinantes.
Merci d'avance.
0
Excel-worker Messages postés 589 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 58 > mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
7 juil. 2015 à 12:43
Bonjour,

Je ne comprends pas ce que tu cherche, peux-tu m'expliquer par des exemples les valeurs que tu recherche dans la colonne D. Merci
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
7 juil. 2015 à 13:33
Evidemment, la formule de la colonne D n'était plus la bonne quand j'ai copier mon fichier.
Ca complique la compréhension...

Du coup petite explication de mon doc :
Une commande (colonne A) peut être livrée en une ou plusieurs fois.
En colonne B, on a la quantité totale à produire.
En colonne C, on a la quantité livrée à un moment t.
En colonne D on a la quantité qu'il reste à livrer.

Et le bon fichier, avec à gauche ce qui devrait marcher, et à droite, le résultat espéré.
https://www.cjoint.com/c/EGhlFbjSO4C

Merci d'avance.
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
7 juil. 2015 à 13:35
Et comme je suis vraiment douée, ça fait donc deux fois que je mets le fichier sur cjoint, sans enregistrer avant...
https://www.cjoint.com/c/EGhlIWYmURC
0
Excel-worker Messages postés 589 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 58
7 juil. 2015 à 15:17
Bonjour,

A mettre en D3 et à étirer en bas :

=SI(A3=A2;D2-C3;B3-C3)

Cordialement,
Excel-Worker
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
7 juil. 2015 à 15:27
C'est gentil mais les lignes concernant une même commande ne sont regroupées que dans mon exemple. En réalité j'ai des milliers de lignes et une commande peut avoir des occurences n'importe où.
Et non je ne peux pas trier les commandes pour qu'elles soient regroupées, ça serait trop simple sinon. Les lignes sont classées selon la date de facturation, non pertinantes pour l'exemple, donc inexistante dans mon doc.
Merci quand même
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
7 juil. 2015 à 17:35
Bonjour à tous les deux

Peut être en passant par une macro
http://www.cjoint.com/c/EGhpIU1Zqmg

Cdlmnt
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
8 juil. 2015 à 09:51
J'aurai voulu évité les macros, mais ça marche parfaitement, donc merci.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
8 juil. 2015 à 11:55
Je ne sais pas si on peut vraiment éviter de passer par vba
Une autre possibilité, toujours par macro, et peut être un peu plus rapide, il faut voir ce que ça donne sur un gros fichier

Public Sub RALF()
Dim li As Long, lifin As Long, comm As String, lili As Long
Dim obj As Object, plage As Range
Dim TR(), nbliT As Long, t As Single
t = Timer
With ActiveSheet
  lifin = .Range(coCO & Rows.Count).End(xlUp).Row
  nbliT = lifin - lideb + 1
  ReDim TR(1 To nbliT)
  For li = lideb To lifin
    comm = .Range(coCO & li).Value
    Set plage = .Range(coCO & lideb - 1 & ":" & coCO & li - 1)
    Set obj = plage.Find(comm, , , xlWhole, , xlPrevious)
    If obj Is Nothing Then
      TR(li - 1) = .Range(coQP & li).Value - .Range(coQF & li).Value
    Else
      lili = obj.Row
      TR(li - 1) = TR(lili - 1) - .Range(coQF & li).Value
    End If
  Next li
  .Range(coRS & lideb).Resize(nbliT, 1) = Application.Transpose(TR)
End With
MsgBox "temps mis " & Timer - t & "s"
End Sub

Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 8/07/2015 à 13:04
Plutôt que de traiter le fichier en totalité, on peut effectuer le calcul du RAL au fur et à mesure de la saisie des 3 colonnes commande, QP et QF
http://www.cjoint.com/c/EGilcuFg1SG
0
mstecluque Messages postés 73 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 28 juillet 2015
8 juil. 2015 à 13:18
Merci c'est super!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
8 juil. 2015 à 15:04
De rien,

Si c'est fini, peux mettre le sujet à résolu (en dessous du titre de ton premier message)

Bon après midi
0