Impressions multiples

julien1982

XLDnaute Occasionnel
Bonjour et merci pour votre aide.

Je possède une centaine de fichier tous constitué de la meme manière c'est à dire il y a 6 onglets.
Je souhaite imprimer les deux derniers onglets "résultats" et "synthèse" de chaque fichier et faire une compil de tous en pdf. Je voulais donc savoir si il y avait un moyen de faire une impression globale et non d'ouvrir fichier par fichier puis de compiler les pdf?

je vous remercie par avance de votre aide.

J'ai excel 2010 et adobe acrobat pro X.
 

job75

XLDnaute Barbatruc
Re,

Au cas où vous auriez du mal avec les macros en voici deux :
Code:
Sub Imprimer()
Dim chemin$, fichier$
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*xls*") '1er fichier du dossier
Application.ScreenUpdating = False
While fichier <> ""
    If fichier <> ThisWorkbook.Name Then
        With Workbooks.Open(chemin & fichier)
            .Sheets("résultats").PrintOut
            .Sheets("synthèse").PrintOut
            .Close False
        End With
    End If
    fichier = Dir
Wend
End Sub

Sub PDF()
Dim chemin$, fichier$, F As Worksheet, deb As Range
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*xls*") '1er fichier du dossier
Application.ScreenUpdating = False
Set F = Workbooks.Add.Sheets(1) 'document vierge auxiliaire
Set deb = F.[A1]
While fichier <> ""
    If fichier <> ThisWorkbook.Name Then
        With Workbooks.Open(chemin & fichier)
            .Sheets("résultats").UsedRange.Copy deb
            Set deb = deb.Offset(.Sheets("résultats").UsedRange.Rows.Count + 1) 'saut d'une ligne
            .Sheets("synthèse").UsedRange.Copy deb
            Set deb = deb.Offset(.Sheets("synthèse").UsedRange.Rows.Count + 2) 'saut de 2 lignes
            .Close False
        End With
    End If
    fichier = Dir
Wend
F.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Compile.pdf", Quality:=xlQualityStandard
F.Parent.Close False 'fermeture du document auxiliaire
End Sub
Un seul fichier PDF est créé.

A+
 

julien1982

XLDnaute Occasionnel
Re,

Au cas où vous auriez du mal avec les macros en voici deux :
Code:
Sub Imprimer()
Dim chemin$, fichier$
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*xls*") '1er fichier du dossier
Application.ScreenUpdating = False
While fichier <> ""
    If fichier <> ThisWorkbook.Name Then
        With Workbooks.Open(chemin & fichier)
            .Sheets("résultats").PrintOut
            .Sheets("synthèse").PrintOut
            .Close False
        End With
    End If
    fichier = Dir
Wend
End Sub

Sub PDF()
Dim chemin$, fichier$, F As Worksheet, deb As Range
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin & "*xls*") '1er fichier du dossier
Application.ScreenUpdating = False
Set F = Workbooks.Add.Sheets(1) 'document vierge auxiliaire
Set deb = F.[A1]
While fichier <> ""
    If fichier <> ThisWorkbook.Name Then
        With Workbooks.Open(chemin & fichier)
            .Sheets("résultats").UsedRange.Copy deb
            Set deb = deb.Offset(.Sheets("résultats").UsedRange.Rows.Count + 1) 'saut d'une ligne
            .Sheets("synthèse").UsedRange.Copy deb
            Set deb = deb.Offset(.Sheets("synthèse").UsedRange.Rows.Count + 2) 'saut de 2 lignes
            .Close False
        End With
    End If
    fichier = Dir
Wend
F.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Compile.pdf", Quality:=xlQualityStandard
F.Parent.Close False 'fermeture du document auxiliaire
End Sub
Un seul fichier PDF est créé.

A+
Bonjour et merci pour vos reponses. En effet, je vais essayer avec les macro car le faire fichier par fichier ce n'est pas possible bcp trop long.
 

Discussions similaires

Réponses
3
Affichages
214

Statistiques des forums

Discussions
314 088
Messages
2 105 678
Membres
109 413
dernier inscrit
s.amine