IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ne comprend pas pourquoi l'exécution génère Erreur 6 - dépassement de capacité


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Par défaut Ne comprend pas pourquoi l'exécution génère Erreur 6 - dépassement de capacité
    Bonjour,

    j'essaie de faire tourner le code très simple ci-dessous et je récupère une erreur 6 "dépassement de capacité" que je ne comprends pas. Quand je passe en debug, la console pointe vers l'instruction en rouge ci-dessous. Pas de problème si j'exécute pas à pas.

    Merci.

    Sub vba_loop_range()
    Dim iCell As Range
    Dim rowNum, colNum As Integer
    Dim TopAccounts(9) As String
    Dim Values(9) As Double
    Dim Account As String
    Dim Invoicing As Double
    Dim Bottom10 As Double
    Dim i As Integer

    Bottom10 = 0

    For Each iCell In Range("H:H").Cells
    rowNum = iCell.Row
    Account = iCell.Value
    If Account = "Total général" Then
    Exit For
    End If
    If rowNum > 1 Then
    colNum = iCell.Column
    Invoicing = Cells(rowNum, colNum + 1).Value
    Debug.Print Account & " " & Invoicing & " " & Bottom10
    If Invoicing > Bottom10 Then
    Call insert_value(TopAccounts, Values, Account, Invoicing)
    Bottom10 = Values(9)
    Debug.Print "Bottom10 " & Bottom10
    End If
    End If
    Next iCell
    For i = 0 To 9
    Worksheets("VBATests").Cells(i + 1, 1).Value = TopAccounts(i)
    Worksheets("VBATests").Cells(i + 1, 2).Value = Values(i)
    Next
    End Sub

    Sub push_values_down(TopAccounts() As String, Values() As Double, startRow As Integer)
    Dim i As Integer
    If startRow >= 0 And startRow < 9 Then
    For i = 8 To startRow Step -1
    TopAccounts(i + 1) = TopAccounts(i)
    Values(i + 1) = Values(i)
    Next
    End If
    End Sub

    Sub insert_value(TopAccounts() As String, Values() As Double, Account As String, Invoicing As Double)
    Dim i As Integer
    Debug.Print "In insert_value " & Invoicing
    For i = 0 To 9
    If Invoicing > Values(i) Then
    Debug.Print "In insert_value " & i & " " & Values(i)
    Call push_values_down(TopAccounts(), Values(), i)
    TopAccounts(i) = Account
    Values(i) = Invoicing
    Exit Sub
    End If
    Next
    End Sub

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, une piste pourrait être que le type double n'est pas adapté, tu as essayé currency ou decimal ?

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Personnellement, je n'ai pas rencontré de problème en faisant tourner votre procédure mais comme je ne sais pas ce que vous avez entré comme valeur, c'est difficile de se prononcer
    Si vous pouviez publier une illustration de quelques données ce serait plus facile pour comprendre
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [AC-2010] Je ne comprends pas pourquoi j'ai une erreur 91
    Par Dermochelys dans le forum VBA Access
    Réponses: 7
    Dernier message: 16/10/2020, 15h02
  2. [Débutant] Erreur je comprends pas pourquoi!
    Par steph-declic dans le forum C#
    Réponses: 6
    Dernier message: 23/07/2014, 17h02
  3. [MySQL] comprend pas pourquoi erreur
    Par nebil dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/07/2010, 01h05
  4. Réponses: 6
    Dernier message: 17/05/2010, 12h50
  5. Je ne comprends pas pourquoi cette erreur
    Par amine_en_france dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/06/2007, 23h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo