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 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 8 juil. 2015 à 15:04
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 8 juil. 2015 à 15:04
A voir également:
- Recherche de valeurs dans un tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Trier un tableau excel - Guide
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
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.
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.
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
7 juil. 2015 à 15:17
Bonjour,
A mettre en D3 et à étirer en bas :
=SI(A3=A2;D2-C3;B3-C3)
Cordialement,
Excel-Worker
A mettre en D3 et à étirer en bas :
=SI(A3=A2;D2-C3;B3-C3)
Cordialement,
Excel-Worker
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
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
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
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 426
7 juil. 2015 à 17:35
7 juil. 2015 à 17:35
Bonjour à tous les deux
Peut être en passant par une macro
http://www.cjoint.com/c/EGhpIU1Zqmg
Cdlmnt
Peut être en passant par une macro
http://www.cjoint.com/c/EGhpIU1Zqmg
Cdlmnt
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
8 juil. 2015 à 09:51
J'aurai voulu évité les macros, mais ça marche parfaitement, donc merci.
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 426
8 juil. 2015 à 11:55
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
Bonne journée
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 426
Modifié par ccm81 le 8/07/2015 à 13:04
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
http://www.cjoint.com/c/EGilcuFg1SG
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
8 juil. 2015 à 13:18
Merci c'est super!
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 426
8 juil. 2015 à 15:04
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
Si c'est fini, peux mettre le sujet à résolu (en dessous du titre de ton premier message)
Bon après midi
7 juil. 2015 à 11:26
Je n'ai mis que les colonnes pertinantes.
Merci d'avance.
7 juil. 2015 à 12:43
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
7 juil. 2015 à 13:33
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.
7 juil. 2015 à 13:35
https://www.cjoint.com/c/EGhlIWYmURC