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 Excel] pb depassement de capacité


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 493
    Par défaut [VBA Excel] pb depassement de capacité
    j'ai un tableau à 2 dimensions (1911 lignes et 2261 colonnes), et j'écris les valeurs du tableau dans un fichier texte.

    voici les lignes de code pour écrire dans le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For l = 1 To nbl
            For c = 1 To nbc
                'toto = x_0 + (c - 1) * 50
                Print #num_out, CStr(y_0 + (l - 1) * 50) & dlm_out & CStr(x_0 + (c - 1) * 50) & dlm_out & T_MNT(l, c)
            Next c
        Next l
    nbl et nbc contiennent les valeurs 1911 et 2261, déclarées en type integer.
    x_0=860000 et y_0=1781000 (constantes déclarées en type long)

    l'instruction print plante quand l=1 et c=657 au niveau de CStr(x_0 + (c - 1) * 50), avec le message d'erreur 'dépassement de capacité'.

    à ce niveau, x_0+(c-1)*50 vaut 892800, ce qui ne correspond à aucune valeur limite d'un type de donnée.

    quelq'un a-t-il une idée du problème ?

  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
    teste ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub testegrandeur()
    On Error GoTo error1
    Dim a As Byte
    a = 255 + 255 - 255
    MsgBox ("ca passe avec des nombres")
    a = a + a - a
    Exit Sub
    error1:
    MsgBox ("ca passe pas avec des variables ")
    End Sub
    moralité vb utilise une valeur tampon à laquelle il donne une taille qu'il juge convenable pour 255 il ne se trompe pas mais pour a (byte) qui vaut pourtant
    255 quand le tampon vaut 510 il pleure

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si le dépassement de capacité ne concerne pas les nombres, alors le pb vient "d'ailleurs". Essaie d'ajouter un retour chariot en fin de ligne et dis-nous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Print #num_out, CStr(y_0 + (l - 1) * 50) & dlm_out & CStr(x_0 + (c - 1) * 50) & dlm_out & T_MNT(l, c) & chr(13)
    A tout hasard

Discussions similaires

  1. VBA : depassement de capacité.
    Par Jeanluc17 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/03/2013, 12h24
  2. [VBA-E] erreur 1004 et depassement de capacité dans une boucle
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 11/02/2007, 13h37
  3. [VBA-E]Depassement de capacité
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/05/2006, 15h13
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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