Lire le contenu d'un signet dans un document word
Résolu/Fermé
Melancolie2010_2015
Messages postés
24
Date d'inscription
jeudi 18 mars 2021
Statut
Membre
Dernière intervention
3 mars 2022
-
4 mai 2021 à 12:08
Utilisateur anonyme - 6 mai 2021 à 17:09
Utilisateur anonyme - 6 mai 2021 à 17:09
A voir également:
- Word erreur signet non défini
- Erreur 0x80070643 - Accueil - Windows
- Espace insécable word - Guide
- Supprimer une page word - Guide
- Organigramme word - Guide
- Suivi des modifications word - Guide
4 réponses
Utilisateur anonyme
4 mai 2021 à 12:15
4 mai 2021 à 12:15
Bonjour
Y’a des années que j’ai pas utilisé l’api de word (c’est trop chiant à mon goût, je préfère écrire directement un docx depuis).
A l’époque j’avais posté un exemple qui marchait avec les signets
https://codes-sources.commentcamarche.net/source/51010-piloter-word-via-microsoft-office-interop-word
Y’a des années que j’ai pas utilisé l’api de word (c’est trop chiant à mon goût, je préfère écrire directement un docx depuis).
A l’époque j’avais posté un exemple qui marchait avec les signets
https://codes-sources.commentcamarche.net/source/51010-piloter-word-via-microsoft-office-interop-word
Utilisateur anonyme
4 mai 2021 à 17:50
4 mai 2021 à 17:50
Certes à l'époque je n'avais pas à lire le contenu d'un signet, mais à écrire des infos dans un modèle à l'emplacement de ces signets.
Mais, atteindre le signet, ce que tu fais en une seule ligne
Je l'avais décomposé en plusieurs, ce qui permettait de voir où ça ne marchait pas.
Parce que sur les noms de signets, il m'est arrivé de me faire avoir sur la casse ou un espace par exemple
Mais, atteindre le signet, ce que tu fais en une seule ligne
Dim M As String = wrdDoc.Bookmarks("TitreDoc").Range.Text
Je l'avais décomposé en plusieurs, ce qui permettait de voir où ça ne marchait pas.
Public Function AtteindreSignet(ByVal NomSignet As String) As Boolean Dim Nom As Object = CObj(NomSignet) _MesSignets = _MonDocument.Bookmarks If _MesSignets.Exists(NomSignet) Then _MonSignet = _MesSignets.get_Item(Nom) _MonSignet.Select() _MonRange = _MonSignet.Range Return True Else MessageBox.Show(String.Format("Le signet {0} n'existe pas dans le fichier.", NomSignet), "Insertion impossible", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Return False End If End Function
Parce que sur les noms de signets, il m'est arrivé de me faire avoir sur la casse ou un espace par exemple
PS, pour que le code soit en couleur, il faut faire comme décrit là
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Melancolie2010_2015
Messages postés
24
Date d'inscription
jeudi 18 mars 2021
Statut
Membre
Dernière intervention
3 mars 2022
1
6 mai 2021 à 16:38
6 mai 2021 à 16:38
Merci Whismeril
Tout marche à merveille après quelques aménagements
Tout marche à merveille après quelques aménagements
4 mai 2021 à 12:53
Je retiens ce code pour mes prochains projets.
Dans mon cas maintenant, j'ai des modèles de document word avec des entête et pieds de pages et une zone de signature pour la signature électronique (PKI racine). Sinon, je conviens avec vous que l'API de word n'est pas du tout aisé.
Je retiens dans le cadre de ma discussion qu'il est plus facile d'écrire dans les signets que de lire et récupérer ce qui y est écrit.