associer le contenu d'un bookmark transféré à une variable

Domilink

XLDnaute Nouveau
Bonjour à tous
Je vous expose un petit problème en VBA
Je pars d'un document XLS à partir duquel je transfère des données dans un document WORD que je crée à partir d'EXCEL

Dim wdApp As New Word.Application
Dim wdDoc As Word.Document

MaChaineVB = "\Courrier activités collectives de " & Mois_des_activités & " - groupe " & UserForm1.TextG1.Text & ".docx"

wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open(chemin & "\Activité Collective.docm")
wdDoc.Bookmarks("ai2").Range.Text = Feuil44.Cells(3, 5)
wdDoc.Bookmarks("ai3").Range.Text = Feuil44.Cells(3, 6)
wdDoc.Bookmarks("ai4").Range.Text = Feuil44.Cells(3, 7)
wdDoc.Bookmarks("ai5").Range.Text = Feuil44.Cells(3, 8)


Une fois dans le document word, j'aimerai assimiler ces valeurs à une variable chaine.

Comment reprendre la valeur par exemple du bookmarks("ai2") et l'associer à la variable 'chaine'. ?


Un grand merci pour votre aide
 

job75

XLDnaute Barbatruc
Re : associer le contenu d'un bookmark transféré à une variable

Bonsoir,

Tout dépend comment est déclarée la variable chaine.

Soit :

Code:
Dim chaine As String
chaine = wdDoc.Bookmarks("ai2").Range.Text
Soit :

Code:
Dim chaine As Object
Set chaine = wdDoc.Bookmarks("ai2").Range
ou encore :

Code:
Dim chaine As Object
Set chaine = wdDoc.Bookmarks("ai2")
A+
 

Domilink

XLDnaute Nouveau
Re : associer le contenu d'un bookmark transféré à une variable

Sniff ! Cela ne marche pas

Pourtant, le transfert des données fonctionne bien vu que les informations apparaissent sur mon document word. mais quand j'utilise ta méthode, il me rend les variables 'Mois' et 'Groupe' vides.
Voici le code que j'ai sur mon document 'word'

Private Sub CommandButton1_Click()

CommandButton1.Height = 0
CommandButton1.Width = 0
Dim Mois As String
Dim Groupe As String

Mois = ActiveDocument.Bookmarks("ai7").Range.Text
Groupe = ActiveDocument.Bookmarks("ai12").Range.Text
Fichier = ActiveDocument.Path & "\Courrier activités collectives de " & Mois & " - groupe " & Groupe & ".docx"

With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With

ActiveDocument.SaveAs2 FileName:=Fichier, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=14

Word.Application.Quit False

End Sub


Merci
 

job75

XLDnaute Barbatruc
Re : associer le contenu d'un bookmark transféré à une variable

Bonjour Domilink,

Dans la macro Excel, chaque fois que vous traitez un Bookmark, il faut le redéfinir :

Code:
Dim deb As Long
'---
deb = wdDoc.Bookmarks("ai2").Range.Start
wdDoc.Bookmarks("ai2").Range.Text = Feuil44.Cells(3, 5)
wdDoc.Bookmarks.Add "ai2", wdDoc.Range(deb, deb + Len(Feuil44.Cells(3, 5)))
'---
deb = wdDoc.Bookmarks("ai7").Range.Start
wdDoc.Bookmarks("ai7").Range.Text = Feuil44.Cells(3, 10)
wdDoc.Bookmarks.Add "ai7", wdDoc.Range(deb, deb + Len(Feuil44.Cells(3, 10)))
'---
A+
 
Dernière édition:

Statistiques des forums

Discussions
312 453
Messages
2 088 553
Membres
103 881
dernier inscrit
malbousquet