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 :

Plantage Excel après impression VBA [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur d'application Supervision et Automatisme
    Inscrit en
    Septembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'application Supervision et Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2010
    Messages : 4
    Par défaut Plantage Excel après impression VBA
    Bonjour,

    Petite presentation rapide (premier post oblige )
    J'ai 29 ans, je bose dans une entreprise d'automatisme. J'aime bien tout ce qui touche à l'informatique, les jeux videos,... En ce moment StarcraftII.

    Je fait appel à vous car j'ai un soucis avec une des mes macros Excel qui permet d'imprimer, de sauvegarder le fichier excel et de fermer le fichiers. En metant certaine partie de mon code en commentaire, j'ai l'impression que ces les lignes permettant l'impression qui me pose le problème suivant:

    1- lancement de mes macros. Execution OK
    2- lancement macros permettant l'impression, sauvegarde et fermeture
    3- Deux cas possible :
    3.1- L'impression se lance mais l'application Excel plante. Plus précisement, j'ai droit à une fenetre windows indiquant: l'application excel à rencontrer un problème et doit être fermé (voulez vous envoyer le rapport d'erreur)
    3.2- Tout ce passe bien. Mais lorsque que je reouvre le fichier de base, l'application escel plante (idem que sur le 3.1).

    Ceci etant la premiere fois pour moi que je poste sur le forum, je ne sais pas trop des données que vous avez besoin pour m'aider. Donc voici celle que je pense pertinante :

    1- Ceci est ma premiere macro Excel
    2- Les macros excel me permette de remplir des feuilles de differentes données qui sont stocké sur une base SQL Microsoft SQL Server 2005.
    3- Voici ma fonction Print,Save,Close

    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
    Function SavePrintClose()
     
    'Déclaration des variables Internes
    Dim RepSave As String
    Dim Name As String
    Dim NameDate As String
    Dim NameDate_jj As String
    Dim NameDate_mm As String
    Dim NameDate_aaaa As String
    Dim NameHeure As String
    Dim NbrePage As String
     
    'Supression des alertes
    Application.DisplayAlerts = False
     
    'Initialisation des variables internes
    RepSave = Worksheets("Sauvegarde").Range("D6").Value
     
    NameDate = Worksheets("Supervision").Range("D6").Value
    NameDate = Left(NameDate, 10)
    NameDate_jj = Left(NameDate, 2)
    NameDate_mm = Mid(NameDate, 4, 2)
    NameDate_aaaa = Right(NameDate, 4)
    NameDate = NameDate_aaaa & NameDate_mm & NameDate_jj
    'NameDate = Replace(NameDate, "/", "_")
     
    NameHeure = Worksheets("Supervision").Range("D6").Value
    NameHeure = Right(NameHeure, 8)
    NameHeure = Replace(NameHeure, ":", "")
     
    Name = NameDate & "_" & NameHeure & "_" & Worksheets("Rapport Serie").Range("C1").Value & "_Serie.xls"
     
    NbrePage = (Offset / 54) + 1
     
    'Supression des onglet non nécessaire avant sauvegarde et impression
    'Application.DisplayAlerts = False
    Worksheets("Sauvegarde").Delete
    Worksheets("Info Base SQL").Delete
    Worksheets("Supervision").Delete
     
    'Réalisation de l'impression
    Sheets("Rapport Serie").Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=NbrePage, Copies:=1, Collate:=True
     
    'Sauvegarde du Fichier
    ActiveWorkbook.SaveAs Filename:=RepSave & Name, FileFormat:=xlNormal, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
     
    'Fermeture du fichier
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
     
    End Function
    4- A un moment donnée j'avais rajouter un attente de 10s qui encadre l'impression avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Ajout d'attente
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + 10
    waittime = TimeSerial(newHour, newMinute, newSecond)
    Application.Wait (waittime)
    Merci d'avance de votre Aide qui me sera très précieuse.
    Cordialement

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    et si tu exécutes ta macro en pas à pas, elle plante sur l'instruction printout?

    NB: j'adore le dj qui porte ton pseudo

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Billets dans le blog
    1
    Par défaut
    Salut

    J'ai eut le même problème mais pour Word et j'en ai trouvé la cause. En espérant que ce soit le même soucis pour toi avec excel.

    Je suis allé dans word, menu outils / options ; onglet Impression ; et là tu décoches :"Impression en arrière plan".

    Par contre il n'y a pas cette option dans les paramètres Excel, mais sait t'on jamais ? Tente de le faire dans word et relance ton excel ensuite.

    Sinon tu peux tenter d'utiliser le doevents à la place de ton Wait:
    DoEvents, fonction
    Arrête momentanément l'exécution afin que le système d'exploitation puisse traiter d'autres événements.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur d'application Supervision et Automatisme
    Inscrit en
    Septembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'application Supervision et Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2010
    Messages : 4
    Par défaut
    Salut,

    Execution de la macro en Pas à Pas avec la touche F8 -> Aucun Soucis

    Modification des options d'impression sous word -> Aucun Effet
    J'ai ensuite rajouter un DoEvents avant et après les lignes d'impression -> Aucun Effet

    Je suis complètement perdu avec cet erreur Excel surtout quand Pas à Pas cela fonctionne.

    Edit: Après différents Test
    Peut être que le problème ne vient pas de l'impression mais de la commande de sauvegarde du fichier sous un autre nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Sauvegarde du Fichier
    ActiveWorkbook.SaveAs Filename:=RepSave & Name, FileFormat:=xlNormal, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    Je viens d'inverse les lignes d'impression et de sauvegarde. Maintenant j'obtient le problème suivant:
    1- Les différentes macros s'exécute sans soucis. (impression Ok, et fermeture fichier ok)
    2- J'ouvre un autre document...Le sablier apparait et j'ai la fenetre windows, l'application excel doit être fermer ou le excel passe en "pas de reponce".

    Peut être est ce un début de piste ?

    Nouvel Essai

    Lorsque je commente les lignes concernant l'impression. Aucun soucis détecter. Les procédures se déroulent correctement.

    Help Me

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    peut être faut il se débarasser de l'objet contextuel ActiveWindow et le remplacer par une variable objet ou par thisworkbook?

    EDIT: comme ça ça donne quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Réalisation de l'impression
    Sheets("Rapport Serie").PrintOut From:=1, To:=NbrePage, Copies:=1, Collate:=True
     
    'Sauvegarde du Fichier
    thisworkbook.SaveAs Filename:=RepSave & Name, FileFormat:=xlNormal, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
     
    'Fermeture du fichier
    Application.DisplayAlerts = True 'ici j'inverse parce que ta macro n'exécutera 
    'pas cette ligne si tu fermes le fichier,
    'et peut être que les erreurs viennent de là
    thisworkbook.Close
    Nb: je suppose que ta macro est contenue dans le fichier sur lequel tu travailles sinon il faut remettre activeworkbook ou une variable objet qui pointe sur celui-ci

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur d'application Supervision et Automatisme
    Inscrit en
    Septembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'application Supervision et Automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2010
    Messages : 4
    Par défaut
    Re,

    J'ai malheureusement toujours le même problème. J'ai également essayé d'exporter et importer mes macros dans un autre fichiers Excel mais sans sucées.

    Effectivement, les macros sont contenue dans le fichiers final. Cela sera une de mes prochaines modifications une fois que ce problème ci sera résolue (supression des macros dans le fichier).

    Autre Essais:
    J'ai commenté la ligne qui permet de fermer le fichier. Dans ce cas là j'obtions ceci:
    1- Les macros se lance correctement
    2- Le fichier est imprimé
    3- On voit que le fichier à changer de nom (normal du à la ligne save)
    4- Excel me rend la main.
    5- j'essaye de fermer le fichier manuelle et la j'ai un plantage d'Excel.

    ESt qu'il n'y aurai pas un soucis de buffer à liberer ou un truc du style ?

    Edit:
    Donc en fait on dirai que c'est la fermeture qui plante. Mais elle doit planter car une opération demandé par la macro ne se déroule pas correctement ou n'est pas finie non? Il y a t'il une ligne de commande qui permet de stopper toutes les opérations macro en cours ?

    Edit 2:
    Je pense que je raconte n'importe quoi car avec les modifications precédente (Supression de la fermeture du fichier) et mise en commentaire de l'impression, j'arrive sans soucis à faire le fichier de manière manuelle. Donc le problème doit bien venir de l'impression.

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

Discussions similaires

  1. [FAQ VBA Excel] Les impressions
    Par SilkyRoad dans le forum Contribuez
    Réponses: 4
    Dernier message: 11/06/2012, 11h34
  2. Ouvrir Excel apres mise en forme via VBA
    Par Anaxagore dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2010, 10h37
  3. Réponses: 8
    Dernier message: 01/09/2010, 21h45
  4. Impression vba excel en pdf
    Par lito74 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/06/2010, 00h40
  5. Réponses: 4
    Dernier message: 07/01/2007, 12h55

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