Formulaire sous Word

Résolu
CHATOUNETTE -  
CLOWNELLE Messages postés 26 Statut Membre -
Bonsoir,
Je créais un formulaire sous Word et je n'arrive pas pour l'appellation Numéro de téléphone comment faire pour que lorsque la personne saisisse son numéro, ce dernier s'affiche pas tranche de 2 chiffre et un espace qui sépare les 10 chiffresj du genre (00 00 00 00 00). De même, pour l'appellation Numéro de Sécurité Sociale. Comment faire pour qu'à la saisie les espaces se mettent entre les chiffre (du genre : 0 00 00 00 000 000 00).
Je fais du télétravail (cf. confinement) et j'aimerai bien avancer sur cette création de formulaire. Merci pour vos lumières !

6 réponses

  1. m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Tu parles de formulaire, mais on ne sait pas de quel type de formulaire tu parles. Or, il y en a au moins trois sortes. Donc, ce que tu veux faire est possible, mais cela dépend des contrôles utilisés.
    https://faqword.com/index.php/word/formulaires-controles/911-le-point-sur-les-outils-de-formulaires

    m@rina
    1
    1. CHATOUNETTE
       
      Bonsoir,
      Je suis en Mode Création, Personnalisé avec des zones de texte "Propriétés", des zones déroulante, calendrier. Donc un formulaire renseigné à l'ordinateur. Un moment donné, je souhaite que les personnes renseignent leur numéro de sécurité sociale, numéro de téléphone. Je voudrais une mise en forme avec des espaces et non une succession de chiffres. Merci pour le lien. Cordialement. Sandra.
      0
    2. m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention   11 562 > CHATOUNETTE
       
      Bonjour,

      Tu ne me réponds pas très clairement, en rapport avec le lien donné...
      Bon, a priori il s'agit de contrôles de contenu.
      Ce que tu veux faire est possible uniquement par macro.

      Voici une macro qui va formater le numéro de sécu et le numéro de téléphone. Il faut commencer par mettre des balises à tes deux contrôles (via les propriétés). Dans mon exemple, c'est "sécu" et "tél". Tu mets cette macro dans ThisDocument:

      Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
      Dim nsecu, ntel
      If CC.Tag = "sécu" Then
      nsecu = CC.Range.Text
      nsecu = Format(nsecu, "0 00 00 00 000 000 00")
      CC.Range = nsecu
      End If

      If CC.Tag = ("tél") Then
      ntel = CC.Range.Text
      ntel = Format(ntel, "00 00 00 00 00")
      CC.Range = ntel
      End If
      End Sub


      Je montre ici comment mettre cette macro
      https://faqword.com/index.php/word/formulaires-controles/902-a-l-instar-des-champs-de-formulaire-peut-on-declencher-une-macro-a-la-sortie-d-un-controle-de-contenu?highlight=WyJjb250ZW50Y29udHJvbCJd

      Il faut bien noter que le format se fera une fois qu'on sera sorti du contrôle car l'événement est EXIT.

      Pour ton problème de protection, il faut bien choisir Protection Formulaire et seuls les contrôles pourront être remplis.

      m@rina
      0
    3. Chatounette > m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Bonjour Marina, sous "Développeur", j'ai effectivement inséré sur "Aa" (Contrôle de contenu texte brut). J'ai bien fait Alt+F11 et saisi la macro. Je l'ai bien enregistré. Dans "Propriété" j'ai bien précisé sur la ligne "Balise" le mot "tél" pour sur la ligne qui correspond et dans un autre contrôle de contenu de texte brut, j'ai précisé sur la balise "sécu". J'ai restreint les modifications en sélectionnant "Remplissage de formulaires", j'ai enregistré.
      Le problème est que lorsque la personne va arriver sur la ligne du tél ou sur la ligne de sécu, on voit apparaitre : "Cliquez ou appuyez ici pour entrer du texte" et lorsque l'on saisi le numéro de téléphone, cet écrit ne se supprime pas. Du coup, le numéro est mélangé au milieu du texte "cliquez ou appuyer ici....". Je ne comprends pas, surtout que pour les autres cellules où il y a ce même texte, lorsque l'on renseigne l'information ce texte s'efface pour laisser place au renseignement saisi par la personne qui remplit le formulaire. D'où ça peut venir.
      Un grand MERCI Marina pour cet macro. Je commence à atteindre la moëlle de l'os !
      Sandra
      0
    4. m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention   11 562 > Chatounette
       
      Bonjour Sandra

      Pour mettre un message de saisie, il faut passer en mode Création et taper le message. Ensuite, une fois qu'on est sorti du mode Création, le fait de cliquer dans le contenu fera disparaître le message.

      En fait, il y avait un petit problème dans la macro, car elle formatait aussi le libellé. Je te mets le document ici avec les macros corrigées
      https://www.cjoint.com/doc/20_03/JCBn1Z2OkrH_format-cc.docm

      m@rina
      0
    5. CLOWNELLE Messages postés 26 Statut Membre > m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Marina, je vois que tu es bien plus à l'aise que moi. Je suis déjà très contente d'avoir réussi à mettre en pratique tes explications pour la macro. J'ai fait des captures d'écran pour que tu visualises afin de mieux voir ce que j'ai à mon écran, mais comment je peux faire pour te les envoyer (comment as-tu fais au dessus pour mettre la macro ?)
      0
  2. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Bonjour.

    Solution 1 = Faire le formulaire sous Excel, et non sous Word.


    Solution 2 = Insérer des tableaux d'une ligne et 14 colonnes pour le téléphone, une ligne et 21 colonnes pour la SS.

    https://www.cjoint.com/c/JCzboGpVIu7
    0
    1. CHATOUNETTE
       
      Bonjour,
      Je vous remercie pour ces renseignements.
      Néanmoins dans les formulaires, j'ai déjà pu voir que l'on tapé le chiffre et les espaces se mettaient automatiquement pour passer à la case suivante et ainsi mettre un seul chiffre par case.
      Toujours dans mon formulaire, à la fin je l'ai protégé via un mot de passe et quand je le test, mes intitulés restent modifiables. On peut écrire. Auriez-vous également une explication qui pourrait m'aider ?
      Je vous en remercie par avance.
      0
  3. CLOWNELLE Messages postés 26 Statut Membre
     
    Bonsoir Marina,
    Pour finir sur la macro antérieur. Lorsque l'on saisi plus de 10 chiffres dans le tél ou un numéro de trop pour le numéro sécu (ce qui est possible actuellement) je voudrais savoir s'il est possible d'insérer dans la macro une consigne qui met un message d'erreur informant qu'il y a un chiffre de trop.
    Possible ou pas ?
    Encore merci.
    0
  4. m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Il faut savoir que ce que les possibilités dans un contrôle de contenu sont assez restreintes, contrairement à des contrôles de Userform ou même des ActiveX.

    Comme tu l'as compris, les événements sont limités : on ne peut faire une action qu'à l'entrée du contrôle et à la sortie.
    J'élimine tout de suite le message à l'entrée qui explique ce que l'on doit faire et qui va vite agacer tout le monde.

    A la sortie, on peut vérifier le nombre de caractères, on peut aussi vérifier s'il s'agit de numérique. Le problème est que les espaces sont considérés comme faisant partie du format numérique. Et si la personne saisit les espaces, ça va générer une erreur...

    Je réfléchis à ce qu'on peut faire et je reviens vers toi.

    m@rina

    0
    1. CLOWNELLE Messages postés 26 Statut Membre
       
      Bonsoir Marina,

      ok, merci pour ces renseignements.

      A plus tard.

      Sandra
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. m@rina Messages postés 27507 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Re...

    Voici une macro qui annule et remplace la première. DOnc, tu vas dans tes macros et tu supprimes complètement la macro existante.

    Cette macro va vérifier le nombre de chiffres saisis, que la personne ait tapé les espaces ou pas. Si le nombre est correct (10 pour le no de téléphone et 15 pour le no de sécu), le nombre sera formaté, sinon il y aura un message (que tu peux modifier si nécessaire). Si la personne a saisi les espaces, pas de problème, mais on peut prévenir que c'est inutile.

    Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
    Dim texte As String, i, Result, nb

    texte = CC.Range.Text
    If CC.ShowingPlaceholderText = False Then
    If Not IsNumeric(texte) Then GoTo fin:

    Select Case CC.Tag
    Case "tél"
    For i = 1 To Len(texte)
    If IsNumeric(Mid(texte, i, 1)) Then
    Result = Result & Mid(texte, i, 1)
    End If
    Next
    CC.Range = Result
    nb = CC.Range.Characters.Count

    If nb <> 10 Then
    MsgBox "le numéro n'est pas correct, il doit comporter 10 chiffres"
    Else: texte = Format(texte, "0# ## ## ## ##")
    CC.Range = texte
    End If

    Case "sécu"
    For i = 1 To Len(texte)
    If IsNumeric(Mid(texte, i, 1)) Then
    Result = Result & Mid(texte, i, 1)
    End If
    Next
    CC.Range = Result
    nb = CC.Range.Characters.Count

    If nb <> 15 Then
    MsgBox "le numéro n'est pas correct, il doit comporter 15 chiffres"
    Else: texte = Format(texte, "0 00 00 00 000 000 00")
    CC.Range = texte
    End If
    End Select

    End If
    Exit Sub
    fin: MsgBox "Numéro incorrect"

    End Sub

    0
  7. CLOWNELLE Messages postés 26 Statut Membre
     
    CA FONCTIONNE !!!!!

    C'est super que tu es créé un article sur le sujet.

    Tu es un génie, je le dirai à mon directeur que ça à permis de créer un article.

    Au plaisir.

    Sandra
    0