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 :

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
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut dépassement de capacité
    bonjour,

    lorsque je lance mon programme il me dit "dépassement de capacité" sur cette ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     'calcul de deltaZ (o=19, k=44)
            For i = 1 To point
                Range("calcul1!I" & o) = (Range("calcul1!G" & o).Value / (Tan(Range("calcul1!F" & o).Value * (p / 200)))) + Range("calcul1!B" & k).Value - Range("calcul1!B" & k + 1).Value
                    o = o + 1
                    k = k + 1
            Next i
    pourquoi donc.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    - on ne sait pas combient vaut point
    - à quoi te sert une boucle sur i alors que tu n'utilises pas i


    Au bout du compte (puisque tu incrémente o de 1 à chaque passage, tu devrais faire une boucle de 19 à point et utiliser i, non, plutôt que o ?

    Kif kif pour K, qui n'est rien d'autre que i + 25 (puisque k commence à 44 et que ta bpoucle commence à 19 et que 44 -19 = 25 !!!)

    Pour le reste : à toi de vérifier que (dans la boucle) tes cellules existent bien (un simple msgbox te le montrera) ! et de vérifier que tes calculs sont exacts, notamment en ce qui concerne l'utilisation de la fonction Tan (qui doit être cohérente et donc utiliser un chiffre valable, sinon ===>> boum, pardi) !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    alors point vaut ici 2

    et je suis obligé d'utilisé i=1 car si je fait une boucle qui comment a "o" soit 19cela ne va pas fonctionner pour mon cas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    oui tout a été initialisé. je ne comprends pas

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    Private Sub CommandButton2_Click()
     
    Dim p As Single
    Dim point As Integer
    Dim i As Integer
    Dim x As Integer
    Dim y As Integer
    Dim n As Integer
    Dim o As Integer
    Dim k As Integer
     
    k = 44
    n = 18
    o = 19
    x = 17
    y = 1
    point = 2
    p = WorksheetFunction.pi 'permet d'utiliser le nombre pi
     
     
     
        If TextBox34.Value = "" Or TextBox35.Value = "" Or TextBox36.Value = "" Or TextBox37.Value = "" Then
            MsgBox "Il manque des informations."
     
        Else 'debut des calculs
            'calcul de alpha
            For i = 1 To point
            Range("calcul1!D" & x) = Range("calcul1!B" & x).Value + Range("calcul1!C" & x).Value
     
                If Range("calcul1!D" & x).Value > 400 Then
                    Range("calcul1!D" & x) = Range("calcul1!D" & x).Value - 400
                Else
                    Range("calcul1!D" & x) = Range("calcul1!D" & x).Value
                End If
                    x = x + 1
            Next i
     
            'calcul du gisement
            For i = 1 To point
                Range("calcul1!E" & n) = (Range("calcul1!E" & n - 2).Value + Range("calcul1!D" & x).Value) - 200
                    n = n + 1
                    x = x + 2
            Next i
     
            'calcul de la distance moyenne
            For i = 1 To point - 1
                Range("calcul1!H" & o) = (Range("calcul1!G" & o).Value + Range("calcul1!G" & o + 1).Value) / 2
                    o = o + 2
            Next i
     
            'calcul de deltaZ
            For i = 1 To point
                Range("calcul1!I" & o) = (Range("calcul1!G" & o).Value / (Tan(Range("calcul1!F" & o).Value * (p / 200)))) + Range("calcul1!B" & k).Value - Range("calcul1!B" & k + 1).Value
                    o = o + 1
                    k = k + 1
            Next i
     
           'calcul de deltaZmoyen
           For i = 1 To point - 1
     
                If Range("calcul1!I" & o).Value < 0 Then
                        Range("calcul1!J" & o) = ((Range("calcul1!I" & o) * (-1)) + Range("calcul1!I" & o + 1)) / 2
                    Else
                        Range("calcul1!J" & o) = ((Range("calcul1!I" & o + 1) * (-1)) + Range("calcul1!I" & o)) / 2
                End If
                    o = o + 1
            Next i
     
            'calcul de deltaX
            For i = 1 To point - 1
                Range("calcul1!K" & n) = Range("calcul1!H" & o).Value * (Sin(Range("calcul1!E" & n).Value * (p / 200)))
                    n = n + 2
                    o = o + 2
            Next i
     
            'calcul de deltaY
            For i = 1 To point - 1
                Range("calcul1!L" & n) = Range("calcul1!H" & o).Value * (Cos(Range("calcul1!E" & n).Value * (p / 200)))
                 n = n + 2
                 o = o + 2
            Next i
     
            'calcul de X
            For i = 1 To point - 1
                Range("calcul1!M" & o) = Range("calcul1!M" & x).Value + Range("calcul1!K" & n).Value
                    o = o + 2
                    x = x + 2
                    n = n + 2
            Next i
     
            'calcul de Y
            For i = 1 To point - 1
                Range("calcul1!N" & o) = Range("calcul1!N" & x).Value + Range("calcul1!L" & n).Value
                    o = o + 2
                    x = x + 2
                    n = n + 2
            Next i
     
            'calcul de Z
            For i = 1 To point - 1
                Range("calcul1!O" & o) = Range("calcul1!O" & x).Value + Range("calcul1!J" & n).Value
                    o = o + 2
                    x = x + 2
                    n = n + 2
            Next i
     
            Range("calcul1!C11") = point
     
     
            For i = 1 To point
                Range("Calcul1!A" & x) = y
                    y = y + 1
                    x = x + 2
            Next i
     
        End If
     
    hauteur2p.Hide
    Sheets("calcul1").Select
     
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    je viens de retourner le problème dans tous les sens et je ne comprends toujours pas

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonsoir,
    tu as déjà une erreur* ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tan(Range("calcul1!F" & o)...
    quand les cellules sont vides, contiennent 0 ou du texte !

    Complément : je me suis mal exprimé, c'est de l'apparition d'un message d'erreur* dont je parle.

  7. #7
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Re

    As-tu initialiser o = 19?
    Dans ta boucle, tu initialises i de 1 à point, as tu initialisé point?
    Tu ne reprends pas i dans le déroulement de ta boucle!

    @+
    EDIT bonsoir ucfoutu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/10/2014, 16h08
  2. Transaction, Dépassement de capacité
    Par SkYsO dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 23/12/2008, 14h56
  3. Dépassement de capacité
    Par jean-pierre96 dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 16h04
  4. Réponses: 8
    Dernier message: 06/02/2006, 14h34
  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