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 mémoire (sans allocation d'objet) lors de l'exécution d'une macro simple [XL-2013]


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
    Ingénieur polyvalent
    Inscrit en
    Juillet 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur polyvalent

    Informations forums :
    Inscription : Juillet 2017
    Messages : 10
    Par défaut Dépassement de mémoire (sans allocation d'objet) lors de l'exécution d'une macro simple
    Bonjour,

    Je suis confronté à un problème que je ne comprends pas trop. J'essaye de faire tourner la macro suivante et au bout d'un temps j'ai un message d'erreur de dépassement de mémoire. Je ne sais pas s'il existe une instruction permettant d'éviter cette saturation de mémoire.

    La macro a pour but de coloré en bleu les caractères soulignés et en rouge les caractères barrés.

    Pour information je fais tourner cette macro sur un fichier de 2700 ligne et 8 colonnes. Or chaque case peut contenir un texte de 2000 caractères.
    J'ai remarqué que la mémoire saturait après un certain nombre de "coloration" et pas en fonction du nombre d'élément vérifié.


    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
     
     
    Sub ModifCouleur()
     
    Dim fichier As Worksheet
     
        Set fichier = Workbooks("PSPEC DELTA.xlsx").Worksheets("Feuil1")
     
    Dim i As Long
    Dim j As Long
    Dim k As Long
     
        j = 1
        Do While j < 9
            i = 1
            Do While i < 2794
                For k = 0 To Len(fichier.Cells(i, j))
                    If fichier.Cells(i, j).Characters(k, 1).Font.Strikethrough = True Then
                        fichier.Cells(i, j).Characters(k, 1).Font.ColorIndex = 3
                    End If
     
                    If fichier.Cells(i, j).Characters(k, 1).Font.Underline = xlUnderlineStyleSingle Then
                        fichier.Cells(i, j).Characters(k, 1).Font.ColorIndex = 32
                    End If
     
                Next k
     
     
                i = i + 1
            Loop
            j = j + 1
        Loop
     
    End Sub
    Merci d'avance,

    Bien à vous,

    Misty

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    bizarre cette limitation.
    Ta boucle k ne devrait pas démarrer à 1 déjà ?
    eric

    PS : appeler fichier une variable As Worksheet est pour le moins trompeur... Drôle d'idée

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur polyvalent
    Inscrit en
    Juillet 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur polyvalent

    Informations forums :
    Inscription : Juillet 2017
    Messages : 10
    Par défaut
    Bonjour,

    Merci pour la réponse

    En effet, appelé la variable fichier est étrange j'en conviens

    Sinon je m'embrouille peut être avec le C mais pensais que la boucle devait commencé par 0.

    Et finalement j'ai trouvé une façon grossière de réglé le problème, j'ai placé les instructions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Application.DisplayAlerts = False
     
    'Mon code
     
    Application.DisplayAlerts = True

    Bien à vous,

    Misty

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

Discussions similaires

  1. [XL-MAC 2011] Erreur lors de l'execution d'une macro simple
    Par Mat262 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/09/2014, 17h02
  2. Plantage général d'excel lors de l'exécution d'une macro
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/10/2009, 10h31
  3. Réponses: 0
    Dernier message: 07/10/2009, 11h38
  4. [OL-2003] Code pour afficher le Pop-Up d'impression lors de l'exécution d'une macro
    Par Dailyplanet dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 05/10/2009, 09h14
  5. figer l'écran lors de l'exécution d'une macro
    Par julien0000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/08/2008, 10h35

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