Comment imprimer plusieurs classeurs excel en auto ?

Résolu/Fermé
mc_ced Messages postés 2 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 22 janvier 2014 - Modifié par pijaku le 22/01/2014 à 08:00
mc_ced Messages postés 2 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 22 janvier 2014 - 22 janv. 2014 à 07:58
Bonjour à tous,

Dans le cadre d'une validation (fastidieuse) de données au sein d'un laboratoire de biologie clinique, j'aimerais savoir s'il était possible d'imprimer plusieurs classeurs excel contenant 2 feuilles chacun de manière automatique via une Macro ? Je préviens de suite, je suis novice en macro (ayez pitié) ....mais extrêmement volontaire pour apprendre :-D

Je m'excuse d'avance si mon raisonnement et/ou mon explication tire en longueur sans être pour autant clair de suite :-(

Jusqu'à présent, et ce après avoir chercher sur plusieurs forum, j'ai trouvé une macro permettant de réaliser cette tâche...mais cette macro n'imprime que la feuille 1 de chaque classeurs

Option Explicit
Sub OuvrirFichiersImprimerRefermer()
Dim i As Integer
With Application.FileSearch
  .LookIn = ThisWorkbook.Path
  If .Execute > 1 Then
    For i = 1 To .FoundFiles.Count
      If .Filename <> ThisWorkbook.Name Then
        Workbooks.Open .FoundFiles(i)
        ActiveSheet.PrintOut Copies:=1, Collate:=True
        ActiveWorkbook.Close
      End If
    Next i
  Else
    MsgBox "Aucun fichier trouvé"
  End If
End With
End Sub



Voyez-vous un moyen d'intégrer une ligne à cette macro afin qu'elle réalise cette tâche suivante : ouvrir le classeur -> sélectionner les 2 feuilles -> imprimer -> fermer -> ouvrir le fichier suivant -> sélectionner.... et ainsi de suite jusqu'au dernier fichier excel présent dans le dossier ?

Si impossible, l'un d'entre vous pourrait-il me faire ou m'aider à faire une macro exécutant la tâche suivante : ouvrir le classeur -> supprimer la feuille 1 du dit classeur -> valider la confirmation de suppression de la feuille 1 -> enregistrer -> fermer -> ouvrir le classeur suivant -> supprimer... et ainsi de suite...

De cette manière, je pense pouvoir contourner le problème de l'impression unique de la feuille 1 étant donné que j'utiliserai la macro décrite au début du post pour la feuille 1 puis relancerais cette macro pour la réaliser sur la feuille 2 (qui sera seule après suppression de la feuille 1).

Un énorme merci d'avance à ceux qui me liront et qui trouveront (je l'espère) une réponse à ma situation.

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 21/01/2014 à 13:30
Bonjour,

Ne sachant pas combien d'onglet contient chaque classeur, ni quels onglets particuliers doivent être imprimés, la macro imprime tous les onglets d'un classeur.

Je n'ai pas fait de test:

Sub OuvrirFichiersImprimerRefermer()
Dim i As Integer
Dim fl As Worksheet

    With Application.FileSearch
        .LookIn = ThisWorkbook.Path
        If .Execute > 1 Then
            For i = 1 To .FoundFiles.Count
                If .Filename <> ThisWorkbook.Name Then
                    Workbooks.Open .FoundFiles(i)
                    For Each fl In ActiveWorkbook.Worksheets
                        fl.PrintOut Copies:=1, Collate:=True
                    Next fl
                    ActiveWorkbook.Close
                End If
            Next i
        Else
            MsgBox "Aucun fichier trouvé"
        End If
    End With
End Sub


Ici, on ouvre un fichier, on imprime toutes les feuilles d'un classeur ouvert et on referme le fichier puis on passe au classeur suivant.

Nous dire s'il y a des modif à faire.

;0)

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
1
mc_ced Messages postés 2 Date d'inscription mardi 21 janvier 2014 Statut Membre Dernière intervention 22 janvier 2014
22 janv. 2014 à 07:58
Salut Polux31,

Un grand merci à toi, j'ai testé et cela fonctionne du tonnerre. Tu me retire une épine du pied :-D

En bref sujet résolu !
0