MACRO EXCEL

CAROLE -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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
Configuration: Windows XP
Safari 532.0

3 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    1. CAROLE
       
      merci poilux!

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

      merciiii
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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