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

Macros et VBA Excel Discussion :

Imprimer tous les fichiers avec un mot spécifié dans le nom


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Imprimer tous les fichiers avec un mot spécifié dans le nom
    Bonjour a tous

    Voila j'ai créer une programme en VBA qui permet des gérer les remplacement des personnes au sein d'une entreprie.
    A partir des fiches de pointage et d'un code couleur le programme prend les information qu'il lui faut, m'en demande 2 via inputbox puis met tout ca dans un fichier annexe puis le sauvegarde sous un autre nom.
    Il fait ca pour chaque personne ayant effectué des remplacement pour le mois en cours.

    A la fin du programme j'ai donc un dossier plusieurs fichier avec un non du type "remplacement Dupont avril" "remplacement durand avril" etc etc...

    je souhaiterais donc que a la fin du programme il propose à l'utilisateur d'imprimer les fiches qu'il vient de créer.
    Pas de pb pour le VbYesNo je sais faire, mais je ne sais pas comment faire pour dire au programme d'imprimer tous les fichiers ayant le mot "remplacement" dedans ainsi que la valeur de la variable "mois" que le programme a en mémoire.

    Merci a vous

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    Voilà j'ai fait un petit truc pour imprimer les feuilles qui contiennent le mot remplacement je pense que tu peux t'en inspirer
    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
    Sub imprimer()
    Dim a As String
    Dim i As Integer
    Dim j As Integer
    'compte le nombre de feuilles dans le classeur
    j = ThisWorkbook.Worksheets.Count
    'gestion des erreurs sur Find
    On Error GoTo Line1
    'recherche "remplacement"
    For i = 1 To j
    a = Worksheets(i).Name
    If WorksheetFunction.Find("Remplacement", a, 1) Then
    'active et imprime la feuille
    Worksheets(i).Activate
    ActiveSheet.PrintOut
    End If
    'numéro de la ligne pour la gestion d'erreur
    Line1:
    Next i
    End Sub
    En espérant t'avoir aidé
    Pascale

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci de m'avoir répondu

    Je vais essayer de voir si je peut pas bricoler quelquechose avec ta formule.

    Par contre pourrais tu me dire à quoi correspond le 1 dans les parenthéses suivant la fonction find?

    Merci

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par cyber-kaiser
    pourrais tu me dire à quoi correspond le 1 dans les parenthéses suivant la fonction find?

    Merci
    Tu n'as pas de touche F1 sur ton clavier?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Si mais vu que je suis sur un excel allemand et que je ne comprend pas un mot d'allemand ca m'aide pas beaucoup...

    Pour parvenir a ce que je voulais, j'ai pensé a stocker tout les noms de fichiers enregistré dans un array.
    Pas de souci pour rappeller les variables de l'array soir pour activer le classeur ou pour faire une msgbox avec le nom de fichier.

    Seulement pas moyen de lui dire d'imprimer...

    Quelqu'un aurait une idée?

    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
    Filename = "remplacement " & mois & " " & nom & ".xls"
    Workbooks("rpl.xls").SaveAs Filename:=Filename
    myarray(j) = Filename
    j = j + 1
    ...
    ...
    ...
    
    reponse = MsgBox("Voulez-vous imprimer les fiches de remplacements?", vbYesNo + vbQuestion, "Impression Fiche de Remplacement")
    If reponse = 6 Then
    For j = 0 To 10
    j.PrintOut
    Next
    Else: If reponse = 7 Then GoTo Line1
    End If
    j'ai une erreur 424 "object required" sur la ligne rouge.

    et si je remplace la ligne rouge par "myarray(j).printout"
    j'ai une erreur: compile error "type dismatch"

    cependant si je fais: Msgbox myarray(1)
    j'ai bien une message box qui s'ouvre avec "Remplacement dupont avril.xls"

    merci a vous

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu ne sais pas utiliser un tableau ?
    Quand tu fais
    For j = 0 To 10
    j.PrintOut
    Next
    J est une valeur, pas le nom d'une variable tableau. Remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For j = 0 To 10
        myarray(j).PrintOut
    Next
    Mais je te le mets vraiment par dépit car si tu en es là, tu devrais sérieusement revoir tes bases.

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci à toi de m'avoir repondu.

    Si tu regarde en dessous du code dans mon post précedent, j'ai deja essayé ca et ca passe pas.


    sinon pour en revenir à mes bases, le probléme c'est que j'en ai pas....je suis en stage de fin de DUT génue méca et on me demande de faire du vba...
    Donc t'as beau lire tous les trucs que tu veut sur le net, et regarder des dizaines de programmes, si t'as pas quelqu'un a coté pour t'aider ben tu rame...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    c'est encore moi

    j'ai beaucoup galéré pour bidouiller en vba et comme j'ai un peu de temps aujourd'hui, je vais essayer de te donner un coup de main.

    Pour celà j'ai besoin de la totalité de ton code et bien sur de ton fichier.

    je te laisse mon adresse :
    p.granados@ccl-valleedoree.fr

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    c'est bon j'ai réussi.

    La solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Filename = "remplacement " & mois & " " & nom & ".xls"
    Workbooks("rpl.xls").SaveAs Filename:=Filename
    myarray(j) = Filename
    j = j + 1
     
    reponse = MsgBox("Voulez-vous imprimer les fiches de remplacements?", vbYesNo + vbQuestion, "Impression Fiche de Remplacement")
    If reponse = 6 Then
    j = 0
    Do Until myarray(j) = ""
    Workbooks(myarray(j)).PrintOut
    j = j + 1
    Loop
    Merci

Discussions similaires

  1. Renommer tous les fichiers avec la date du jour
    Par hadrien2811 dans le forum VBScript
    Réponses: 4
    Dernier message: 16/02/2015, 15h13
  2. Activer la recherche de tous les fichiers avec critère "Fichier contenant.."
    Par l_autodidacte dans le forum Vos contributions VB6
    Réponses: 0
    Dernier message: 11/09/2010, 00h16
  3. imprimer tous les fichiers d'un dossier
    Par jerome39 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/01/2010, 16h28
  4. lister tous les fichiers avec des différences entre deux répertoires.
    Par contremaitre dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/03/2008, 15h24
  5. Sélectionner tous les fichiers avec l'extension
    Par babarpapa dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/03/2006, 10h25

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