Dépassement de capacité VBA

Résolu
Bonjour,

J'ai écrit une variable en DIM as Long avec une boucle jusqu'en fin de colonne.
Or lorsque je lance la procédure, je reçois un message de "Erreur d'exécution "6" Dépassement de capacité".

Je ne sais pas à quoi correspond ce message, j'ai changé la variable mais toujours le même message.

Voici le début de la procédure :

Sub stock_reception()


'Initialisation de la variable ecart_de_stock
Dim ecart_de_stock As Long
ecart_de_stock = 2

'Commencer la boucle en colonne E
For ecart_de_stock = 2 To Range("E2").End(xlDown).Row

'Dans la boucle, effectuer le calcul selon la condition
If Not IsEmpty(Cells(ecart_de_stock, 5)) Then

'Définir la date du jour pour le nouvel inventaire
If Not IsEmpty(Cells(ecart_de_stock, 3)) And Cells(ecart_de_stock, 1) = "" Then
Cells(ecart_de_stock, 1) = Date

Else

End If

'Définir le mois en fonction de la date de saisie
Cells(ecart_de_stock, 2) = Month(Cells(ecart_de_stock, 1))

'Afficher 0 ou 1 en fonction de l'écart d'emplacement
If Cells(ecart_de_stock, 4) - Cells(ecart_de_stock, 5) = 0 Then

Cells(ecart_de_stock, 6) = 1

Else

Cells(ecart_de_stock, 6) = 0

End If

'Afficher l'ecart des bobines entre le stock physique et informatique, sans signe
Cells(ecart_de_stock, 7) = Abs(Cells(ecart_de_stock, 4) - Cells(ecart_de_stock, 5))

'Effectuer le calcul en % de l'écart des bobines
Cells(ecart_de_stock, 8) = Abs(1 - (Cells(ecart_de_stock, 7) / Cells(ecart_de_stock, 4)))

Else

End If
Next

ActiveWorkbook.RefreshAll

End Sub


Comment puis je y remédier ?
Merci

5 réponses

  1. Voici la nouvelle fonction SI que j'ai imbriqué :

    'Dans la boucle, effectuer le calcul selon la condition
    
    If Not IsEmpty(Cells(ecart_de_stock, 5)) Then

    'Définir la date du jour pour le nouvel inventaire
    If Not IsEmpty(Cells(ecart_de_stock, 3)) And Cells(ecart_de_stock, 1) = "" Then
    Cells(ecart_de_stock, 1) = Date
    Else

    End If

    'Définir le mois en fonction de la date de saisie
    Cells(ecart_de_stock, 2) = Month(Cells(ecart_de_stock, 1))

    'Afficher 0 ou 1 en fonction de l'écart d'emplacement
    If Cells(ecart_de_stock, 4) - Cells(ecart_de_stock, 5) = 0 Then
    Cells(ecart_de_stock, 6) = 1
    Else
    Cells(ecart_de_stock, 6) = 0
    End If

    'Afficher l'ecart des bobines entre le stock physique et informatique, sans signe
    Cells(ecart_de_stock, 7) = Abs(Cells(ecart_de_stock, 4) - Cells(ecart_de_stock, 5))

    'Calculer un écart avec une division par 0
    If Cells(ecart_de_stock, 4) > 0 Then

    'Effectuer le calcul en % de l'écart des bobines
    Cells(ecart_de_stock, 8) = Abs(1 - (Cells(ecart_de_stock, 7) / Cells(ecart_de_stock, 4)))

    Else

    'Valeur de 100% par défaut si le stock physique et info sont vides
    If Cells(ecart_de_stock, 4) = 0 And Cells(ecart_de_stock, 5) = 0 Then
    Cells(ecart_de_stock, 8) = 1

    Else
    'Valeur de 0% par défaut si il y a un écart entre le st info et physique
    If Cells(ecart_de_stock, 4) <> Cells(ecart_de_stock, 5) Then
    Cells(ecart_de_stock, 8) = 0

    Else
    End If
    End If
    End If


    End If
    1. Après quelques tests, la formule fonctionne me différencie bien les différents cas retrouvés.

      Je vous remercie d'avoir pris du temps pour répondre :)