Récup valeur MsgBox et le mettre à un signet dans Word
julien_28
Messages postés5Date d'inscriptiondimanche 20 octobre 2019StatutMembreDernière intervention21 octobre 2019
-
20 oct. 2019 à 22:32
julien_28
Messages postés5Date d'inscriptiondimanche 20 octobre 2019StatutMembreDernière intervention21 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
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 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
julien_28
Messages postés5Date d'inscriptiondimanche 20 octobre 2019StatutMembreDernière intervention21 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
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 21 oct. 2019 à 17:08
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és5Date d'inscriptiondimanche 20 octobre 2019StatutMembreDernière intervention21 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.
julien_28
Messages postés5Date d'inscriptiondimanche 20 octobre 2019StatutMembreDernière intervention21 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 !!
21 oct. 2019 à 12:25
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
21 oct. 2019 à 14:35
Fait-il que j'utilise un signet ou docvariable?
Ci-joint une capture de mon code.
Merci d'avance
21 oct. 2019 à 17:08
https://heureuxoli.developpez.com/office/word/vba-word/#LVII
voici le code:
Pour tes essais, travaille sur une copie par mesure de sécurité
@+ Le Pivert
21 oct. 2019 à 21:19
21 oct. 2019 à 21:23