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

Signaler
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
-
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
-
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

1 réponse

Messages postés
6983
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 octobre 2020
114
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à
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
Messages postés
6983
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 octobre 2020
114
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
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.
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 !!
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!