Récup valeur MsgBox et le mettre à un signet dans Word

Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
- - Dernière réponse : julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
- 21 oct. 2019 à 21:28
Bonjour,

je suis débutant en VBA mais utilisateur de word et j'aimerais créer un MsgBox à l'ouverture du doc dans laquelle lorsque je rentre une valeur (nombre) cela me le met automatiquement à tous les endroits déclarés par un signet dans mon fichier word.
J'espère être assez clair.
D'Avance je vous remercie pour votre aide et exemple de code.
Merci
Afficher la suite 

1 réponse

Messages postés
6341
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 novembre 2019
88
0
Merci
Bonjour,

Ce n'est pas une MsgBox qu'il faut utiliser mais une InputBox:

https://www.commentcamarche.net/faq/41585-vba-inputbox#inputbox-les-boutons

ensuite il faut faire une boucle sur tous les signets du document pour ajouter la valeur que tu récupères dans ta InputBox sous forme de variable:

http://www.faqword.com/index.php/word/environnement/534-signets-inseres-dans-word

Voilà
julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
-
Merci pour votre aide mais je suis bloqué sur comment récupérer le résultat rentré dans mon inputbox pour le mettre à un certain endroit dans le doc.
Fait-il que j'utilise un signet ou docvariable?
Ci-joint une capture de mon code.
Merci d'avance
cs_Le Pivert
Messages postés
6341
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 novembre 2019
88 -
Voir ceci:

https://heureuxoli.developpez.com/office/word/vba-word/#LVII

voici le code:

Option Explicit
Private Sub Document_Open()
AfficheNomSignet
End Sub
 'http://www.faqword.com/index.php/word/environnement/534-signets-inseres-dans-word
 'https://heureuxoli.developpez.com/office/word/vba-word/#LVII
 Public Sub AfficheNomSignet()
'Code écrit par Guy Moncomble 2002
Dim varSignet As Bookmark
Dim NumSerie As String ' déclare en string(texte)
Dim longueur As Integer
NumSerie = InputBox("Numéro carte BIUT?", "Numéro de série", "20---")
longueur = Len(NumSerie) 'nombre de chiffres
Application.ScreenUpdating = False
For Each varSignet In ActiveDocument.Bookmarks 'boucle sur les signets
Selection.GoTo What:=wdGoToBookmark, Name:=varSignet
Selection.Delete Unit:=wdCharacter, Count:=longueur 'supprime l'ancien NumSerie
ActiveDocument.Bookmarks(varSignet).Range.Text = NumSerie 'ajoute le NumSerie
Next varSignet
Application.ScreenUpdating = True
End Sub
Sub supp_signet()
Dim varSignet As Bookmark
For Each varSignet In ActiveDocument.Bookmarks 'boucle sur les signets
ActiveDocument.Bookmarks(varSignet).Delete 'supprime tous les signets
Next varSignet
End Sub



Pour tes essais, travaille sur une copie par mesure de sécurité

@+ Le Pivert
julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
-
Cool merci bcp pour cet excellent travail ;-) , cela fonctionne très bien, je vais étudier ça de très près,mais par contre je suis limité en nombre de signet dans le doc car mon but est de rentrer une fois 1 numéro et que ça le remplisse à tous les endrois définit dans le doc et les renvois ne fonctionnent pas.
julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
-
DE plus et dsl sans vouloir abuser, ce même Numéro rentré au début se trouve sur un pied de page (et là ça complique les choses) enfin pour moi !!
julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
-
au fait merci Le Pivert pour tes liens super intéressants mais difficile pour moi à mettre en pratique mais je vais persister et essayer!
Commenter la réponse de cs_Le Pivert