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 :

Boucle for, erreur de dépassement de capacité [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Boucle for, erreur de dépassement de capacité
    Bonjour à tous!

    J'ai créé une macro qui me permet de donner une valeur à une cellule en fonction de sa voisine :

    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
    For Each Wb In Application.Workbooks
        For Each Ws In Wb.Worksheets
            If Ws.Name = "Suivi" Then
     
            For i = 8 To 10000
                If Cells(i, 4) < "15/06/2008" Then
                Cells(i, 3) = "A"
                    ElseIf Cells(i, 4) > "15/06/2008" And Cells(i, 4) < "15/06/2009" Then
                    Cells(i, 3) = "B"
                        ElseIf Cells(i, 4) > "15/06/2009" And Cells(i, 4) < "15/06/2010" Then
                        Cells(i, 3) = "C"
                            ElseIf Cells(i, 4) > "15/06/2010" Then
                            Cells(i, 3) = "D"
     
     
                End If
            Next i
            End If
        Next Ws
    Next Wb
    J'ai plusieurs problèmes :

    1) Tout d'abord, lorsque je met "For i = 8 to 10 000", j'ai une erreur "dépassement de capacité"..

    2) Lorsque je réduis la boucle à 10 références, mon programme fonctionne pour les 3 premieres lectures, ensuite il ne compare plus les dates et rempli la colonne de A..

    Quelqu'un a une idée?
    Merci d'avance

    Cordialement
    Chouki

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Visiblement c'est un problème de configuration as tu lancer ce programme après un redemarrage de l'ordinateur ?

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    pour 10000 données à traiter, je te conseillerai de remplacer ta macro en traduisant en Vba la formule "SI", en la tirant vers le bas jusqu'à la dernière ligne et en remplaçant celle-ci par sa valeur, c'est à dire, en fin de macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With sheets("suivi")
       .range(.Cells(8, 3).Address,.Cells(10000, 3).Address) = .range(.Cells(8, 3).Address,.Cells(10000, 3).Address).value
    End With

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 644
    Points : 34 353
    Points
    34 353
    Par défaut
    salut,

    attention, si tu veux comparer des dates, il serait plus judicieux de passer par la bonne syntaxe des dates, avec les # avant et apres au lieu des guillemets

    pour le depassement je propose de deja declarer ta variable i

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Bonjour et merci pour vos réponses,

    J'ai déclaré ma variable i as Byte, j'ai mis mes dates entre #.. mais toujours le même probleme :

    " Erreur d'execution '6' dépassement de capacité"..

    J'ai essayé d'éteindre et de rédemarrer le PC mais ce problème est toujours là..

    Une autre idée?

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Et bien tu le dis toi-même, tu as déclaré ta valeur comme Byte, et l'aide en ligne () nous dit ceci :
    Byte Data Type


    Byte variables are stored as single, unsigned, 8-bit (1-byte) numbers ranging in value from 0–255.

    The Byte data type is useful for containing binary data.
    il est là ton dépassement de capacité.

    Il te faut un integer (32767) ou un long.
    Je te conseille un long.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup !

    Je vais maintenant penser à l'aide en ligne

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

Discussions similaires

  1. erreur 6 dépassement de capacité
    Par mnssylvain dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/02/2008, 11h45
  2. Erreur 6 Dépassement de capacité
    Par berti dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/12/2007, 15h15
  3. erreur de dépassement de capacité
    Par jessy212 dans le forum Access
    Réponses: 3
    Dernier message: 24/08/2006, 12h17
  4. Réponses: 1
    Dernier message: 08/08/2006, 18h05
  5. Réponses: 8
    Dernier message: 06/02/2006, 14h34

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