Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

remplir via un code vba un signet qui se situe dans le pied de page

5 réponses
Avatar
bibi13
Bonjour,
Etant novice dans les codes VBA, je souhaiterais que l'on m'aide car je n'arrive pas à renseigner mon signet qui se trouve dans le pied de page de mon modèle Word.
Je m'explique:
Dans un modèle Word, j'ai inséré des signets dans le corps du document ainsi que dans le pied de page.
Via le visual Basic userform j'ai créé un formulaire afin de pouvoir remplir les signets lorsque l'on valide celui-ci.
Tous les signets se trouvant dans le corps du document sont renseignés sauf celui qui se situe dans le pied de page.
Afin que vous puissiez comprendre ce que j'ai fait, vous trouverez ci-dessous le code que j'ai fait::
Private Sub cmdValider_Click()
Application.ScreenUpdating = False
With ActiveDocument
.Bookmarks("NOM_CLIENT").Range.Text = txtNom_du_Client.Value
.Bookmarks("ADRESSE_CLIENT").Range.Text = txtAdresse_Client.Value
.Bookmarks("REPRESENTE_PAR").Range.Text = txtReprésenté_par.Value
.Bookmarks("AGISSANT_EN_QUALITE_DE").Range.Text = txtQualité_de.Value
.Bookmarks("NBRES_HEURES").Range.Text = cboTotal_Heure_forfait.Value
.Bookmarks("PRIX_HT_PAR_MOIS").Range.Text = txtPrix_Forfait.Value
.Bookmarks("NBRES_PC_BUREAU").Range.Text = txtPCBureau.Value
.Bookmarks("NBRES_PC_PORTABLE").Range.Text = txtPCPortable.Value
.Bookmarks("NBRES_IMPRIMANTES").Range.Text = txtImprimante.Value
.Bookmarks("NBRES_SERVEURS").Range.Text = txtServeur.Value
.Bookmarks("NBRES_ROUTEURS").Range.Text = txtRouteur.Value
.Bookmarks("NBRES_MODEMS").Range.Text = txtModem.Value
.Bookmarks("NBRES_FIREWALL").Range.Text = txtFirewall.Value
.Bookmarks("NBRES_SWITCHES_OU_HUBS").Range.Text = txtSwitche.Value
.Bookmarks("NBRES_NAS").Range.Text = txtNAS.Value
.Bookmarks("NBRES_PA_Wifi").Range.Text = txtWifi.Value
.Bookmarks("NBRES_IPBX_PABX").Range.Text = txtIPBX.Value
.Bookmarks("NBRES_TELEPHONES").Range.Text = txtTéléphone.Value
With activeheaterFooterProperty
.Bookmarks("ANNEE_NUM_PROJET").Range.Text = cboAnnée.Value And txtn°_Projet.Value
End With
Application.ScreenUpdating = True
Unload Me
End With
End Sub

Je vous vous remercie d'avance pour votre aide car vraiment je m'arrache les cheveux

5 réponses

Avatar
Geo
Bonjour

En fait je pense que votre problème vient de ce que votre pied de page
n'est pas "actif", passez par Storyranges, par exemple :
Private Sub cmdValider_Click()
With ActiveDocument
With .StoryRanges(wdPrimaryFooterStory)
.Bookmarks("ANNEE_NUM_PROJET").Range.Text = "2014"
End With
End With
End Sub

J'ai un peu simplifié le code pour l'essayer, à voir si vous avez un
pied de page différent pour la première page ou les pages paires et
impaires.
Pour rendre le code plus universel, il faudrait vérifier que le signet
existe dans :
StoryRanges(wdPrimaryFooterStory)
StoryRanges(wdEvenPagesFooterStory)
StoryRanges(wdFirstPageFooterStory)

Peut-être un peu luxueux?
Avatar
bibi13
Le dimanche 05 Janvier 2014 à 21:47 par bibi13 :
Bonjour,
Etant novice dans les codes VBA, je souhaiterais que l'on m'aide car je
n'arrive pas à renseigner mon signet qui se trouve dans le pied de page
de mon modèle Word.
Je m'explique:
Dans un modèle Word, j'ai inséré des signets dans le corps
du document ainsi que dans le pied de page.
Via le visual Basic userform j'ai créé un formulaire afin de
pouvoir remplir les signets lorsque l'on valide celui-ci.
Tous les signets se trouvant dans le corps du document sont renseignés
sauf celui qui se situe dans le pied de page.
Afin que vous puissiez comprendre ce que j'ai fait, vous trouverez ci-dessous
le code que j'ai fait::
Private Sub cmdValider_Click()
Application.ScreenUpdating = False
With ActiveDocument
.Bookmarks("NOM_CLIENT").Range.Text = txtNom_du_Client.Value
.Bookmarks("ADRESSE_CLIENT").Range.Text =
txtAdresse_Client.Value
.Bookmarks("REPRESENTE_PAR").Range.Text =
txtReprésenté_par.Value
.Bookmarks("AGISSANT_EN_QUALITE_DE").Range.Text =
txtQualité_de.Value
.Bookmarks("NBRES_HEURES").Range.Text =
cboTotal_Heure_forfait.Value
.Bookmarks("PRIX_HT_PAR_MOIS").Range.Text =
txtPrix_Forfait.Value
.Bookmarks("NBRES_PC_BUREAU").Range.Text = txtPCBureau.Value
.Bookmarks("NBRES_PC_PORTABLE").Range.Text = txtPCPortable.Value
.Bookmarks("NBRES_IMPRIMANTES").Range.Text = txtImprimante.Value
.Bookmarks("NBRES_SERVEURS").Range.Text = txtServeur.Value
.Bookmarks("NBRES_ROUTEURS").Range.Text = txtRouteur.Value
.Bookmarks("NBRES_MODEMS").Range.Text = txtModem.Value
.Bookmarks("NBRES_FIREWALL").Range.Text = txtFirewall.Value
.Bookmarks("NBRES_SWITCHES_OU_HUBS").Range.Text =
txtSwitche.Value
.Bookmarks("NBRES_NAS").Range.Text = txtNAS.Value
.Bookmarks("NBRES_PA_Wifi").Range.Text = txtWifi.Value
.Bookmarks("NBRES_IPBX_PABX").Range.Text = txtIPBX.Value
.Bookmarks("NBRES_TELEPHONES").Range.Text =
txtTéléphone.Value
With activeheaterFooterProperty
.Bookmarks("ANNEE_NUM_PROJET").Range.Text = cboAnnée.Value
And txtn°_Projet.Value
End With
Application.ScreenUpdating = True
Unload Me
End With
End Sub

Je vous vous remercie d'avance pour votre aide car vraiment je m'arrache les
cheveux


Merci beaucoup pour votre réponse.

En corrigeant mon code avec votre exemple cela fonctionne que sur la 1ère page où se trouve mon signet.
Comment puis je procéder pour qu'il s'effectue sur tous les pieds de page de mon document.

Encore merci d'avance
Avatar
Geo
Bonsoir

En corrigeant mon code avec votre exemple cela fonctionne que sur la 1ère page
où se trouve mon signet.



C'est sans doute que votre pied de page a été défini comme étant un
pied de première page, c'est donc le code :
StoryRanges(wdFirstPageFooterStory)
qui a marché ?
Il faudrait soit modifier le type de pied de page, soit ajouter un
signet dans le pied de page commun et ajouter du code pour le
renseigner aussi.
Avatar
bibi13
Le dimanche 05 Janvier 2014 à 21:47 par bibi13 :
Bonjour,
Etant novice dans les codes VBA, je souhaiterais que l'on m'aide car je
n'arrive pas à renseigner mon signet qui se trouve dans le pied de page
de mon modèle Word.
Je m'explique:
Dans un modèle Word, j'ai inséré des signets dans le corps
du document ainsi que dans le pied de page.
Via le visual Basic userform j'ai créé un formulaire afin de
pouvoir remplir les signets lorsque l'on valide celui-ci.
Tous les signets se trouvant dans le corps du document sont renseignés
sauf celui qui se situe dans le pied de page.
Afin que vous puissiez comprendre ce que j'ai fait, vous trouverez ci-dessous
le code que j'ai fait::
Private Sub cmdValider_Click()
Application.ScreenUpdating = False
With ActiveDocument
.Bookmarks("NOM_CLIENT").Range.Text = txtNom_du_Client.Value
.Bookmarks("ADRESSE_CLIENT").Range.Text =
txtAdresse_Client.Value
.Bookmarks("REPRESENTE_PAR").Range.Text =
txtReprésenté_par.Value
.Bookmarks("AGISSANT_EN_QUALITE_DE").Range.Text =
txtQualité_de.Value
.Bookmarks("NBRES_HEURES").Range.Text =
cboTotal_Heure_forfait.Value
.Bookmarks("PRIX_HT_PAR_MOIS").Range.Text =
txtPrix_Forfait.Value
.Bookmarks("NBRES_PC_BUREAU").Range.Text = txtPCBureau.Value
.Bookmarks("NBRES_PC_PORTABLE").Range.Text = txtPCPortable.Value
.Bookmarks("NBRES_IMPRIMANTES").Range.Text = txtImprimante.Value
.Bookmarks("NBRES_SERVEURS").Range.Text = txtServeur.Value
.Bookmarks("NBRES_ROUTEURS").Range.Text = txtRouteur.Value
.Bookmarks("NBRES_MODEMS").Range.Text = txtModem.Value
.Bookmarks("NBRES_FIREWALL").Range.Text = txtFirewall.Value
.Bookmarks("NBRES_SWITCHES_OU_HUBS").Range.Text =
txtSwitche.Value
.Bookmarks("NBRES_NAS").Range.Text = txtNAS.Value
.Bookmarks("NBRES_PA_Wifi").Range.Text = txtWifi.Value
.Bookmarks("NBRES_IPBX_PABX").Range.Text = txtIPBX.Value
.Bookmarks("NBRES_TELEPHONES").Range.Text =
txtTéléphone.Value
With activeheaterFooterProperty
.Bookmarks("ANNEE_NUM_PROJET").Range.Text = cboAnnée.Value
And txtn°_Projet.Value
End With
Application.ScreenUpdating = True
Unload Me
End With
End Sub

Je vous vous remercie d'avance pour votre aide car vraiment je m'arrache les
cheveux


Je vous remercie beaucoup pour votre aide.
Tout fonctionne correctement.
Avatar
Geo
Bonjour

Tout fonctionne correctement.



Merci pour le retour.