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é lors d'une boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Par défaut Dépassement de capacité lors d'une boucle
    Bonjour,

    Je suis face à une erreur de capacité sur ma boucle dès que ma variable Y dépasse la ligne 255, je n'ai pas d'idée sur l'origine du problème .....
    L'idée de la macro : dans le fichier excel principal, l'utilisateur rentre une date et lance la macro qui va comparer cette date avec le tableau de suivi et renvoyer à chaque correspondance des infos de la ligne dans le fichier principal.

    Auriez-vous une solution miracle svp?
    Merci

    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
     
    Sub recherchedinfos()
        Dim ExcelSuivi As Object, ExcelMacro As Object
        Dim tab_CopierColler(8)
        Dim C As String, D As String, E As String, F As String
        Dim Y As Range
        Dim k As Byte, l As Byte, m As Byte
     
        C = "\\Pmcfrsrv02\qualite\Autres\Gestion PV accus neufs et requalif" & "\Copie de 00 - Suivi PV.xls" 
        Set ExcelMacro = ActiveWorkbook
        D = ActiveSheet.Name 'prend le nom de la feuille excel avec le tableau de macro
        E = Range("B1").Value 'la date à rechercher dans le fichier de suivi
     
        ExcelMacro.Sheets("feuil1").Range("A4:I100").ClearContents 'efface le contenu du tableau pour macro
        Application.CutCopyMode = False 'vide le presse papier (stockage de précédente données copier) pour optimiser la macro
     
        Set ExcelSuivi = Workbooks.Open(C) 'ouvre le fichier de référence avec le suivi de PV
     
        k = 4
           For Each Y In ExcelSuivi.Sheets("destruction accus").Range("A2:A2000")
     
                If Y.Value = E Then
                l = Y.Row
                    tab_CopierColler(0) = ExcelSuivi.Sheets("destruction accus").Range("B" & l)
                    tab_CopierColler(1) = ExcelSuivi.Sheets("destruction accus").Range("J" & l)
                    tab_CopierColler(2) = ExcelSuivi.Sheets("destruction accus").Range("C" & l)
                    tab_CopierColler(3) = ExcelSuivi.Sheets("destruction accus").Range("D" & l)
                    tab_CopierColler(4) = ExcelSuivi.Sheets("destruction accus").Range("E" & l)
                    tab_CopierColler(5) = ExcelSuivi.Sheets("destruction accus").Range("F" & l)
                    tab_CopierColler(6) = ExcelSuivi.Sheets("destruction accus").Range("G" & l)
                    tab_CopierColler(7) = ExcelSuivi.Sheets("destruction accus").Range("H" & l)
                    tab_CopierColler(8) = ExcelSuivi.Sheets("destruction accus").Range("I" & l)
     
                    ExcelMacro.Sheets("feuil1").Activate
                    For m = 0 To 8
                    If m <> 5 Then Cells(k, m + 1) = tab_CopierColler(m) Else Cells(k, m + 1) = Format(tab_CopierColler(m), "yyyy")
                    Next m
     
                    k = k + 1
                End If
            Next Y
            ExcelSuivi.Close
            MsgBox ("fini")
    End Sub

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bonjour, bonjour !

    Commencer par vérifier puis corriger la déclaration des types des variables ‼




    __________________________________________________________________________________________________
    Tous unis, tous Charlie

  3. #3
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Par défaut
    Integer plutôt que byte donc?

    (je n'ai jamais fais de théorie en prog ni vba donc j'ai de belles lacunes ...)

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

Discussions similaires

  1. Comment récupérer numéro de cellule lors d'une boucle
    Par mashu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2010, 18h30
  2. [OL-2007] Erreur Array out of bounds lors d'une boucle For .. To ..
    Par IronBibs dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 24/11/2009, 09h49
  3. Problème lors d'une boucle
    Par vdomnet dans le forum Langage
    Réponses: 11
    Dernier message: 04/04/2009, 19h15
  4. Réponses: 4
    Dernier message: 23/02/2009, 16h42
  5. insérer des données dans un tableau lors d'une boucle
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/05/2007, 09h19

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