Bonjour à tous !
y'a t'il un moyen de reset les variables entre deux appels de procédure ?
ici, ca me retourne toujours que le résultat de la deuxième procédure "ExportTarifMPPromo", comme si ca écrasait le premier appel et je comprends vraiment pas pourquoi..
j'ai essayé avec un "END" a la fin, mais ca stop tout le code, sans continuer les appels qui suivent !
Je vous joins ci-dessous le code :
Merci d'avoir lu !
y'a t'il un moyen de reset les variables entre deux appels de procédure ?
ici, ca me retourne toujours que le résultat de la deuxième procédure "ExportTarifMPPromo", comme si ca écrasait le premier appel et je comprends vraiment pas pourquoi..
j'ai essayé avec un "END" a la fin, mais ca stop tout le code, sans continuer les appels qui suivent !
VB:
ExportTarifMPPromo ThisWorkbook.Path & "/NF/Culinaire/2021/promo/TARIF PROMO ETHNIQUE 2021 LME 2021", "Culinaire", "promo"
ExportTarifChocPromo ThisWorkbook.Path & "/NF/Chocolat/2021/promo/TARIF PROMO CHOCOLATS 2021 LME 2021", "Chocolat", "Promo"
ExportTarifMPPromo ThisWorkbook.Path & "/NF/Nutrition/2021/promo/TARIF PROMO NUT 2021 LME 2021", "Nutrition", "promo"
Je vous joins ci-dessous le code :
VB:
'=================================================
Public Sub ExportTarifMPPromo(CheminTarif As String, NomCat As String, StrPro As String)
Const NF1$ = "Fichier X" 'nom du fichier 1, sans l'extension
Application.ScreenUpdating = 0 'gel de l'écran => c'est plus rapide
b = 0: OpenFile CheminTarif: If b Then Exit Sub 'ouvrir d'abord le 2ème fichier
With ActiveWorkbook ' la ou on prend les données
Worksheets("TARIF MP").Activate
Dim ws As Worksheet, prx As Range, TaxeEco As Range, Appro As Range, EanUC As Range, comm As Range, Design As Range, ValUD As Range, EanPAL As Range, EanUD As Range, cel As Range, TrTn As Range
Dim cod1$, nlm&, dlg&, lg1&, lg2&
Set ws = Workbooks(NF1 & ".xlsm").Worksheets("Feuil2") 'la ou on envoi les données
nlm = Rows.Count: lg2 = ws.Cells(nlm, 2).End(3).Row + 1 'a partir de la derniere ligne +1
dlg = Cells(nlm, 2).End(3).Row
For lg1 = 2 To dlg
With Cells(lg1, 2) 'a partir de la colonne 2 car il n'y a rien dans la 1
Set prx = .Offset(, 13)
Set Design = .Offset(, 6)
Set EanUC = .Offset(, 5)
Set comm = .Offset(, 3)
Set TrTn = .Offset(, 9)
Set TaxeEco = .Offset(, 15)
Set Appro = .Offset(, 12)
Set ValUD = .Offset(, 23)
Set EanUD = .Offset(, 38)
Set EanPAL = .Offset(, 39)
If Not IsEmpty(prx) Then 'faire la suite si un prix existe,
If IsNumeric(prx) Then 'et seulement s'il est numérique !
' If .Offset(, 6) = ctg Then 'la catégorie doit être ok !
cod1 = Cells(lg1, 4).Value 'le Code Fert correspondant dans le fichier ou l'on cherche
Set cel = ws.Columns(1).Find(cod1, , -4163, 1, 1)
If Not cel Is Nothing Then
If cel.Offset(, 16) = "" Then _
cel.Offset(, 2) = NomCat 'Nom catégorie
cel.Offset(, 5) = EanUC
cel.Offset(, 16) = prx 'Prix
cel.Offset(, 17) = TaxeEco 'taxe Eco
cel.Offset(, 18) = ValUD 'Val UD
cel.Offset(, 19) = Appro 'unité d'appro
cel.Offset(, 20) = EanUD 'EanUD
cel.Offset(, 21) = EanPAL 'EanPal
cel.Offset(, 22) = StrPro 'Standard ou promo
cel.Offset(, 23) = TrTn 'taux reduit ou normal
Else
'tout est décalé de une colonne, car 0 est la premiere valeur
Set cel = ws.Cells(lg2, 1)
cel = cod1 'Code SKU
cel.Offset(, 2) = NomCat 'Catégorie
cel.Offset(, 3) = Design 'Désignation
cel.Offset(, 5) = EanUC 'EAN UC
cel.Offset(, 10) = comm 'Commentaire
cel.Offset(, 16) = prx 'Prix
cel.Offset(, 17) = TaxeEco 'taxe Eco
cel.Offset(, 18) = ValUD 'VAL UD
cel.Offset(, 19) = Appro 'unité d'appro
cel.Offset(, 20) = EanUD 'EanUD
cel.Offset(, 21) = EanPAL 'EanPal
cel.Offset(, 22) = StrPro 'Standard ou promo
cel.Offset(, 23) = TrTn 'reduit ou normal
lg2 = lg2 + 1
End If
End If
End If
' End If
End With
Next lg1
End With
ActiveWorkbook.Close
End Sub
Merci d'avoir lu !