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 erreur 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
    Juin 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut VBA Excel erreur dépassement de capacité
    Bonjour,

    J'ai un code qui crée des combobox dans une feuille
    1 par ligne
    Tout se passe normalement si le nombre de combobox est faible

    Dans une feuille avec beaucoup de combobox l'erreur s'affiche à la ligne 329


    Le plantage est ici, à cet instant les valeurs de
    compteur=328
    Rowmax=357

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Le plantage est ici
        PctDone = Compteur * 100 / RowMax
    J'ai changé mes déclarations de variable integer en long mais cela ne change rien.

    Merci pour votre aide

    Le
    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
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    Sub PrepaConclusion()
     
    Dim NbCol As Long
    Dim NbLign As Long
    Dim Hauteur As Double
    Dim Largeur As Double
     
    Dim Adres As String
    Dim i As Long
    Dim n As Long
    Dim IntIdCol1 As Long
    Dim IntIdCol2 As Long
     
    Dim RCell As Range
    Dim sht As Worksheet
    Dim RefCellEnCours As Range
    Dim NomCombo() As String
     
     
    Dim NomCmbx As String
    Dim arret As Long  ' msg de demarrage
     
    Dim oldStatusBar
    ' gestion des erreurs
    On Error GoTo GestionDesErreurs:
     
       arret = MsgBox("Confirmer le démarrage, Lancement la préparation conclusion (ajout des colonnes listBox ? et effacement des listbox) ", vbYesNo + vbDefaultButton2, "CONFIRMATION")
      ' 6= oui, 7 = non
       If arret = 6 Then
       Else
       Exit Sub
       End If
     
    ' désactiver l'affichage pendant l'exécution d'une macro VBA pour en accélérer l'exécution
    Stop 'repasser en false
    Application.ScreenUpdating = True
    ' accélération traitement
    Application.Calculation = xlCalculationManual
    ' message d'attente
    oldStatusBar = Application.DisplayStatusBar
    Application.DisplayStatusBar = True
    Application.StatusBar = "C'est pas fini..."
    ' sablier
    Application.Cursor = xlWait
     
     
    If ActiveSheet.FilterMode Then
        ActiveSheet.ShowAllData
    End If
     
     Call LesParametres
     
    Sheets(Nom_Feuille_Samples).Select
     
    ActiveSheet.Range("A1").CurrentRegion.Select
     
    Set sht = ThisWorkbook.Worksheets(Nom_Feuille_Samples)
     sht.DropDowns.Select
     sht.DropDowns.Delete
     
     ActiveSheet.Range("A1").CurrentRegion.Select
     ' insertion des colonnes
     
    NbCol = Sheets(Nom_Feuille_Samples).UsedRange.Columns.Count
    NbLign = Selection.Rows.Count
     
    For i = 1 To 5
     
    Cells(1, NbCol + i).Value = NomColFinSample(i)
     
    Next i
     
     
    Call LesParametres 'pour mémoriser positions
    Sheets(Nom_Feuille_Samples).Select
     
     
    ' largeur colonne et ligne fixé
    Hauteur = Worksheets(Nom_Feuille_Samples).StandardHeight
    Worksheets(Nom_Feuille_Samples).Rows.RowHeight = Hauteur
    Cells(1, NbCol + 1).RowHeight = 20
    Largeur = Worksheets(Nom_Feuille_Samples).StandardWidth
     
    Worksheets(Nom_Feuille_Samples).Columns.ColumnWidth = 30
     
    'Positionnement cellule en haut à gauche
     
        Adres = ActiveCell.Address
        Range("A1").Select
        ActiveWindow.SmallScroll Down:=Range(Adres).Row - 1
        ActiveWindow.SmallScroll ToRight:=Range(Adres).Column - 1
    Range(Adres).Offset(1, 1).Select
     
     
    ' ajout des listbox v============================================================================
     
    'LancementBarreProgress() µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ
     ' Initialize variables barre de progression.
        Compteur = 1
        RowMax = NbLign
     
    'Création et formulation des listbox
    ReDim Preserve NomCombo(NbLign + 1)
    For i = 2 To NbLign  '===============================================  For i = 2 To NbLign  ==========================================================
     
    Set RefCellEnCours = Cells(i, NbCol + 1)
    RefCellEnCours.Select
    '    ActiveCell.Offset(0, 1).Range("A1").Select
    NomCmbx = "Combo" & (i - 1)
      With RefCellEnCours
        sht.DropDowns.Add(.Left, .Top, .Width, .Height).Name = NomCmbx
     End With
    sht.DropDowns(NomCmbx).Select
    'Stop
     With Selection  'Modif 07/07
     
             .ListFillRange = Nom_PlageIndexAlgo
            .DropDownLines = 8
          End With
     
     
    Set RefCellEnCours = Cells((i), NbCol + 2)
     
    Cells((i), NbCol + 3).Select
     
      ActiveCell.FormulaR1C1 = "=INDEX(" & Nom_PlageIndexAlgo & ",RC[-1])" 'ici on colle formule pour obtenir nomLeCas
     
    sht.DropDowns(NomCmbx).Select 'selection de l'index commence à 1 combo(0) = 1
            With Selection
             .ListFillRange = Nom_PlageIndexAlgo
           .LinkedCell = RefCellEnCours.Address
            .DropDownLines = 8
            .Name = NomCmbx
     
            End With
     
    ' Appel subroutine  barre de progression µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ
         ' Update the percentage completed.
            PctDone = Compteur * 100 / RowMax
     
    ' Call subroutine qui met à jour la progress bar.
            UpdateProgressBar PctDone
            Compteur = Compteur + 1
    Next i  '===============================================  For i = 2 To NbLign  ==========================================================
     
    Call MiseEnFormeListBox
     
    'libération mémoire barre de progression µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ
            Unload UF_Barre
     
     
    Sheets("Outils").Select
     
    ' activer l'affichage pendant l'exécution d'une macro VBA pour en accélérer l'exécution
    Application.ScreenUpdating = True
    ' Fin accélération traitement
    Application.Calculation = xlCalculationAutomatic
    ' message d'attente
     
    Application.DisplayStatusBar = False
    Application.DisplayStatusBar = oldStatusBar
    Application.StatusBar = ""
    ' sablier
    Application.Cursor = xlNormal
     
     
     
    MsgBox ("Remplir les choix <LE CAS produits> des listes déroulantes avant de lancer l'étape suivante (possible aussi de travailler à partir de <index> mais ne pas faire de copier coller dans la colonne <LE CAS produits>. " _
    & Chr(10) & "C'est Terminé !" & Chr(10) & " étape suivante : 7 LAncer algorithme " & Chr(10) & "En cours de developpement 6.Interprétation des listbox semi automatique Trouver les Cas Produits ")
     
     
    Exit Sub 'evite l'execution des gestions d'erreurs si pas d'erreurs
    GestionDesErreurs:
    MsgBox "Erreur: " & Err.Description & Chr(13) & " Erreur : PrepaConclusion, "
     
     
    End Sub
    code

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut
    Bonjour,
    C'est résolu

    J'avais oublié des variables en début de script

    Le passage de la déclaration de integer à long a résolu le problème

    Merci

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

Discussions similaires

  1. VBA-EXCEL erreur de caractère ' dans requete
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/09/2006, 08h42
  2. [VBA-Excel] Erreur automation
    Par argv666 dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 18/09/2006, 19h03
  3. [Access 2003] Erreur "Dépassement de capacité"
    Par Bapt.ice dans le forum Access
    Réponses: 2
    Dernier message: 08/06/2006, 12h15
  4. [VBA][EXCEL] Erreur génération d'un graphique
    Par PoZZyX dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/01/2006, 15h52
  5. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50

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