MACRO EXCEL

Fermé
CAROLE - 9 nov. 2009 à 13:18
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 9 nov. 2009 à 23:30
Bonjour,

mon code me permet de passer en PDF les fichier d'un dossier. Or je ne veux pas que le fichier "book1.xls" soit passé en pdf.

j'ai contourné le problème en sortant de la sub si une erreur survient (c'est le cas quand la macro essaie de passer book1.xls en PDF), mais ce n'est pas très "propre"

Comment sortir book1 de la boucle "proprement"? (je précise que mon code fonctionne bien en l'état.)

Public Sub CommandButton1_Click()
Application.ScreenUpdating = False
Application.EnableEvents = False
DisplayAlerts = False
Dim Fichier As String, Chemin As String
Dim Wb As Workbook

Chemin = ThisWorkbook.Path & "\"
Fichier = Dir(Chemin & "*.xls")
On Error GoTo Olive

Do Until Fichier = Dir(Chemin & "book1.xls")
Set Wb = Workbooks.Open(Chemin & Fichier)
Wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & Fichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

Wb.Close (False)
Set Wb = Nothing
Fichier = Dir

Loop

Application.EnableEvents = True
Application.ScreenUpdating = True
DisplayAlerts = True
Olive:
End Sub
A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 nov. 2009 à 13:37
Bonjour,

Je pense que je ferai comme ça:

Chemin = ThisWorkbook.Path & "\" 
Fichier = Dir(Chemin & "*.xls") 

Do While (Fichier <> "")
If Fichier <> Chemin & "book1.xls" Then
Set Wb = Workbooks.Open(Fichier) 
 Wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & Fichier, Quality:=xlQualityStandard,    IncludeDocProperties:=True, IgnorePrintAreas _ 
:=False, OpenAfterPublish:=False 
Wb.Close (False) 
Set Wb = Nothing 
End If
Fichier = Dir 

Loop 


;o)
0
merci poilux!

peux tu m'expliquer rapidement pourquoi un "Do Until Fichier = Dir(Chemin & "book1.xls")" ne fait pas l'affaire?

merciiii
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 nov. 2009 à 14:43
De rien,

Je ne saurai pas te dire exactement la différénce entre Do While ... Loop et Do Until ... Loop. Tu auras peut être plus d'explication ici : https://www.microsoft.com/en-us/download/details.aspx?id=55984

Bon courage

;o)
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
9 nov. 2009 à 23:30
Bonsoir tout le monde,

Ma façon de voir les choses :

do while : faire tant que ...
do until : faire jusqu'à ce que ...

polux fait : tant que
(Fichier <> "")
donc tous les fichiers (mais teste dans la boucle si le nom est accepté).

toi tu fais : jusqu'à ce que
 Fichier = Dir(Chemin & "book1.xls")"
donc les fichiers qui arrivent après : walou...

eric
0