mansourmahdhi
Messages postés2Date d'inscriptionmercredi 9 février 2005StatutMembreDernière intervention19 août 2009
-
9 août 2007 à 12:18
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 2013
-
9 août 2007 à 12:57
Salut,
j'ai un problème avec excel,
je veux dans le même programme imprimer une facture (fichier .xls) et un bon de livraison
(fichier .xls).
pour cela j'ai besoin de deux commades (Facture et Bon de livraison) dont les code ci après
Private Sub facture_Click() Dim x1 As EXCEL.Application
Set x1 = CreateObject("Excel.application")
x1.Workbooks.Open App.Path & "\facture.xls"
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\stock.mdb;"
Set rs = New ADODB.Recordset
rs.Open "select * from sortiec ", cn, 1, 2
If j > 39 Then
Sheets("Feuil1").Range("c" & j + 8 & "") = rs!Date
Else
Sheets("Feuil1").Range("c47") = rs!Date
End If
Set rs3 = New ADODB.Recordset
Set rs4 = New ADODB.Recordset
Set rs5 = New ADODB.Recordset
Set rs6 = New ADODB.Recordset
rs3.Open "select * from sumht ", cn, 1, 2
rs4.Open "select * from sumremise ", cn, 1, 2
rs5.Open "select * from sumtva ", cn, 1, 2
rs6.Open "select * from sumfodec ", cn, 1, 2
If j > 39 Then
Sheets("Feuil1").Range("j" & j + 2 & "") = rs3!somme
Sheets("Feuil1").Range("j" & j + 3 & "") = rs4!somme
Sheets("Feuil1").Range("j" & j + 4 & "") = rs3!somme - rs4!somme
'Range("j" & j + 5 & "") = rs6!somme
'Range("j" & j + 6 & "") = rs5!somme
Else
Sheets("Feuil1").Range("j41") = rs3!somme
Sheets("Feuil1").Range("j42") = rs4!somme
Sheets("Feuil1").Range("j43") = rs3!somme - rs4!somme
'Range("j44") = rs6!somme
'Range("j45") = rs5!somme
End If
Set rs1 = New ADODB.Recordset
rs1.Open "select * from client where Client like '" & DataCombo1.Text & "'", cn, 1, 2
Sheets("Feuil1").Range("f4") = rs1!client
Sheets("Feuil1").Range("f5") = rs1!adresse
Sheets("Feuil1").Range("h6") = rs1!fax
'-----------------------------------------------------
'IMPRESSION
x1.Visible = True
msg = MsgBox("Voulez-vous imprimer le Bon de Livraison?", vbYesNo + vbQuestion)
If msg = vbYes Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True
x1.ActiveWindow.Close False
x1.Quit
Else
MsgBox "Impression annulée"
x1.ActiveWindow.Close False
x1.Quit
End If
Set x1 = Nothing
End Sub
et le même code pour le bon de livraison sauf que le fichier à ourvrir est nommé "blivraison.xls"
lorsque j'imprime que ce soit la facture ou le BL cà marche, mais si je veux imprimer une autre fois cà marche pas.
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 9 août 2007 à 12:57
Salut,
Fais attention à la catégorie dans laquelle tu postes, il y a une section spécifique pour la programmation vba..
Et sinon ferme tes recordset après l'impression.