Automatisation signets Excel vers Word

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
F
Frosier
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 25 avril 2019
Version d'Excel : 2010

Message par Frosier » 26 avril 2019, 15:29

Bonjour,

Je suis débutant dans vba et j'ai un problème dans ma formule. Je n'arrive pas à voir laquelle...
Je cherche à automatiser des cellules excel vers des signets spécifiques sur Word, voici ma formule :

Sub ouvrir()
ActiveWorkbook.FollowHyperlink "C:\Users\021284\Desktop\Travail vacances Lucile\test.docx"

'numéro des colonnes comprenant les données
champs = Array(1, 2)

'tableau des signets du fichier type
signets = Array("a", "b")

'écriture des signets
For Each i In champs
doc.Bookmarks(signets(i - 1)).Range = Sheets("feuil1").Cells(ActiveCell.Row, i)
Next

w.Visible = True
End Sub

La ligne surlignée en jaune ne fonctionne pas... Je vous envoie en pièce jointe un exemple.
Votre aide sera précieuse !

Merci par avance !
test.xlsm
(19.18 Kio) Téléchargé 28 fois
test.docx
(12.59 Kio) Téléchargé 20 fois
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 6'054
Appréciations reçues : 352
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 26 avril 2019, 17:16

Bonjour,

à tester,
Sub Test_Bookmarks()
'nécessite la référence à Microsoft Word xx.x Object Library

Dim strFichier As String
Dim objWord As New Word.Application
 
strFichier =  '"C:\Users\021284\Desktop\Travail vacances Lucile\test.docx"
' ouvrir un document Word
objWord.Documents.Open strFichier
objWord.Visible = True

'numéro des colonnes comprenant les données
champs = Array(1, 2)
'tableau des signets du fichier type
signets = Array("A", "B")

'écriture des signets
For i = LBound(champs) To UBound(champs)
test = signets(i)
objWord.ActiveDocument.Range.Bookmarks(signets(i)).Range = Sheets("feuil1").Cells(ActiveCell.Row, champs(i))
Next
End Sub
Prenons soins de nous et de notre vaisseau spatial, nous n’en n’avons qu’un ...notre planète terre
isabelle
F
Frosier
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 25 avril 2019
Version d'Excel : 2010

Message par Frosier » 30 avril 2019, 08:47

Cette formule ouvre bien mon word mais n'ajoute pas les cellules au niveau des signets... :bof:
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 6'054
Appréciations reçues : 352
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 30 avril 2019, 13:56

RE,

remplace cette ligne
objWord.ActiveDocument.Range.Bookmarks(signets(i)).Range = Sheets("feuil1").Cells(ActiveCell.Row, champs(i))
par
objWord.ActiveDocument.Range.Bookmarks(signets(i)).Range = Sheets("feuil1").Cells(1, champs(i))
voici ce que j'obtiens
Frosier-test -APRÈS.docx
(12.57 Kio) Téléchargé 25 fois
Prenons soins de nous et de notre vaisseau spatial, nous n’en n’avons qu’un ...notre planète terre
isabelle
F
Frosier
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 25 avril 2019
Version d'Excel : 2010

Message par Frosier » 30 avril 2019, 14:06

Merci beaucoup !!
Savez-vous comment je pourrais automatiser la chose sur plusieurs lignes ?
Par exemple
A
2000
3000
4000
....

Chaque ligne ayant un signet attribué

Mais déjà merci pour l'aider ! :D
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 6'054
Appréciations reçues : 352
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 30 avril 2019, 14:50

Savez-vous comment je pourrais automatiser la chose sur plusieurs lignes ?
Par exemple
A
2000
pour un seul signet par ligne ?
Prenons soins de nous et de notre vaisseau spatial, nous n’en n’avons qu’un ...notre planète terre
isabelle
F
Frosier
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 25 avril 2019
Version d'Excel : 2010

Message par Frosier » 14 mai 2019, 15:26

Oui exactement.

Par exemple :
Coût A : "ligne a2"
Coût B : "ligne a3"
etc....


Désolé pour ma réponse si tardive j'ai énormément de travail en ce moment! :lole:
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 6'054
Appréciations reçues : 352
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 14 mai 2019, 15:33

Frosier a écrit :
14 mai 2019, 15:26
Par exemple :
Coût A : "ligne a2"
Coût B : "ligne a3"
etc....
à tester,
Sub Test_Bookmarks()
'nécessite la référence à Microsoft Word xx.x Object Library

Dim strFichier As String
Dim objWord As New Word.Application
 
strFichier =  '"C:\Users\021284\Desktop\Travail vacances Lucile\test.docx"
' ouvrir un document Word
objWord.Documents.Open strFichier
objWord.Visible = True

'numéro des lignes comprenant les données
champs = Array(2, 3)

'tableau des signets du fichier type
signets = Array("A", "B")

'écriture des signets
For i = LBound(champs) To UBound(champs)
test = signets(i)
objWord.ActiveDocument.Range.Bookmarks(signets(i)).Range = Sheets("feuil1").Cells(champs(i),"A")
Next
End Sub
Prenons soins de nous et de notre vaisseau spatial, nous n’en n’avons qu’un ...notre planète terre
isabelle
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message