IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Vider automatiquement tous les champs et cases à cocher de certaines pages d'un formulaire Word 2010 [WD-2010]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Analyste informatique
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Vider automatiquement tous les champs et cases à cocher de certaines pages d'un formulaire Word 2010
    Bonjour à tous,

    Je recherche une façon optimisée pour conserver les valeurs des champs et cases à cocher de la première page uniquement dans un formulaire Word de 3 pages. Donc, plus concrètement, j'ai créé un formulaire Word 2010 avec macro vba pour permettre de sauvegarder les données saisies et soumettre ce formulaire complété pour les 3 pages. Une fois soumis, le formulaire doit revenir à la base et effaçant les données inscrites dans le formulaire pour les pages 2 et 3 afin d'avoir uniquement la page 1 avec les informations pour une utilisation future, et ainsi permettre de re-compléter les pages 2 et 3 avec d'autres informations et re-soumettre le formulaire ensuite.

    Pour le moment, j'ai testé plusieurs possibilités, mais en vain, donc j'ai inscrit dans le code vba ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveDocument.FormFields("CaseACocher001").CheckBox.Value = False
    ActiveDocument.FormFields("Texte001").TextInput.Clear
    ActiveDocument.FormFields("CaseACocher002").CheckBox.Value = False
    ActiveDocument.FormFields("Texte002").TextInput.Clear
    ..ainsi de suite...
    Cependant, le processus est très long et doit absolument être optimisé, car il y a environ 100 champs et cases à cocher.

    Merci d'avance de votre aide !

    M. Beaulieu

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut beaulieu_inter,

    Tu as 2 difficultés majeures de Word car 1°) la notion de page n'existe pas (oui c'est étrange mais c'est la réalité) car Word est un éditeur de texte pas un logiciel de mise en page et 2°) pour réinitialiser, la syntaxe dépend du type de champ de formulaires.

    Néanmoins on peut ruser, tu places un signet sur les pages 2 et 3.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ReinitPage2Et3()
        If ActiveDocument.Bookmarks.Exists("Page2Et3") Then
            For aI = 1 To ActiveDocument.Bookmarks("Page2Et3").Range.FormFields.Count
               If ActiveDocument.Bookmarks("Page2Et3").Range.FormFields(aI).Type = wdFieldFormCheckBox Then
                  ActiveDocument.Bookmarks("Page2Et3").Range.FormFields(aI).CheckBox.Value = False
               End If
               If ActiveDocument.Bookmarks("Page2Et3").Range.FormFields(aI).Type = wdFieldFormTextInput Then
                  ActiveDocument.Bookmarks("Page2Et3").Range.FormFields(aI).TextInput.Clear
               End If
            Next
        End If
    End Sub
    @+

  3. #3
    Candidat au Club
    Homme Profil pro
    Analyste informatique
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour Sepia,

    Ça fonctionne et le code est beaucoup plus simple! Cependant, il n'est pas amélioré au niveau de la vitesse, mais c'est déjà beaucoup mieux

    Merci et bonne journée,

    M. Beaulieu

  4. #4
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut beaulieu_inter,

    N'oublie pas de cliquer sur :Resolu: si ton problème a eu une réponse, positive ou négative (et qui semble positive ici). Ça permet aux autres DVPnautes qui peuvent avoir le même problème de trouver plus rapidement une solution.

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vider tous les champs d'un formulaire
    Par sghiri_alla_eddine dans le forum Forms
    Réponses: 2
    Dernier message: 05/06/2012, 10h06
  2. [Excel] charger tous les champs automatiquement ?
    Par rimas2009 dans le forum Général Java
    Réponses: 3
    Dernier message: 10/01/2012, 15h25
  3. Réponses: 2
    Dernier message: 14/09/2006, 14h24
  4. Réponses: 14
    Dernier message: 17/10/2005, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo