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
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
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
Merci d'avance de votre Aide qui me sera très précieuse.
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)
Cordialement
Partager