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 :

[VBA-E]Dépassement de Capacité incompréhensible


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut [VBA-E]Dépassement de Capacité incompréhensible
    bonjour,
    je ne comprends pas pourquoi excel me sort ce bug de dépassement de capacité.
    je mets le code et après j'explique les données qui m'ont fait buguer.
    Code Fonction qui bugue : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    'définition des variables qui apparaissent dans le code
    Dim iTab(6) As Long
    Dim lSalaire As Long
     
    Public Sub CreeNonCadreDepuisLigneDemo(LigneOuvrier As clLigneDemographie, LigneEmploye As clLigneDemographie, LigneMatrise As clLigneDemographie)
    Dim i As Integer
    Dim dTmp As Double
    For i = 0 To 6
        If i = 1 Then
            dTmp = (LigneOuvrier.Age * LigneOuvrier.Effectif + LigneEmploye.Age * LigneEmploye.Effectif + LigneMatrise.Age * LigneMatrise.Effectif) / (Me.Effectif - (Me.Effectif = 0)): i = i + 1
        Else
            dTmp = LigneOuvrier.Element(i) + LigneEmploye.Element(i) + LigneMatrise.Element(i)
        End If
        iTab(i) = dTmp
    Next
    lSalaire = (LigneOuvrier.SalaireMoyen * LigneOuvrier.Effectif + LigneEmploye.SalaireMoyen * LigneEmploye.Effectif + LigneMatrise.SalaireMoyen * LigneMatrise.Effectif) / (Me.Effectif - (Me.Effectif = 0))
    End Sub
    Je bugue quand i=1.Donc j'ai pour le nombre d'ouvrier 1153, l'age de 39 et je me suis renseigné 39*1153=44 967<2 147 483 647 (qui est la limite du type long).
    Dans le doute, je suis passé par une variable temporaire en double pour avoir un nombre plus grand (sait on jamais).
    Mais rien n'y fait, et je ne vois pas pourquoi ça me fait cette erreur.

    je remercie d'avance la personne qui prendra le temps d'analyser et de répondre...

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    ligneouvrier.age est probablement un entier

    vba se sert des variables intermédiaires pour effectuer ses calculs
    teste ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Function tdepass() As Integer
    Dim t As Integer
    Dim rep As Double
    t = 2
    t = t ^ 14
    MsgBox (t)
    tdepass = t * 2 / 2
    end Function

    seule facon de faire passer par des variables tampons de type double ou variant

  3. #3
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut
    arff oki merci je vais essayer tout de suite

Discussions similaires

  1. Dépassement de capacité Tableau dynamique VBA
    Par hehee dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/06/2013, 18h21
  2. [Toutes versions] Dépassement de capacité [VBA]
    Par Tchebitchev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2012, 08h35
  3. VBA-Word:Erreur 6 de dépassement de capacité
    Par zahui_eric dans le forum VBA Word
    Réponses: 3
    Dernier message: 04/04/2007, 15h17
  4. [VBA-E] Problème de dépassement de capacité sous Excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2006, 10h36
  5. détection de dépassement de capacité
    Par tut dans le forum C++
    Réponses: 10
    Dernier message: 01/12/2004, 22h11

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