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 - 1

Me 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
20 1 20 2

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.

Rechercher des sujets similaires à "rows count end xlup row donne mauvaise valeur 1er boucle"