Problème de compréhension d'un code

cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009 - 18 juin 2009 à 08:50
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009 - 19 juin 2009 à 08:31
Bonjour à tous,

Voilà je travaille sur un petit projet et ayant récupéré un petit programme je suis tombé sur une partie de code où je ne comprend presque rien. Si quelqu'un arriverai à m'expliquer ce code, ce serai un grand  plaisir. Voici la partie du code :

Sub Maj_Stock(Libmvt, artmvt, Libart, Typmvt, Qtemvt, Pumvt)
Affecte
If IsError(Exs_Equiv(artmvt, stk.Range(stk.Cells(2, 1), stk.Cells(2, 1).End(xlDown)))) Then
   ' Exit Sub
    ist = Application.CountA(stk.Columns(1)) + 1
    stk.Cells(ist, 1).Value = Libart
Else
    ist = 1 + Exs_Equiv(artmvt, stk.Range(stk.Cells(2, 1), stk.Cells(2, 1).End(xlDown)))
End If

Je sais que cette partie de code fait référence à une fonction personnalisée que voici:

Function Exs_Equiv(Valeur_cherchée, ByRef Tableau_Recherche As Range) '?????
Application.Volatile
If Tableau_Recherche.Columns.Count > 1 Then
    Exs_Equiv = "La plage de recherche ne doit contenir qu'une colonne !"
    Exit Function
End If


Exs_Equiv = ""
On Error Resume Next
Exs_Equiv = Application.Match(Valeur_cherchée, Tableau_Recherche, 0)
If IsError(Exs_Equiv) Then Exs_Equiv = Application.Match(CDbl(Valeur_cherchée), Tableau_Recherche, 0)
If IsError(Exs_Equiv) Then Exs_Equiv = Application.Match(CStr(Valeur_cherchée), Tableau_Recherche, 0)


End Function

Voilà.

En attente de vos réponses et merci d'avance.

BYE!!

wow59

2 réponses

lepetitcodeur Messages postés 8 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 23 juillet 2009
18 juin 2009 à 16:07
Salut,
Alors en gros de ce que je comprends,
la fonction du bas fait un compte d'une expression dans un tableau (avec un peu du tralala mais en gros c'est un compteur de Valeur_cherchee)

Le sub regarde si la recherche a d'abord pas généré une erreur (IsError), puis ensuite si il y a erreur il rajoute une colonne où il print des Libart (pas très sur de ce point, mais c'est un truc dans ce style), et sinon il incrémente du nombre de Valeur_cherchée trouvées dans le tableau de recherche.
ça parait assez logique au vu du nom du truc (Maj_Stock), genre typiquement je compte combien d'unités on m'a livré dans le tableau, et je rajoute à mes stocks (représentés ici par la variable ist j'imagine).
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
19 juin 2009 à 08:31
Bonjour,

Lepetitcodeur peut-tu reforumuler ta réponse car je ne suis pas sur d'avoir tout compris!

Merci d'avance et n'hésitez pas à laisser d'autres massages si vous avez une idée!

BYE!!!

wow59
0
Rejoignez-nous