IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Répéter une impression selon une variable


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Répéter une impression selon une variable
    Bonjour

    J'aimerais ajouter à cet macro une boucle et une requête mais je ne sais pas comment faire.

    a l'heure actuelle la macro m'imprime l'onglet "synth" de tous les fichiers excel présent dans le dossier racine. J'aimerais garder ça mais imprimer un nombre qui serait demandé à la personne.
    Il me faudrait en gros une boite de dialogue qui demanderait combien de fois veut on imprimer puis par la suite imprimer tout les onglet 1 par 1 et répéter cette action en fonction du nombre demandé, ce qui me permettrait de garder l'ordre de mes fichiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Public Sub ImprimeClasseurs()
    Dim NomClass As String, Feuille As Worksheet, Liste As Worksheet, LigListe As Integer
    Set Liste = ThisWorkbook.Worksheets.Add()
     
     
    NomClass = Dir(ThisWorkbook.Path & "\*.xls")
    Do Until NomClass = ""
       If NomClass <> ThisWorkbook.Name Then
          Workbooks.Open ThisWorkbook.Path & "\" & NomClass
          LigListe = LigListe + 1
     
     
          Workbooks(NomClass).Sheets("synth").PrintOut
     
          Workbooks(NomClass).Close False
       End If
       NomClass = Dir()
    Loop
     
    End Sub

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Sbell, bonjour le forum,

    Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public Sub ImprimeClasseurs()
    Dim NomClass As String, Feuille As Worksheet, Liste As Worksheet, LigListe As Integer, NB As Integer
     
    Set Liste = ThisWorkbook.Worksheets.Add()
    NB = Application.InputBox("Veuillez indiquer le nombre de copies.", "NOMBRE", Type:=1)
    If NB = False Then Exit Sub
     
     
    NomClass = Dir(ThisWorkbook.Path & "\*.xls")
    Do Until NomClass = ""
       If NomClass <> ThisWorkbook.Name Then
          Workbooks.Open ThisWorkbook.Path & "\" & NomClass
          LigListe = LigListe + 1
            Workbooks(NomClass).Sheets("synth").PrintOut , copies:=NB
          Workbooks(NomClass).Close False
       End If
       NomClass = Dir()
    Loop
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut suivi impression selon une variable
    Bonjour

    Merci pour ta réponse j'ai bien avancé. Ta boucle fonctionne correctement mais pas exactement de la manière que j'aimerais .

    Je pense qu'elle doit être placé plus tard

    Je t'explique , ça m'a bien imprimé le nombre de fois mes fichiers mais pas dans l'ordre souhaité

    Exemple
    fichier 1 onglet synth
    fichier 2 onglet synth

    J'ai mis deux exemplaires et ton correctif m'a donné
    fichier 1 onglet synth
    fichier 1 onglet synth
    fichier 2 onglet synth
    fichier 2 onglet synth

    J'aurais voulu
    fichier 1 onglet synth
    fichier 2 onglet synth
    fichier 1 onglet synth
    fichier 2 onglet synth

    En gros imprimer tout les fichiers excel dans le dossier racine et après répéter cette impression le nombre de fois demandé. Je continue de chercher mais si tu as la réponse merci d 'avance

    cordialement

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Sbell, bonjour le forum,

    Alors essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Sub ImprimeClasseurs()
    Dim NomClass As String, Feuille As Worksheet, Liste As Worksheet, LigListe As Integer, NB As Integer, I As Integer
     
    Set Liste = ThisWorkbook.Worksheets.Add()
    NB = Application.InputBox("Veuillez indiquer le nombre de copies.", "NOMBRE", Type:=1)
    If NB = False Then Exit Sub
     
    For I = 1 To NB
    NomClass = Dir(ThisWorkbook.Path & "\*.xls")
        Do Until NomClass = ""
           If NomClass <> ThisWorkbook.Name Then
              Workbooks.Open ThisWorkbook.Path & "\" & NomClass
              LigListe = LigListe + 1
                Workbooks(NomClass).Sheets("synth").PrintOut
              Workbooks(NomClass).Close False
           End If
           NomClass = Dir()
        Loop
    Next I
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Impression selon une variable
    Bonjour

    Merci cela fonctionne parfaitement et répond à vos besoins.

    Merci de votre aide ca me simplifie grandement mon travail

    Merci a toute l'équipe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Recopier une ligne selon une valeur d'une cellule donnée.
    Par bokgkik dans le forum Excel
    Réponses: 2
    Dernier message: 07/12/2011, 19h00
  2. Réponses: 1
    Dernier message: 21/01/2011, 10h17
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. Réponses: 12
    Dernier message: 12/09/2007, 16h28
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo