Cells(Rows.Count, 19).End(xlUp).Row donne une mauvaise valeur 1er boucle
Bonjour,
Je me retrouve face à un petit problème,
j'ai ma fonction ci-dessous qui va me rechercher les différents stocks d'un produit et entre chaque type de produit, j'ai une ligne qui apparait est fait le total des stocks du produit trouvé.
Pour cela, j'utilise 2 variable ( p & q ) pour récupérer les coordonnées des lignes à additionner pour avoir le total stock du produit.
La macro en elle même fonctionne très bien mais a chaque fois et avec des tests différents dans le cadre de la première boucle de ma macro
La variable :
q = Cells(Rows.Count, 19).End(xlUp).Row - 1Me retourne 3O alors que celle-ci devrait me retourner 4 .... Et donc m'écrit dans la cellule la fonction "=SOMME(V4:V30)"
Savez-vous pourquoi celle-ci me retourne une valeur erronée et il y a t-il une solution pour remédier à cela ?
Je n'ai pas mis mon tableur car j'ai tous les données confidentielles déjà enregistré dessus, je verrai pour mettre un exemple si mon cas demande plus d'attention :)
Je vous remercie pour votre aide
Sub RechercherStockDispo()
Dim a As Integer
Dim b As Integer
Dim g As Integer
Dim h As Integer
Dim o As Integer
Dim p As Integer
Dim q As Integer
Sheets("INTEGRATION").Activate
g = Cells(Rows.Count, 14).End(xlUp).Row
Sheets("Stock").Activate
h = Cells(Rows.Count, 1).End(xlUp).Row
For b = 4 To g
p = Cells(Rows.Count, 19).End(xlUp).Row + 1
For a = 4 To h
If Sheets("STOCK").Cells(a, 3).Value = Sheets("INTEGRATION").Cells(b, 14).Value Then
Sheets("STOCK").Select
Range(Cells(a, 1), Cells(a, 13)).Select ' on copie les cellules de données de la ligne
Selection.Copy
Sheets("INTEGRATION").Activate ' on sélectionne la feuille recherche
Range(Cells(Cells(Rows.Count, 19).End(xlUp).Row + 1, 17), Cells(Cells(Rows.Count, 19).End(xlUp).Row + 1, 29)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
o = Cells(Rows.Count, 19).End(xlUp).Row
Cells(Cells(Rows.Count, 19).End(xlUp).Row, 30).FormulaLocal = "=V" & o & "/O" & b & ""
End If
Next
Range(Cells(Cells(Rows.Count, 19).End(xlUp).Row + 1, 17), Cells(Cells(Rows.Count, 19).End(xlUp).Row + 1, 30)).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
Cells(Cells(Rows.Count, 19).End(xlUp).Row + 1, 19).Select
ActiveCell.FormulaR1C1 = "TOTAL"
q = Cells(Rows.Count, 19).End(xlUp).Row - 1
Cells(Cells(Rows.Count, 19).End(xlUp).Row, 22).FormulaLocal = "=SOMME(V" & p & ":V" & q & ")"
Cells(Cells(Rows.Count, 19).End(xlUp).Row, 30).FormulaLocal = "=SOMME(AD" & p & ":AD" & q & ")"
Next
End Sub
Bonjour
je verrai pour mettre un exemple si mon cas demande plus d'attention
Je crois en effet que ce serait une bonne chose pour comprendre ce qu'il en est.
Bye !
On n'a pas besoin du classeur, mais la feuille "Intégration" est nécessaire. Tu retires donc toutes les autres feuilles et tu proposes le classeur ici avec sa macro et ce que tu voudrais obtenir, ainsi que ce que tu obtiens à la place.
Bon bah désolé du dérangement, j'ai réussi à trouver la solution avec un simple "Sheets("INTEGRATION").Select" avant la désignation de la valeur de la variable.