Bonjour à tous,
Je travaille actuellement sur une grosse base de données dans laquelle je vérifie à laide d'une boucle For, les données qui sont dans une colonne pour ensuite inscrire un "oui" ou "non" dans une autre colonne.
Pour faire simple, j'ai trois colonnes à "tester" et les résultats sont inscrits dans trois autres colonnes respectivement.
Voici mon code qui m'a été grandement donné sur ce forum :
Option Explicit
Sub Test_Fonctions()
'Vérification Entrepôt
Dim Tableau
Dim x As Long
With Worksheets("SO Net Volume FRANCE pour Excel")
Tableau = .Range("A2:S" & .Range("S" & Rows.Count).End(xlUp).Row).Value
For x = 1 To UBound(Tableau, 1)
Tableau(x, 1) = IIf(InStr(Tableau(x, 7), "MAGASIN") > 0 Or InStr(Tableau(x, 7), " MAG") > 0 Or InStr(Tableau(x, 7), " MAG.") > 0 Or InStr(Tableau(x, 7), " MA") > 0 Or InStr(Tableau(x, 7), "ECHANTILLONS") > 0, "NON", "OUI")
Next
End With
Worksheets("SO Net Volume FRANCE pour Excel").Range("A2").Resize(UBound(Tableau, 1), 19).Value = Tableau
'Vérification volume <50kg
With Worksheets("SO Net Volume FRANCE pour Excel")
Tableau = .Range("A2:S" & .Range("S" & Rows.Count).End(xlUp).Row).Value
For x = 1 To UBound(Tableau, 1)
Tableau(x, 1) = IIf(Tableau(x, 19) > 50, "NON", "OUI")
Next
End With
Worksheets("SO Net Volume FRANCE pour Excel").Range("B2").Resize(UBound(Tableau, 1), 19).Value = Tableau
End Sub
Mon problème, c'est qu'avec ce code, lorsque je vérifie si mon volume est <50kg et que je resize ma colonne B pour y affecter les valeurs trouvées dans ma boucle, j'ai certes bien les valeurs "oui"/"non" qui se mettent dans ma colonne B, mais les données du reste de mon tableau excel se décalent d'une colonne sur la droite : mes en-têtes ne se décalent pas (puisque je commence mes range à 2) mais les données à partir la ligne 2 se décalent une colonne à droite... Je dois sûrement pas bien écrire mon code.
je suis débutante en vba et j'apprends en faisant ^^
Je vous remercie par avance pour votre aide précieuse ! N'hésitez pas à commenter mon code pour m'expliquer où se trouve mon erreur et ainsi je pourrais mieux progresser
Victoire