IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Formulaires Word > VBA
        Comment faire pour effectuer une action sur un champ de formulaire ?
        Comment imposer pour les cases à cocher des formulaires un choix unique ?
        Pourquoi je ne parviens pas à utiliser les champs de mon formulaire ?
        Comment récupérer les données de mon formulaire ?
        Comment ajouter des données à une liste déroulante ?
        Comment faire pour obtenir une liste déroulante contenant plus de 25 items ?
        Comment faire pour insérer plus de 255 caractères dans un champ texte de mon formulaire en VBA ?



Comment faire pour effectuer une action sur un champ de formulaire ?
auteur : Lebeau Olivier
Les champs utilisés pour les formulaires peuvent être associés à des macros.
Un double-clic sur le contrôle

La liste déroulante vous permet de choisir une macro.


Comment imposer pour les cases à cocher des formulaires un choix unique ?
auteur : Lebeau Olivier
Contrairement aux UserForm, les formulaires ne permettent pas un groupement des cases à cocher.
Par le biais des macros, il est possible d'imposer un seul choix.

Le principe est simple, il suffit de décocher toutes les autres cases à cocher.

Sub CaseACocher1()
ActiveDocument.FormFields(2).Result = False
ActiveDocument.FormFields(3).Result = False
ActiveDocument.FormFields(4).Result = False
ActiveDocument.FormFields(5).Result = False
End Sub
Si nous avons 5 cases à cocher, lors du choix de la première, on change la valeur des autres à Faux (non coché)


Pourquoi je ne parviens pas à utiliser les champs de mon formulaire ?
auteur : Lebeau Olivier
Pour pouvoir utiliser un formulaire, le document doit être protégé. Même si aucun mot de passe n'est défini, sans protection, vous ne pouvez remplir le formualire.


Comment récupérer les données de mon formulaire ?
auteur : Lebeau Olivier
La récupération des données de formulaire ne devient réellement intéressante qu'en VBA.

On récupère le contenu d'un champ de formulaire avec la propriété Result de ce champ.

Dim fld As FormField
For Each fld In Activeocument.FormFields
Debug.Print fld.Result
Next fld

Comment ajouter des données à une liste déroulante ?
auteur : Lebeau Olivier
La méthode utilisée pour ajouter des données à une liste déroulante se fait de préférence sur l'initialisation du UserForm.
Dans l'exemple qui suit, nous allons sur l'évènement Initialize du UserForm remplir le Combo avec deux éléments : "a" et i.

Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 50
    Me.ComboBox1.AddItem "a" & i
Next i
End Sub
Nous pourrions envisager l'utilisation d'un tableau pour le remplissage du combo.

Option Base 1

Private Sub UserForm_Initialize()
Dim i(6) As String
Dim j As Integer

i(1) = "A"
i(2) = "B"
i(3) = "C"
i(4) = "D"
i(5) = "E"

For j = 1 To UBound(i)
    Me.ComboBox1.AddItem i(j)
Next j
End Sub
lien : Les tableaux en VBA

Comment faire pour obtenir une liste déroulante contenant plus de 25 items ?
auteur : Lebeau Olivier
Dans un formulaire Word, il n'est pas possible d'utiliser une liste déroulante contenant plus de 25 entrées.

Pour obtenir une liste avec plus de 25 éléments, il est nécessaire de passer par un UserForm. Ce UserForm contiendra une liste déroulante.
Après la mise à jour, l'élément sélectionné sera envoyé dans un champ de formulaire du document.
Avec un tableau

Private Sub UserForm_Initialize()
Me.ComboBox1.List() = Array("Un", "Deux", "Trois")
 
End Sub
Une autre possibilité de remplissage est l'utilisation de la méthode AddItem
Avec la méthode AddItem

Private Sub UserForm_Initialize()
Dim i As Byte
For i = 1 To 40
    Me.ComboBox1.AddItem "a" & i
Next i
End Sub
Lors de l'ouverture du document, il faut initialiser le UserForm
Initialisation du UserForm

Sub document_open()

Load UserForm1
UserForm1.Show

End Sub
L'écriture de la donnée dans le document. Pour recevoir la donnée, nous aurons besoin d'un champ texte.
Mise à jour du champ texte après choix

Private Sub ComboBox1_Change()
ActiveDocument.FormFields(1).Result = Me.ComboBox1.Value
UserForm1.Hide
 
End Sub
lien : Support Microsoft

Comment faire pour insérer plus de 255 caractères dans un champ texte de mon formulaire en VBA ?
auteur : Lebeau Olivier
Lorsque vous souhaitez insérer dans le champ texte d'un formulaire, Word possède une limitation qui n'est pas décrite. Cette limitation se traduit de deux façons différentes, si votre texte fait 256 caractères, Word plante simplement, si vous avez plus de 256 caractères, vous recevez un message d'erreur.

Parallèlement, si vous entrez votre texte au clavier, vous ne rencontrez pas d'erreur. La solution consiste donc à simuler une entrée clavier dans votre champ.

   Sub WorkAround255Limit()
      ' Ajout d'un texte particulier
      ActiveDocument.FormFields("text1").Result = "****"
      If ActiveDocument.ProtectionType <> wdNoProtection Then
          ActiveDocument.Unprotect
      End If
      Selection.GoTo What:=wdGoToBookmark, Name:="Text1"
      Selection.Collapse
      Selection.MoveRight wdCharacter, 1
      'Simulation de 256 caractères
      Selection.TypeText (String(256, "W"))
      Selection.GoTo what:=wdGoToBookmark, Name:="Text1"
      ' Suppression des étoiles
      With Selection.Find
         .Execute findtext:="*", replacewith:="", replace:=wdReplaceAll
      End With
      ActiveDocument.Protect Password:="", NoReset:=True, Type:= _
         wdAllowOnlyFormFields
   End Sub



Consultez les autres F.A.Q.


  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.