Word Automatiser un Document Word

  • Initiateur de la discussion Initiateur de la discussion Arch974
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arch974

XLDnaute Junior
Bonjour,

J'ai un document Word que j'ai l'habitude d'utiliser et je voudrais pouvoir automatiser la saisie de certaines parties de mon texte (en fond jaune). C'est à dire j'aimerais si possible qu'en ouvrant mon fichier qu'il y est un formulaire qui apparaît et me demande de remplir les parties à modifier uniquement (en jaune).

Merci d'avance

Cordialement.
 

Pièces jointes

Solution
Bonjour Arch974,

Voyez le fichier .docm joint et cette macro dans l'UserForm :
VB:
Private Sub CommandButton1_Click() 'bouton Valider
Dim nlig&, p As Paragraph, deb&, c As Range, fin&, n%, x$
nlig = 3 'nombre de lignes colorées à traiter = nombre de TextBox, à adapter
For Each p In ActiveDocument.Paragraphs
    deb = 0
    For Each c In p.Range.Characters
        If c.HighlightColorIndex = wdYellow Then 'jaune
            If deb = 0 Then deb = c.Start
            fin = c.End
        End If
    Next c
    If deb Then
        n = n + 1
        If n > nlig Then Exit For
        x = Trim(Me("TextBox" & n))
        If x <> "" Then ActiveDocument.Range(deb, fin) = x
    End If
Next p
Unload Me
End Sub
Elle remplace les textes...
Bonjour Arch974,

Voyez le fichier .docm joint et cette macro dans l'UserForm :
VB:
Private Sub CommandButton1_Click() 'bouton Valider
Dim nlig&, p As Paragraph, deb&, c As Range, fin&, n%, x$
nlig = 3 'nombre de lignes colorées à traiter = nombre de TextBox, à adapter
For Each p In ActiveDocument.Paragraphs
    deb = 0
    For Each c In p.Range.Characters
        If c.HighlightColorIndex = wdYellow Then 'jaune
            If deb = 0 Then deb = c.Start
            fin = c.End
        End If
    Next c
    If deb Then
        n = n + 1
        If n > nlig Then Exit For
        x = Trim(Me("TextBox" & n))
        If x <> "" Then ActiveDocument.Range(deb, fin) = x
    End If
Next p
Unload Me
End Sub
Elle remplace les textes surlignés en jaune par les contenus des TextBox.

Je n'ai mis que 3 TextBox, à vous de compléter, il en faut 16.

A+
 

Pièces jointes

Bonjour Arch974,

Voyez le fichier .docm joint et cette macro dans l'UserForm :
VB:
Private Sub CommandButton1_Click() 'bouton Valider
Dim nlig&, p As Paragraph, deb&, c As Range, fin&, n%, x$
nlig = 3 'nombre de lignes colorées à traiter = nombre de TextBox, à adapter
For Each p In ActiveDocument.Paragraphs
    deb = 0
    For Each c In p.Range.Characters
        If c.HighlightColorIndex = wdYellow Then 'jaune
            If deb = 0 Then deb = c.Start
            fin = c.End
        End If
    Next c
    If deb Then
        n = n + 1
        If n > nlig Then Exit For
        x = Trim(Me("TextBox" & n))
        If x <> "" Then ActiveDocument.Range(deb, fin) = x
    End If
Next p
Unload Me
End Sub
Elle remplace les textes surlignés en jaune par les contenus des TextBox.

Je n'ai mis que 3 TextBox, à vous de compléter, il en faut 16.

A+
Merci ça fonctionne très bien !
 
Bonsoir le forum
Bonsoir Arch974, bonsoir job75

J'ai utilisé des signets pour le fichier. C'est une procédure un peu plus longue mais bon je n'ai pas LA connaissance de notre ami job75 que je salue au passage.

VB:
Comment procéder : 
1/ Insérer des signets dans ton document (tes zones surlignées en jaune) – Je vais faire un exemple avec 2 signets Nom & Prénom.
     Alt + F11 pour se rendre dans l’éditeur VBE
2/ Créer un Userform sous VBA avec dans le présent exemple 2 TextBoxs nommés TextBoxNom et TextBoxPrénom (Si dans ton fichier, les noms et sociétés reviennent fréquemment, il faudra plutôt utiliser des ComboBoxs).
3/ A la fermeture, ne pas enregistrer les modifications apportées au fichier sous peine de ré ouvrir le document avec les données de la veille ou alors exécuter une macro pour effacer les enregistrements apportés à la fermeture du fichier.
Bonne soirée à toutes & à tous
@+ Eric c
Doc Word.gif
 

Pièces jointes

Bonsoir le forum
Bonsoir Arch974, bonsoir job75

J'ai utilisé des signets pour le fichier. C'est une procédure un peu plus longue mais bon je n'ai pas LA connaissance de notre ami job75 que je salue au passage.

VB:
Comment procéder :
1/ Insérer des signets dans ton document (tes zones surlignées en jaune) – Je vais faire un exemple avec 2 signets Nom & Prénom.
     Alt + F11 pour se rendre dans l’éditeur VBE
2/ Créer un Userform sous VBA avec dans le présent exemple 2 TextBoxs nommés TextBoxNom et TextBoxPrénom (Si dans ton fichier, les noms et sociétés reviennent fréquemment, il faudra plutôt utiliser des ComboBoxs).
3/ A la fermeture, ne pas enregistrer les modifications apportées au fichier sous peine de ré ouvrir le document avec les données de la veille ou alors exécuter une macro pour effacer les enregistrements apportés à la fermeture du fichier.
Bonne soirée à toutes & à tous
@+ Eric c
Regarde la pièce jointe 1114103
Bonsoir @Eric C merci pour ta participation j'apprécie !
 
Bonjour Arch974, Eric C,

Finalement il vaut mieux utiliser les signets, c'est plus simple et il est facile de les rétablir :
VB:
Private Sub CommandButton1_Click() 'bouton Valider
Dim signet, n%, br As Range, pos&, x$
signet = Array("Nom1", "Prenom1", "Age1") 'liste des signets à étudier, autant que de TextBox
With ThisDocument
    For n = 0 To UBound(signet)
        Set br = .Bookmarks(signet(n)).Range
        pos = br.Start
        x = Trim(Me("TextBox" & n + 1))
        If x <> "" Then
            br = x 'écrase le signet
            .Bookmarks.Add signet(n), .Range(pos, pos + Len(x)) 'rétablit le signet
        End If
    Next
End With
Unload Me
End Sub
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
897
Réponses
5
Affichages
262
Réponses
15
Affichages
1 K
Compte Supprimé 979
C
Réponses
5
Affichages
594
Retour