1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
Private Sub Command1_Click()
'Déclaration des variables (Microsoft.Office.Interop évite l'import)
Dim appExcel As New Microsoft.Office.Interop.Excel.Application
Dim wbExcel As Microsoft.Office.Interop.Excel.Workbook
Dim wsExcel As Microsoft.Office.Interop.Excel.Worksheet
Dim Tbl As String()
Dim Lig As Long
'rend l'application visible mais comme elle est fermée dans la foulée est-ce bien nécessaire ?
appExcel.Visible = True
'ouvre le classeur
wbExcel = appExcel.Workbooks.Open("D:\Classeur1.xls")
wsExcel = wbExcel.ActiveSheet
With wsExcel
' si A1 est vide, création des entêtes
If .Range("A1").Value = "" Then
'initialise le tableau avec les entêtes
Tbl = New String(6) {"Nom", "Prénom", "N° tél fixe", "N° tél mobile", "Adresse", "Problèmes", "Date"}
.Range("A1:G1").Value = Tbl
End If
'vide
Erase Tbl
'recherche la dernière ligne non vide en partant du bas de la feuille
Lig = .Range("A" & .Rows.Count).End(-4162).Row + 1
'initialise le tableau avec les valeurs des champs
Tbl = New String(6) {Nom.Text, Prenom.Text, TelFixe.Text, TelMobile.Text, Adresse.Text, Prob.Text, "Le " & Now}
'transfert des données saisies dans le classeur excel
.Range("A" & Lig & ":G" & Lig).Value = Tbl
End With
wbExcel.Save()
wbExcel.Close() 'Fermeture du classeur Excel
appExcel.Quit()
wsExcel = Nothing
wbExcel = Nothing
appExcel = Nothing
'on efface les données saisies
Nom.Text = "Nom"
Prenom.Text = "Prénom"
TelFixe.Text = "N° tél fixe"
TelMobile.Text = "N° tél mobile"
Adresse.Text = "Adresse"
Prob.Text = ""
End Sub |