Posez votre question Signaler

MACRO EXCEL

CAROLE - Dernière réponse le 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
Lire la suite 

MACRO EXCEL »

4 réponses
Réponse
+0
moins plus
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)
CAROLE - 9 nov. 2009 à 14:04
merci poilux!

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

merciiii
Ajouter un commentaire
Réponse
+0
moins plus
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 : http://msdn.microsoft.com/fr-fr/library/21daexkw(VS.80).aspx

Bon courage

;o)
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « MACRO EXCEL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Réduire les coûts d'impression dans l'entreprise