popaulkb
20 mars 2009 à 11:21
la première chose à faire c'est de mettre la reference excel
ici je suis en train de prendre mes données dans une base access en exportant ves une feuille excel qui a 3 collones D, E, F donc matricule , nom, sexe c'est aussi la structure de ma table access.
mais pour la collone F, je l'ai fusionnée avec les collonnes G, H,I,J,K pour afficher
je suis obligé de fusionner f avec g qui me donne F toujours après F avec H qui me donne tjrs F ainsi de suite
en voici l'exemple. si quelqu'un pourrai ameliorer cela sera bon
NB: j ai utilisé ado pour ma base donc il faut activer la réf ADO
'module
Public Cnx As ADODB.Connection
Public Rec As ADODB.Recordset
Public Sub OUVRIR()
Set Cnx = New ADODB.Connection
Cnx.Provider = "Microsoft.jet.oledb.4.0"
Cnx.ConnectionString = App.Path & "\bddetudiant.MDB"
Cnx.Open
End Sub
Private Sub Form_Load()
OUVRIR
Set Rec = New ADODB.Recordset
Rec.Open "select * from t_etudiant", Cnx, 1, 2
End Sub
Private Sub EXPO_Click()
Dim ligne As Integer
ligne = 8
Dim D As String, E As String, F As String, G As String, H As String, I As String, J As String, K As String, L As String
Dim xl As Excel.Application
Set xl = Nothing
Set xl = New Excel.Application
xl.Visible = True 'Pour afficher l'application excel
xl.DisplayAlerts = False
Call xl.Workbooks.Open("c:\exer13\etudiant") ' OUVRERTURE CLASSEUR
xl.Sheets("liste").Select ' Ouverture de la feuille
Rec.MoveFirst
xl.Range("I3") = Date
Do While Not Rec.EOF
'création cellules
D = "D" & ligne
E = "E" & ligne
F = "F" & ligne
G = "G" & ligne
H = "H" & ligne
I = "I" & ligne
J = "J" & ligne
K = "K" & ligne
L = "L" & ligne
xl.Range(D) = Rec.Fields(0)
xl.Range(E) = Rec.Fields(1)
' fusion de F à L
xl.Range(F, G).Merge
xl.Range(F, H).Merge
xl.Range(F, I).Merge
xl.Range(F, J).Merge
xl.Range(F, K).Merge
xl.Range(F, L).Merge
xl.Range(F) = Rec.Fields(2)
ligne = ligne + 1
Rec.MoveNext
Loop