Bonjour à tous,
L'idée de ma macro est la suivante :
J'ai un fichier vente du mois qui répertorie toutes les ventes et un autre fichier synthèse du mois qui va créer une seule ligne par produit et sommer les volumes et prix de chaque ligne de vente du fichier vente du mois. La colonne qui permet de lier les deux fichiers est la colonne comprenant les codes de produit qui sont uniques. J'utilise la fonction find pour effectuer lier les deux documents.
MOn souci, j'ai des codes produits qui se ressemblent (seul le dernier caractère diffère) et la formule find ne les différencie pas. Par exemple :
sont sommé les valeurs et volumes de vente des produits GOSIN00500X12 et GOSIN00500X1 (la différence est produit à l'unité ou en caisse de 12) sans les différencier. J'ai donc bien deux lignes de produits mais dans chaque ligne GOSIN00500X12 et GOSIN00500X1 on retrouve la même valeur de vente qui correspond aux totales des ventes des deux produits et non d'un seul.
VOici mon code, comment corriger les paramètres de mon find pour eviter cette erreur :
J'espère avoir été assez clair. Merci pour votre aide sur cette application
Amaury
L'idée de ma macro est la suivante :
J'ai un fichier vente du mois qui répertorie toutes les ventes et un autre fichier synthèse du mois qui va créer une seule ligne par produit et sommer les volumes et prix de chaque ligne de vente du fichier vente du mois. La colonne qui permet de lier les deux fichiers est la colonne comprenant les codes de produit qui sont uniques. J'utilise la fonction find pour effectuer lier les deux documents.
MOn souci, j'ai des codes produits qui se ressemblent (seul le dernier caractère diffère) et la formule find ne les différencie pas. Par exemple :
sont sommé les valeurs et volumes de vente des produits GOSIN00500X12 et GOSIN00500X1 (la différence est produit à l'unité ou en caisse de 12) sans les différencier. J'ai donc bien deux lignes de produits mais dans chaque ligne GOSIN00500X12 et GOSIN00500X1 on retrouve la même valeur de vente qui correspond aux totales des ventes des deux produits et non d'un seul.
VOici mon code, comment corriger les paramètres de mon find pour eviter cette erreur :
Code:
For i = 2 To derligne
With Feuil3.UsedRange.Columns(15) 'fichier vente, colonne code produit
Set cSomme = .Find(what:=Feuil4.Cells(i, 20).Text, After:=Feuil3.Cells(3, 15), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
'ou Feuil4.Cells(i, 20) est la feuille synthèse avec i ligne du produit en question
If Not cSomme Is Nothing Then
firstAddress = cSomme.Address
Do
sommeARS = sommeARS + cSomme.Offset(0, 17).Value
Set cSomme = .FindNext(cSomme)
Loop While Not cSomme Is Nothing And cSomme.Address <> firstAddress
End If
End With
J'espère avoir été assez clair. Merci pour votre aide sur cette application
Amaury