Bonjour,
Grâce à votre aide, j'ai réussi à envoyer les données d'un single form de mon sous-formulaire vers des bookmarks Word. J'aimerais désormais pouvoir envoyer l'ensemble des lignes du sous-formulaire (celles visibles en datasheet) dans un tableau Word pour établir une facture.
J'ai réussi grâce aux divers tuto du site à aboutir à ce code pour ouvrir le document Word et insérer le tableau à l'endroit voulu... et encore je ne suis pas sûre que cela fonctionne...
mais je ne sais pas où ni comment indiquer quelles données vont dans quelle cellule.
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 Public Sub InsererTableau() ' Déclaration des variables et des constantes Dim objWord As New Word.Application Dim objTable As Table Dim cmpt As Long Dim strNomPrenom As String strNomPrenom = Forms.Commandes.Titre & " " & Forms.Commandes.Nomclient & " " & Forms.Commandes.Prenomclient Set objTable = objDoc.Tables.Add(Range:=Selection.Range, NumRows:=5, NumColumns:=2) With objWord .Documents.Add Template:=CurrentProject.Path & "\devis.doc", NewTemplate:=False, DocumentType:=0 If strNomPrenom <> " " Then .ActiveDocument.Bookmarks("Name").Range.Text = strNomPrenom Else .ActiveDocument.Bookmarks("Name").Range.Text = "Attention! Nom du client non renseigné!" End If .ActiveDocument.Bookmarks("Tableau").Range.Text = objTable 'affichage en plein écran .WindowState = wdWindowStateMaximize 'lance la boite de dialogue d'enregistrement du document With .Dialogs.Item(wdDialogFileSaveAs) .Name = "Z:\CLIENTS PROPOSITIONS\" 'si on clique sur enregistrer... sinon... If .Show = -1 Then MsgBox "Document enregistré" Else objWord.Quit savechanges:=False MsgBox "Vous avez annulé l'enregistrement!" End If End With 'en cas de modification de l'enregistrement, on sauvegarde If Dirty = True Then DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 End If 'Libération de l'objet Set objWord = Nothing End With End With End Sub
J'ai trouvé ceci mais je ne sais pas l'utiliser... Qu'est-ce que cmpt ?
De plus, je voudrais que le nombre de colonnes soit fixe mais que le nombre de lignes varie selon nécessaire. Est-ce possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 objTable.AutoFormat wdTableFormatGrid8 For cmpt = 1 To objTable.Rows.Count objTable.Cell(cmpt, 2).Range.Text = "montext" & cmpt Next cmpt
J'espère que cette fois encore quelqu'un pourra m'aider...alors merci d'avance
Partager