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

alors je te fait un truc s est un test essaye de mettre sa dans ta boucle o lieu du print out
Code:
reponse = MsgBox("Voulez-vous imprimer les fiches de remplacements?", vbYesNo + vbQuestion, "Impression Fiche de Remplacement")
If reponse = 6 Then
For j = 0 To 10
Workbooks(myarray(j)).Activate
activeworkbook.printout
next
 

Toine

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

mais tu va avoire un bug mieux vo faire
Code:
reponse = MsgBox("Voulez-vous imprimer les fiches de remplacements?", vbYesNo + vbQuestion, "Impression Fiche de Remplacement")
If reponse = 6 Then
j=0
loop until myarray(j)=""
Workbooks(myarray(j)).Activate
activeworkbook.printout
j=j+1
next
ou un truc du genre je pense
a plus c'est l'heure de manger ^^
 

kaiser

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

yyyyyyyyeeeeeeeeesssssssssss!

ca marche!

La solution miracle était:

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

Un grand merci à Toine pour son aide :)
 

Toine

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

de rien sa ma apris plein de truc a moi aussi ^^ je te remercie pour ce probléme qui pour moi fut malgret tout épineux lol
ps dsl de t'avoire entrainé sur une mauvaise piste au début
 

kaiser

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

pas de souci, on aurait pu faire marcher ta solution aussi je pense, mais dans la mesure ou c'est pas moi qui vais maniper la macro par la suite, je préfére avoir le truc le plus propre possible.

Ce serais abusé de te demander de jeter un coup d'oeil sur mon autre topic: https://www.excel-downloads.com/thr...uand-la-cellule-repond-a-une-condition.76489/



(ah ben oui j'vais plus te lacher maintenant!^^:D )
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 499
Membres
103 562
dernier inscrit
soso21