Bonjour,
Après avoir vu que vous insistez pour dire qu'un formulaire n'est pas fait pour être imprimé j'ai voulu créer un envoi de champs d'un enregistrement Access vers un fichier Excel.
J'ai trouvé un moyen sur Internet que voici
Ca marche bien mais cela crée à chaque fois un nouveau fichier: Fiche_adhesion.xlsx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub Imp_fiche_Click() Dim TableClient As Recordset Dim son_nom, son_prenom, sa_profession, son_lieu_naissance, son_adresse1, son_adresse2, son_cp, sa_ville, son_tel1, son_tel2, son_e_mail, sa_licence, son_Vulcain As String Dim ma_d_naissance As Date ' là j'enregistre la valeur des champs de l'enregistrement en cours son_nom = Me.adherent son_prenom = Me.prenom sa_profession = Me.profession sa_d_naissance = Me.d_naissance son_lieu_naissance = Me.lieu_naissance son_adresse1 = Me.adresse1 son_adresse2 = Me.adresse2 son_cp = Me.cp sa_ville = Me.ville son_tel1 = Me.tel1 son_tel2 = Me.Tel2 son_e_mail = Me.e_mail sa_liocence = Me.licence son_Vulcain = Nz(Me.Vulcain) Dim MonExcel As Object Set MonExcel = New Excel.Application ' là je vois bien que ça crée une nouvelle feuille Excel c'est peut être là qu'il faudrait déclarer la feuille où coller les données mais je n'ai pas trouver comment MonExcel.ActiveWorkbook.ActiveSheet.Range("D4").Value = son_nom MonExcel.ActiveWorkbook.ActiveSheet.Range("D5").Value = son_prenom MonExcel.ActiveWorkbook.ActiveSheet.Range("D6").Value = sa_profession MonExcel.ActiveWorkbook.ActiveSheet.Range("D7").Value = sa_d_naissance MonExcel.ActiveWorkbook.ActiveSheet.Range("E7").Value = son_lieu_naissance MonExcel.ActiveWorkbook.ActiveSheet.Range("C8").Value = son_adresse1 MonExcel.ActiveWorkbook.ActiveSheet.Range("C9").Value = son_adresse2 MonExcel.ActiveWorkbook.ActiveSheet.Range("C10").Value = son_cp MonExcel.ActiveWorkbook.ActiveSheet.Range("E10").Value = sa_ville MonExcel.ActiveWorkbook.ActiveSheet.Range("C12").Value = son_tel1 MonExcel.ActiveWorkbook.ActiveSheet.Range("F12").Value = son_tel2 MonExcel.ActiveWorkbook.ActiveSheet.Range("C13").Value = son_e_mail MonExcel.ActiveWorkbook.ActiveSheet.Range("M4").Value = sa_licence MonExcel.ActiveWorkbook.ActiveSheet.Range("M5").Value = son_Vulcain On Error Resume Next MonExcel.ActiveWorkbook.SaveAs "C:\Access\Fiche_adhesion.xlsx" ' et là ça écrase ma feuille au lieu de ne rentrer que les champs MonExcel.ActiveWorkbook.Close Set MonExcel = Nothing End Sub
Or le but de la manip est de sortir un fichier papier pour nos archives avec une architecture identique pour chacun.
Mais comme chaque fois on repart à zéro il sort un fichier Excel vierge.
Vous avez en pièce jointe mon modèle de fichier Excel.
Ce que j'aimerais c'est que les champs se mettent à la place prévue sans effacer ma belle page !
Fiche_adhesion.xlsx
Si quelqu'un pouvait m'aider ce serait vraiment gentil.
Si en plus il m'indiquait comment lancer de l'impression de la feuille Excel à la fin ce serait encore mieux.
Merci d'avance.
Cordialement.
Serge VM
Partager