Imprimer fichier créé par un programme vba

kaiser

XLDnaute Occasionnel
Imprimer fichiers créés par un programme vba

Bonjour

Voila sur une feuille j'ai un programme en VBA qui ,en fonction de la couleur des cases, va remplir un fichier annexe (en demandant deux infos via un inputbox) puis l'enregistrer sur une autre nom.

j'aimerais que à la fin de ce programme, il demande à l'utilisateur si celui ci veut imprimer les fichiers qu'il vient de créer.
Pas de probléme pour faire le VbYesNo, mais je ne sais pas quoi mettre dans le cas oû l'utilisateur dis oui.

Voici mon code:
Code:
Private Sub CommandButton1_Click()

Dim Cell As Range
Dim flag As Boolean

feuille = ActiveSheet.Name
Application.ScreenUpdating = False

For n = 9 To Range("B65536").End(xlUp).Row Step 3
If n = 30 Then n = 33
Workbooks.Open "c:\Documents And Settings\diaquint\My Documents\rpl.xls"
Workbooks("2007Schicht2modif1.xls").Activate
Set plage_date = Range("D" & n & ":AG" & n)

i = 6

   For Each Cell In plage_date
    If Cell.Interior.ColorIndex = 6 Or Cell.Interior.ColorIndex = 38 Then
    Application.ScreenUpdating = True
    Application.Calculation = xlManual
    'Application.EnableEvents = False
    If Not Cell.Comment Is Nothing Then Cell.Comment.Visible = True
    flag = True
    
        
i = i + 1
    nom = Range("B" & n)
    prenom = Range("B" & n + 1)
    Workbooks("rpl.xls").Sheets("sheet1").Range("E4") = prenom & " " & nom
    Workbooks("rpl.xls").Sheets("sheet1").Range("E4").Borders.LineStyle = xLineStyleNone
    Workbooks("rpl.xls").Sheets("sheet1").Range("E30") = "Fait le " & Date
    Workbooks("rpl.xls").Sheets("sheet1").Range("E30").Font.Bold = True
    heure = Cell.Value
    jour = Cells(6, Cell.column)
     Application.ScreenUpdating = False
         Select Case feuille
          ...
         End Select
         
    Workbooks("rpl.xls").Worksheets("sheet1").Range("G3") = mois
    With Workbooks("rpl.xls").Worksheets("sheet1").Range("G3").Font
    .Bold = False
    .Italic = False
    .Underline = False
    End With
    Workbooks("rpl.xls").Worksheets("sheet1").Cells(i, 2) = heure
    Workbooks("rpl.xls").Worksheets("sheet1").Cells(i, 4) = jour & " " & mois

    remplace = InputBox("Entrez le nom de la personne remplacée le " & jour & " " & mois & " par " & prenom & " " & nom, "Remplacement", lastname, 9960, 330)
    Workbooks("rpl.xls").Worksheets("sheet1").Cells(i, 5) = remplace
    lastname = remplace
    If Cell.Interior.ColorIndex = 38 Then
    poste = "Neutra"
    Else
    poste = InputBox("Entrez le poste", "Remplacement", lastposte, 9960, 330)
    lastposte = poste
    End If
    Workbooks("rpl.xls").Worksheets("sheet1").Cells(i, 6) = poste
    If Not Cell.Comment Is Nothing Then Cell.Comment.Visible = False
 End If
Next Cell
If flag Then
Workbooks("rpl.xls").Sheets("sheet1").Range("E4") = prenom & " " & nom
Workbooks("rpl.xls").Sheets("sheet1").Range("E4").Borders.LineStyle = xLineStyleNone
Workbooks("rpl.xls").Sheets("sheet1").Range("E30") = "Fait le " & Date
Workbooks("rpl.xls").Sheets("sheet1").Range("E30").Font.Bold = True
Workbooks("rpl.xls").SaveAs Filename:="remplacement " & mois & " " & nom
End If
flag = False
Next n
Workbooks("2007Schicht2modif1.xls").Activate
Workbooks("rpl.xls").Close
'Application.ScreenUpdating = True
Application.EnableEvents = True
[COLOR="Red"]reponse = MsgBox("Voulez-vous imprimer les fiches de remplacements?", vbYesNo + vbQuestion, "Impression Fiche de Remplacement")
If reponse = 6 Then
[/COLOR]If reponse = 7 Then

End If
End If
Application.Calculation = xlAutomatic
End Sub
 
Dernière édition:

Toine

XLDnaute Occasionnel
Re : Imprimer fichier créé par un programme vba

je sais po sa peut peut etre marcher avec de la chance jai deja vue un truc plus ou moins comme sa sur une apli mais ma mémoire c'est comme du gruillere (manger pas la souris)^^
 

Toine

XLDnaute Occasionnel
Re : Imprimer fichier créé par un programme vba

dsl suis dislexique(et impeut féneants ) mais je me soigne encore une fois pardon pour mon orthographe et ma gramaire qui sont toute deux dignes d'un robinson de retour en métropole aprés 20 a n'écrire que SOS sur la plage
:p
mais promis je me soigne je vait chez l'ortophoniste que me fait faire des tas d'exercice je rentombe en enfance (c'est pas si loin en fin de compte ^^)
 

Toine

XLDnaute Occasionnel
Re : Imprimer fichier créé par un programme vba

arg
donc je ne sait po
a mon avis l'idée de la boucle est bonne
pour le reste je ne sait pas
je cherche encor ^^
ta page a un nom ou sa reste "sheet 1"?? peut étre sa
ta modif le code ??
Code:
For Each Worbook In Workbooks
MsgBox "coucou"
Next
sa sa marche donc ...
sa vien du code d'impretion je pense
cf le nom de la feuille
ou alors il faut activer le workbook avant de l'imprimer


enfin tien moi au courant ;)
 
Dernière édition:

kaiser

XLDnaute Occasionnel
Re : Imprimer fichier créé par un programme vba

A part pour le fichier de pointage ou le nom du sheet correspond au mois en cours, pour les autres fichiers le sheet1 s'appelle sheet 1.

En cherchant sur le net j'ai trouvé un code pour un imprimer uniquement les feuilles d'un classeur comportant un mot:

Code:
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

J'ai essayé de bricoler avec ca mais je ne suis arrivé à rien...

je pense que une boucle avec la fonction find est une bonne idée, mais comment lui dire de chercher soit dans un dossier précis soit dans les fichiers excel ouvert?

PS: je faisait que refresh la page précedente poru voir si j'avais des réponse, je viens seulement de voir les posts précédents
 

Toine

XLDnaute Occasionnel
Re : Imprimer fichier créé par un programme vba

la boucle que je tai donner cherche dans les classeur excel ouvert
for each workbook in workbooks parcour les classeur ouvert
mais tout les classeur ouvert même celui qu'il ne faut pas
Code:
for each workbook in workbooks
workbook.acitvate
activesheet.printout
next
essaye un truc du genre voire mm sa ^^
ps pense a mettre un W a workbook dans la boucle il le fait pas auto


____________________________________________________________________________________

info de derniére minute
Code:
Private Sub Workbook_Open()
Dim i As Integer
i = 1
For Each Worbook In Workbooks
Workbooks(i).Activate
MsgBox ActiveWorkbook.Name
i = i + 1
Next
End Sub
jai sa pour toi
alors je texplique
tu active tous les classeur ouvert les un aprés les autre jusquau dernier
sa parait impeut bourin comme sa mais sa marche
juste tu te debrouil pour faire la distinction avec le classeur a ne pas imprimer

remplace le msg box par ta ligne pour imprimer
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 618
Membres
103 608
dernier inscrit
rawane