Fermer un fichier Excel particulier
Fermé
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
-
Modifié par Banshor le 30/04/2014 à 09:56
Banshor Messages postés 10 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 6 mai 2014 - 5 mai 2014 à 11:32
Banshor Messages postés 10 Date d'inscription mercredi 30 avril 2014 Statut Membre Dernière intervention 6 mai 2014 - 5 mai 2014 à 11:32
A voir également:
- Fermer un fichier Excel particulier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Meilleur site de vente entre particulier - Guide
- Ouvrir un fichier .bin - Guide
12 réponses
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
30 avril 2014 à 10:16
30 avril 2014 à 10:16
Bonjour,
Tu utilise la propriété ActiveWorkbook comme une collection alors que c'est déjà un objet Workbook.
Doc : https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.activeworkbook?redirectedfrom=MSDN
Fait plutôt :
Tu utilise la propriété ActiveWorkbook comme une collection alors que c'est déjà un objet Workbook.
Doc : https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.activeworkbook?redirectedfrom=MSDN
Fait plutôt :
ActiveWorkbook.Close
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
Modifié par Banshor le 30/04/2014 à 10:25
Modifié par Banshor le 30/04/2014 à 10:25
Si je fais:
ActiveWorkbook.Close
il ferme le fichier avant de ré-ouvrir le fichier de base. Mais cette fois-ci rien n'est ouvert. J'obtient le logiciel Excel avec aucune page d'ouverte.
J'aimerais bien qu'il comprenne que le fichier a fermé est le fichier enregistrer mais APRES avoir ouvert le fichier de base sinon le fichier de base se renomme car il s'enregistre-sous. Y-a-t-il moyen de fermer la page en arrière plan ? Car l'ActiveWorkbook devient la page de base se ré-ouvrant après l'enregistrement du fichier.
ActiveWorkbook.Close
il ferme le fichier avant de ré-ouvrir le fichier de base. Mais cette fois-ci rien n'est ouvert. J'obtient le logiciel Excel avec aucune page d'ouverte.
J'aimerais bien qu'il comprenne que le fichier a fermé est le fichier enregistrer mais APRES avoir ouvert le fichier de base sinon le fichier de base se renomme car il s'enregistre-sous. Y-a-t-il moyen de fermer la page en arrière plan ? Car l'ActiveWorkbook devient la page de base se ré-ouvrant après l'enregistrement du fichier.
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
30 avril 2014 à 10:41
30 avril 2014 à 10:41
Bonjour,
Sur cette page, tu trouvera un exemple qui te sera utile :
https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.workbooks?redirectedfrom=MSDN
En espérant que cela t'aide.
Sur cette page, tu trouvera un exemple qui te sera utile :
https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.workbooks?redirectedfrom=MSDN
En espérant que cela t'aide.
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
30 avril 2014 à 10:53
30 avril 2014 à 10:53
Bonjour a vous deux,
Gigatrappeur a raison pour activeworkbook.
Mais le probleme vient de ceci
Banshor, quel excel avez-vous (a priori du 2003 vu l'extention .xls) ???
Gigatrappeur a raison pour activeworkbook.
Mais le probleme vient de ceci
ActiveWorkbook.SaveAs (fichierPDF)a part semer la zizanie, ca ne fera jamais un fichier au format PDF
Banshor, quel excel avez-vous (a priori du 2003 vu l'extention .xls) ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
Modifié par pijaku le 30/04/2014 à 12:36
Modifié par pijaku le 30/04/2014 à 12:36
Oui c'est bien du 2003 est pourquoi cela sèmerais la zizanie ? J'ai bien mon fichier PDF de crée grâce à cette ligne:
fichierPDF = Range("K1") & "\" & Range("K2") & ".pdf"
Le soucis viens du fait qu'il ne ferme pas le fichier excel du pdf crée une fois la fichier de base ré-ouvert.
J'ai voulu modifier mon code de cette façon, si ça peut vous donner des idées mais cela ne fonctionne pas, il y a une erreur dans ma ligne de définition du fichierA :
Je dois forcément me servir du Range car les fichiers crées sont tous différents les un des autres du coup je ne peux pas sélectionner le fichier à fermé car il ne sera pas fixe.
fichierPDF = Range("K1") & "\" & Range("K2") & ".pdf"
Le soucis viens du fait qu'il ne ferme pas le fichier excel du pdf crée une fois la fichier de base ré-ouvert.
J'ai voulu modifier mon code de cette façon, si ça peut vous donner des idées mais cela ne fonctionne pas, il y a une erreur dans ma ligne de définition du fichierA :
Sub Sauvegarde() 'Selectionne le chemin et sauvegarde dans le dossier spécifier fichierA = Range("K1") & "\" & Range("K2") fichierPDF = fichierA.pdf" fichierXLS = fichierA.xls" ActiveWorkbook.SaveAs (fichierPDF) 'Réouvre le fichier Excel de base Workbooks.Open Filename:="U:\Projet David\Qualité Perforation Servi Doryl.xls" Workbooks("fichierXLS").Activate ActiveWorkbook.Close False 'Repositionnement de la cellule selectionné sur l'OF à remplir Range("B9").Select End Sub
Je dois forcément me servir du Range car les fichiers crées sont tous différents les un des autres du coup je ne peux pas sélectionner le fichier à fermé car il ne sera pas fixe.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
30 avril 2014 à 12:39
30 avril 2014 à 12:39
Bonjour,
Lorsque vous placez du code sur notre forum, merci d'utiliser les balises code à votre disposition.
Le mode d'emploi (au cas ou) est ICI.
Lorsque vous placez du code sur notre forum, merci d'utiliser les balises code à votre disposition.
Le mode d'emploi (au cas ou) est ICI.
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
30 avril 2014 à 12:50
30 avril 2014 à 12:50
Ça marche, je le ferais maintenant. Désolé
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
30 avril 2014 à 12:50
30 avril 2014 à 12:50
Pas de souci. L'important étant de le savoir.
A+
A+
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
30 avril 2014 à 12:42
30 avril 2014 à 12:42
Re,
J'ai bien mon fichier PDF Vous l'avez ouvert en PDF ???? M'etonnerait beaucoup, vous n'avez que change l'extention
J'ai bien mon fichier PDF Vous l'avez ouvert en PDF ???? M'etonnerait beaucoup, vous n'avez que change l'extention
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
Modifié par Banshor le 30/04/2014 à 13:02
Modifié par Banshor le 30/04/2014 à 13:02
Vous avez raison, le fichier est crée mais inutilisable.. Me voici donc avec un nouveau soucis.. du coup je ne sais pas exporter mon fichier en PDF. Je vais continuer mes recherches, et merci pour les réponses, si vous avez des choses à me proposer je suis ouvert n'y connaissant rien j'ai besoin d'aide ^^"
Le principal étant mon soucis de fichier Excel à refermer derrière pour ne pas obliger l'opérateur du système à devoir refermer la page sauvegardé à chaque lot.
J'aimerais aussi savoir, si je passe sous Excel 2013, je crois avoir vu qu'il y aurai moyen de directement sauvegarder sous PDF. La macro serait elle plus simple ? Du style
Le principal étant mon soucis de fichier Excel à refermer derrière pour ne pas obliger l'opérateur du système à devoir refermer la page sauvegardé à chaque lot.
J'aimerais aussi savoir, si je passe sous Excel 2013, je crois avoir vu qu'il y aurai moyen de directement sauvegarder sous PDF. La macro serait elle plus simple ? Du style
Sub Sauvegarde() 'Selectionne le chemin et sauvegarde dans le dossier spécifier fichierXLS = Range("K1") & "\" & Range("K2") ActiveWorkbook.SaveAs (fichierXLS) 'mais ici un SaveAsPDF.. je ne connais pas la ligne particulière 'Réouvre le fichier Excel de base Workbooks.Open Filename:="U:\Projet David\Qualité Perforation Servi Doryl.xls" 'Repositionnement de la cellule selectionné sur l'OF à remplir Range("B9").Select End Sub
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
30 avril 2014 à 13:36
30 avril 2014 à 13:36
Re,
Excel2007 et plus: peut-etre prevoir a faire la RAZ des cellules a remplir pour le prochain "formulaire"
Excel2007 et plus: peut-etre prevoir a faire la RAZ des cellules a remplir pour le prochain "formulaire"
Sub Sauvegarde()
'adaptez le nom de la feuille
With Worksheets("Feuil1")
'Selectionne le chemin et sauvegarde dans le dossier spécifier
fichierA = Range("K1") & "\" & Range("K2")
'export PDF
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichierA, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Repositionnement de la cellule selectionné sur l'OF à remplir
.Range("B9").Select
End With
End Sub
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
30 avril 2014 à 13:44
30 avril 2014 à 13:44
J'ai déjà pensé à un RaZ oui, j'ai le code déjà près au cas où. Je l'utilisais pour enregistrer les fichiers en .xls => raz => recommencer l'opération.
J'ai l'impression que mon soucis de PDF vient juste du fait que Excel 2003 ne procure pas cette possibilité d'export en PDF sous forme de macro, est-ce possible ?
Merci pour le code j'ai juste un soucis à ce niveau
Il me le surligne en jaune quand je clique sur Débogage avec une erreur d'exécution '438':
Propriété ou méthode non gérée par cet objet
J'ai l'impression que mon soucis de PDF vient juste du fait que Excel 2003 ne procure pas cette possibilité d'export en PDF sous forme de macro, est-ce possible ?
Merci pour le code j'ai juste un soucis à ce niveau
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichierA, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Il me le surligne en jaune quand je clique sur Débogage avec une erreur d'exécution '438':
Propriété ou méthode non gérée par cet objet
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
30 avril 2014 à 18:09
30 avril 2014 à 18:09
Re,
Seulement pour excel 2007 et plus, pas pour 2003. Vu que vous avez ecrit avoir la possibilite d'utiliser excel 2013, j'ai fourni le code qui va bien
Seulement pour excel 2007 et plus, pas pour 2003. Vu que vous avez ecrit avoir la possibilite d'utiliser excel 2013, j'ai fourni le code qui va bien
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
Modifié par f894009 le 30/04/2014 à 19:26
Modifié par f894009 le 30/04/2014 à 19:26
Re,
un code pour export PDF via PDFCreator (imprimante virtuelle) pour tout excel
'intaller PDFCreator(gratuit)
'dans outils, reference: cocher PDFCreator
un code pour export PDF via PDFCreator (imprimante virtuelle) pour tout excel
'intaller PDFCreator(gratuit)
'dans outils, reference: cocher PDFCreator
Sub PrintToPDF_Early()
'Author : Ken Puls ()
'Macro Purpose: Print to PDF file using PDFCreator
' Designed for early bind, set reference to PDFCreator
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim bRestart As Boolean
'/// Change the output file name here! ///
sPDFName = "testPDF.pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
'Activate error handling and turn off screen updates
On Error GoTo EarlyExit
Application.ScreenUpdating = False
Set pdfjob = New PDFCreator.clsPDFCreator
'Check if PDFCreator is already running and attempt to kill the process if so
Do
bRestart = False
Set pdfjob = New PDFCreator.clsPDFCreator
If pdfjob.cStart("/NoProcessingAtStartup") = False Then
'PDF Creator is already running. Kill the existing process
Shell "taskkill /f /im PDFCreator.exe", vbHide
DoEvents
Set pdfjob = Nothing
bRestart = True
End If
Loop Until bRestart = False
'Assign settings for PDF job
With pdfjob
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'Delete the PDF if it already exists
If Dir(sPDFPath & sPDFName) = sPDFName Then Kill (sPDFPath & sPDFName)
'Print the document to PDF
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Wait until the file shows up before closing PDF Creator
Do
DoEvents
Loop Until Dir(sPDFPath & sPDFName) = sPDFName
Cleanup:
'Release objects and terminate PDFCreator
Set pdfjob = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
On Error GoTo 0
Application.ScreenUpdating = True
Exit Sub
EarlyExit:
'Inform user of error, and go to cleanup section
MsgBox "There was an error encountered. PDFCreator has" & vbCrLf & _
"has been terminated. Please try again.", _
vbCritical + vbOKOnly, "Error"
Resume Cleanup
End Sub
Banshor
Messages postés
10
Date d'inscription
mercredi 30 avril 2014
Statut
Membre
Dernière intervention
6 mai 2014
5 mai 2014 à 11:32
5 mai 2014 à 11:32
Merci beaucoup,
le code ne marche pas pour moi, mais je vais forcer la chose pour obtenir un Excel plus récent et recommencer mes tests. Merci
le code ne marche pas pour moi, mais je vais forcer la chose pour obtenir un Excel plus récent et recommencer mes tests. Merci