Erreur: Dépassement de capacité

Anonyme
2016-05-03T14:43:48+00:00

Bonjour,

Je débute actuellement en VBA Excel et j'ai un problème dans l'exécution de ma macro.

Voici le code:

     Dim eff As Integer

     Dim c As Integer

     Dim j As Long

     Dim ma_var As Integer

        eff = 1

        c = 2

'Je calcule le nombre de lignes non vide de mon fichier Excel, ce qui va me permettre de définir la dernière ligne de mon tableau.    

        Do While Cells(c, 1) <> ""

            eff = eff + 1

            c = c + 1

        Loop

    'Je cherche à caclculer un pourcentage de la ligne 2 à ma ligne eff.

    For j = 2 To eff

    Cells(j, 7) = Cells(j, 6) / Cells(j, 5)

    Next j

Cependant, quand la fin de ma boucle est supérieur à 100, j'ai un message d'erreur: Dépassement de capacité.

J'ai essayé de changer les types de mes varaibles, mais cela ne donne rien.

Je sais que la question a été plusieurs fois posée mais je n'ai pas trouvé de réponse qui puisse être adapté à mon problème.

Merci d'avance pour votre aide.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2016-05-17T08:25:57+00:00

Bonjour Célestine,

Tout ce qu'on a sous le nez et qu'on ne voit pas!

Tant mieux si vous avez votre solution.

Cordialement

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
Anonyme
2016-05-12T08:42:06+00:00

Bon Célestine,

Merci de votre fichier; la division par zéro est interdite parce que mathématiquement elle donne un résultat infini...

Ce qui est bizarre, c'est qu'Excel ne vous l'ait pas dit (j'ai fait le test, il s'est arrêté et il m'a dit: #Div/0!)

Donc, évitez toujours un diviseur égal à 0!

Cordialement

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

50 réponses supplémentaires

  1. Anonyme
    2016-05-03T19:31:03+00:00

    Bonjour Célestin,

    Comme je n'ai pas vos données, je vous envoie un exemple dans lequel je calcule dans la colonne I le rapport entre la colonne G et la colonne F;

    Vous le trouverez à l'adresse suivante: http://dl.free.fr/mayum9i1Q

    Le code VBA est:

    Sub compar()

        Nb_Lignes = Sheets(1).Range("a1").CurrentRegion.Rows.Count

        For no_ligne = 2 To Nb_Lignes

            Sheets(1).Range("i" & no_ligne) = IIf(Sheets(1).Range("f" & no_ligne) > 0, Sheets(1).Range("g" & no_ligne) / Sheets(1).Range("f" & no_ligne), 0)

        Next no_ligne

    End Sub

    Je n'ai pas réussi a avoir un dépassement de capacité, mais si vous divisez 1000 000 000 000 000 000 par 0,000 000 000 000 000 001, par exemple, vous risquez d'y arriver.

    Pour les spécifications selon les types de données voir https://msdn.microsoft.com/fr-fr/library/47zceaw7.aspx

    En espérant vous être utile

    Cordialement

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2016-05-03T16:27:54+00:00

    Bonjour Célestin06,

    Quelque chose comme ceci. A condition que les cellules correspondantes en colonne E et F soient renseignées correctement. '------------- Sub test()    Dim eff As Long    Dim c As Range    'Je calcule le nombre de lignes    eff = Cells(Rows.Count, "A").End(xlUp).Row    For Each c In Range("a2:a" & eff)        If c <> "" Then Cells(c.Row, 7) = Cells(c.Row, 6) / Cells(c.Row, 5)    Next End Sub '-------------

    Salutations
    JJ

    Bonjour,

    Je débute actuellement en VBA Excel et j'ai un problème dans l'exécution de ma macro.

    Voici le code:

         Dim eff As Integer
         Dim c As Integer
         Dim j As Long
         Dim ma_var As Integer
                 eff = 1
            c = 2
      

    'Je calcule le nombre de lignes non vide de mon fichier Excel, ce qui va me permettre de définir la dernière ligne de mon tableau.    

            Do While Cells(c, 1) <> ""
                eff = eff + 1
                c = c + 1
            Loop

        'Je cherche à caclculer un pourcentage de la ligne 2 à ma ligne eff.
        For j = 2 To eff
        Cells(j, 7) = Cells(j, 6) / Cells(j, 5)
        Next j

    Cependant, quand la fin de ma boucle est supérieur à 100, j'ai un message d'erreur: Dépassement de capacité.

    J'ai essayé de changer les types de mes varaibles, mais cela ne donne rien.

    Je sais que la question a été plusieurs fois posée mais je n'ai pas trouvé de réponse qui puisse être adapté à mon problème.

    Merci d'avance pour votre aide.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2016-05-03T16:09:21+00:00

    Bonjour,

    Donne un exemple des valeurs de Cells(j, 6) et Cells(j, 5) qui posent problème.

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire