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 :

Mémoire insuffisante pour effectuer cette action [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut Mémoire insuffisante pour effectuer cette action
    Bonjour à tous,

    Je développe une macro Excel en c# avec Visual Studio 2010, sous Windows 7 Pro x64 avec Excel 2010, à la base c'est assez simple:

    J'ai un fichier cible déjà mis en forme, j'ouvre un autre fichier où je fais un tri par ordre croissant sur une zone donnée, puis je sélectionne et copy/colle des lignes d'un fichier à l'autre.
    Tout se passe en mémoire, j'affiche Excel quand le traitement est fini ce qui gagne beaucoup de temps!

    J'ai fais des dizaines d'essais durant la mise au point sans aucun problème particulier, mais depuis la semaine dernière impossible de réaliser le traitement car j'ai le message suivant:

    Nom : erreur_excel.jpg
Affichages : 5726
Taille : 27,2 Ko

    J'ai déjà vérifié que je n'avais bien qu'un seul Excel en mémoire, mon PC a 16Go de ram dont 12 sont dispo, j'ai désinstallé/réinstallé tout le pack Office, mais rien n'y fait!

    J'ai même compilé et transféré le programme de ma macro sur un autre PC qui a Office 2013 et il fait la même erreur!!!

    Si quelqu'un a des idées ou des suggestions car je suis vraiment coincé...
    Merci d'avance!

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Est-il possible qu'il y ait plusieurs instances d'Excel ouvertes en même temps ?

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Est-ce que tu utilises C# pour piloter Excel par automation, ou bien Est-ce que tu utilises C# pour insérer du code dans l'éditeur VBE pour le faire exécuter par Excel après ?

    Tu peux toujours essayer de "passer" ton classeur dans VBA Code Cleaner de Rob Bovey:

    http://www.appspro.com/Utilities/CodeCleaner.htm

    Sinon, essaie avec Excel visible, au cas où...

    Ou bien essaie d'ouvrir ton classeur en partant d'Excel lui-même, en dehors de Caiguisé; d'un coup qu'il te donnerait un autre message d'erreur.

  4. #4
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    et si tu montrais le code en question pour qu'on y voit clair. Surtout la partie relative au tri. (Je penses que ça doit se situer là).

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Si tu n'as pas implémenter la méthode dispose sur ta classe, tu ne déchargeras pas la mémoire!

    Vérifie les procès avec le gestionnaire de taches! Tu verras que les instances d'Excel sont toujours en mémoire
    Dernière modification par Invité ; 11/02/2015 à 00h49.

  6. #6
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Alors...

    @clementmarcotte: Effectivement je pilote Excel en C# avec automation.

    @parmi: Non quand je démarre, il n'y a aucun Excel en mémoire, je vérifie avec le gestionnaire de tâches avant de lancer mon programme.

    Quand au code, j'ai fais plus de tests hier, et le message d'erreur est au moment où je veux ouvrir le 2ème classeur, donc bien avant le tri.
    J'ouvre le 1er comme ça:
    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
                try
                {
                    _LesWorkBooks = _ApplicationXL.Workbooks;
                    _NomFichierBase="C:\\Temp\\Diffusion de plan - trame.xlsx";
                    //ouvre le fichier Excel de base situé dans C:\Temp
                    _MonClasseurBase = _LesWorkBooks.Open(_NomFichierBase, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M);
     
                    //Active la feuille 2 
                    _MaFeuilleBase = (_Worksheet)_MonClasseurBase.Sheets["DP-Page 2"];
                    _MaFeuilleBase.Activate();
                }
                catch (Exception FormBOpen)
                {
                    MessageBox.Show(FormBOpen.Message);
                }
    et j'essaie d'ouvrir le 2ème de cette façon:
    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
                DialogResult result = opFileDialogParcourir.ShowDialog();
                if (result == DialogResult.OK)
                {
                    _NomFichier = opFileDialogParcourir.FileName;
                    TXTBPathFile.Text = _NomFichier.ToString();
                }
                if (TXTBPathFile.Text.Length!=0)
                {
                    try
                    {
                        _LesWorkBooks = _ApplicationXL.Workbooks;
                        //ouvrir le fichier Excel sélectionné
                        _MonClasseur = _LesWorkBooks.Open(_NomFichier, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M, _M);
    
                        //Active la feuille 1 
                        _MaFeuille = (_Worksheet)_MonClasseur.Sheets[1];
                        _MaFeuille.Activate();
    
                    }
                    catch (Exception Parcourir)
                    {
                        MessageBox.Show(Parcourir.Message);
                    }
                }
    Et c'est là (ligne en rouge) que l'erreur apparaît!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/02/2015, 17h35
  2. Mémoire insuffisante pour cette opération
    Par NAHAC dans le forum Débuter
    Réponses: 6
    Dernier message: 13/04/2014, 16h59
  3. [XL-2003] microsoft forms mémoire insuffisante pour cette opération
    Par tomo80 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/07/2011, 14h42
  4. Mémoire insuffisante pour cette opération
    Par CaptainSmoker dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/04/2011, 18h52
  5. Réponses: 5
    Dernier message: 12/02/2007, 14h05

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