Bjr,
Quelqu’un pourra m’aider à corriger le code VBA de mon fichier excel ci- joint ?
Mdp : Siva
Macro : « CopySales »
Ma feuille « 7SW » comporte le suivie des mouvements de mon stock magasin et la colonne AW à partir le colonne 4 représente la quantité de vente de chaque article.
L’exécution de la macro « CopySales » copie les articles qui ont fait l’objet d’une vente dans la colonne AW de la feuille « 7SW », puis colle dans la feuille « 7S-Sales ».
Correction demandée :
1. L’exécution de la macro doit s’arrêter en affichant un message d’erreur si la colonne AW de la feuille « 7SW » comporte des valeurs négatives ou une valeur décimale (Dans mon exemple la cellule AW7 a une valeur « -1620 » et la cellule AW12 a une valeur « 191.3 ». « Le point » du 191.3 représente un chiffre décimal en anglais).
MsgBox « The sale has a negative value (or) a decimal value !!!».
2. S’il n’y a pas de valeur négative ou de valeur décimal, le collage doit s’effectuer dans la feuille « 7S-Sales » uniquement les articles dont la quantité de vente est différent de « 0 ». Erreur rencontrée actuellement dans la colonne B de ma feuille « 7S-Sales » Item-4 a une valeur « -1620 », Item-6 a une valeur « 0 » et Item-9 a une valeur « 191.3 ».
Petite précision, le format de la colonne AW de ma feuille « 7SW » est en « [=0]"-";General ».
Merci à vous si vous avez du temps à m’accorder.
Désolé la taille de mon fichier est 14,560 Ko. Y-a-t-il un moyen de joindre mon fichier ?
si non le code est :
Sub CopySales()
rep = MsgBox("Are you sure you want to export the data from 7SW to 7S-Sales ?", 20)
If rep = 7 Then
Exit Sub
End If
Sheets("7SW").Unprotect "Siva"
Sheets("7S-Sales").Unprotect "Siva"
Set fw = Sheets("7SW")
Set fs = Sheets("7S-Sales")
Set plage = Union(fs.Range("A1").CurrentRegion.Offset(1, 0), fs.Range("F1").CurrentRegion.Offset(1, 0))
plage.Interior.Color = xlNone
plage.ClearContents
derln = Application.Max(4, fw.Range("C" & 65536).End(xlUp).Row)
For ln = 4 To derln
If IsNumeric(fw.Range("AW" & ln)) Then
lgn = fs.Range("A" & 65536).End(xlUp)(2).Row
fs.Cells(lgn, 1) = fw.Cells(ln, 3)
fs.Cells(lgn, 2) = fw.Cells(ln, 49)
fs.Cells(lgn, 3) = fw.Cells(ln, 7)
fs.Cells(lgn, 4).FormulaR1C1 = "=RC[-2]*RC[-1]"
fs.Cells(lgn, 6) = fw.Cells(4, 51)
fs.Cells(lgn, 7) = fw.Cells(4, 52)
fs.Cells(lgn, 8) = fw.Cells(4, 53)
fs.Cells(lgn, 9) = fw.Cells(4, 54)
fs.Cells(lgn, 10) = fw.Cells(4, 55)
fs.Cells(lgn, 11) = fw.Cells(4, 56)
End If
Next ln
fs.Activate
Range("D2").Select
Sheets("7SW").Protect "Siva"
Sheets("7S-Sales").Cells.Locked = True
Sheets("7S-Sales").Protect "Siva"
End Sub