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

VBA Access Discussion :

Supprimer des messages d'avertissement dans Excel 2007


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Supprimer des messages d'avertissement dans Excel 2007
    Bonjour à tous les développeurs,

    je vais vous expliquer les problèmes que j'ai avec ma base de donnée en Ms Access 2007.

    J'ai un portail de statisques développer en une version antérieur de Ms Access (J'ignore la version d'origine). Mon client veut ajouter un rapport de synthèse qui génère de façon dynamique des graphiques dans un classeur Excel. Chaque graphique doit être une image et doit être formater avec d'autre informations.

    J'ai donc construit le code pour générer mes graphiques dynamiques dans Excel, et tant que j'utilisais mon code statique, je pouvais générer 5 graphiques sans aucun problème et ajouter un nombre x de workbooks.

    Mais comme j'ai 35 graphiques différents à générer, j'ai automatisé le tout dans des boucles qui extraient les paramètres des tables Access. Depuis, pour une raison que j'ignore, le code qui me permettait de réutiliser un workbook ouvert ou de créer une référence à Excel ne fonctionne plus. Je ne comprend pas pourquoi. Le code n'a pas changé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      Set xla = GetObject(, "Excel.Application")
     
     
       If Err.Number <> 0 Then
           Err.Clear
           Set xla = CreateObject("Excel.Application")
           xla.Workbooks.Add
       End If
     
       xla.Windows(xla.ActiveWorkbook.Name).Activate
       xla.Visible = True

    Maintenant GetObject retourne toujours 0, même quand il n'y a pas d'objet Excel.Application en mémoire. Le code bloque sur la commande d'activation.

    Mon deuxième problème est situé au niveau de la suppression des feuilles de traitement des données. Je sais utiliser le code suivant pour annuler le message de confirmation de la feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       xls.DisplayAlerts = False
       xls.Sheets("Data").Delete
       xls.DisplayAlerts = True
    Cela marche bien, mais mon problème c'est qu'il finis par générer un message d'avertissement disant qu'une des feuilles de donnée possède des références externes invalides. Pourtant, je détruit la feuille source et le graphique. Je ne conserve que la feuille avec les images. Comment faire pour caché ce genre de message.

    Je joins un exemple de BD access.

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    J'ai pensé changer l'ordre dans lequel je supprime mes feuilles et mes graphes. Mais le problème subsiste. C'est étrange qu'il n'y ait aucune formule dans le fichier à la fin. Seulement des images.

    Est-ce que l'avertissement a lieu parce que je ne libère pas correctement la mémoire de mes objets en faisant Set obj = Nothing ?

    Je n'ai toujours pas de piste pour ces 2 problèmes.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous,

    j'ai résolu un de mes 2 problèmes. Celui des messages d'avertissements. J'ai trouvé que la commande qui lançait ce warning était le code qui bouge un graphique vers une autre worksheet. Donc, avec le DisplayAlerts = False, cela a régler mon problème.

    Le problème du GetObject(,"Excel.Application") existe toujours.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/04/2015, 14h13
  2. concaténation des chiffres dans excel 2007
    Par le sportif dans le forum Excel
    Réponses: 4
    Dernier message: 07/07/2013, 12h01
  3. [2005] Filtrage Dynamique des Dimensions dans Excel 2007
    Par BoromSikim dans le forum SSAS
    Réponses: 2
    Dernier message: 12/03/2012, 13h40
  4. Réponses: 7
    Dernier message: 19/10/2009, 13h48
  5. [MySQL] Supprimer des messages d'avertissements
    Par beegees dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/10/2008, 09h58

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