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

julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019
- 20 oct. 2019 à 22:32
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

1 réponse

cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
21 oct. 2019 à 08:02
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à
1
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
21 oct. 2019 à 12:25
Et pour le faire déclencher à l'ouverture:
Faire Alt F11 pour accéder à l'éditeur. Aller dans ThisDocument en haut à gauche et mettre le code comme ceci:


d'après les sites cités

Voilà y a plus qu'à

@+ Le Pivert
0
julien_28
Messages postés
5
Date d'inscription
dimanche 20 octobre 2019
Statut
Membre
Dernière intervention
21 octobre 2019

21 oct. 2019 à 14:35
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
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
21 oct. 2019 à 17:08
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
0
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:19
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.
0
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:23
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 !!
0