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 :

Création de CheckBox et copie d'un fichier


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Création de CheckBox et copie d'un fichier
    Bonjour à tous,

    Je me permet de poster afin de vous de vous demander de m’éclairer de vos lanternes. Je ne suis pas noob en VBA mais je ne connais que le VBA sous Excel, or c’est sous Word que j’aurais besoin de coder ; mais normalement je ne devrais pas avoir trop de mal à comprendre vos indications.

    Je vous explique ce que j’aimerai faire :

    J’ai un fichier Word contenant des paragraphes de texte et ensuite des structures « personnes » contenant des renseignements personnels (Nom, Prénom, Date de naissance, Adresse, Activité…) et ces structures « personnes» sont délimitées par un Identifiant et mot de fin (« End »). Ce qui donne quelque chose comme ca :

    [début fichier Word]




    ‘Blablablabla (paragraphe de texte)



    Personne_1
    Nom : A
    Prénom : AA
    Date de naissance : 01/01/01
    Adresse : Loin
    Activité : Aucune
    End

    Personne_2
    Nom : B
    Prénom : BB
    Date de naissance : 02/01/01
    Adresse : Plus Loin
    Activité : Autre
    End

    Ect…

    [Fin du doc]



    Ce que j’aimerai faire est en deux temps :
    - tout d’abord j’aimerai créer une macro qui associe à chaque structure « personne» une CheckBox au numéro d’identifiant de la structure.
    - Puis j’aimerai coder une macro qui permettrait de créer un nouveau fichier Word identique au premier (copie) mais sans les structures dont les CheckBox n’auront pas été cochées par l’utilisateur.

    Je sais pas si j’ai été clair…

    Si ca peut aider chaque champ d’une structure possède un Style Word propre (Exemple : l’identifiant « Personne_X » et le mot « End » sont tout les deux en un style « Struct » avec taille 12, police New Times, en gras et en Rouge).

    Voilà, si quelqu’un à quelques idées pour me lancer dans ce code, et pour me guider sur le codage VBA WORD, je lui en serait éternellement reconnaissant ^^.

    Merci d’avance à tous.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,


    Je pense que pour la gestion des données, une base de données serait de loin pllus intéressante à utiliser.

    Cette base de donnée peut être construite en Excel, Access ou en SQL.

    L'idée des cases à cocher en Word n'est pas en soi mauvaise, mais c'est sa mise en pratique qui ne sera aisée.

    Il faut pour chaque case à cocher lui attribuer un nom qui sera mis en relation avec une personne pour traiter cette personne si la case est cochée.

    Alors qu'avec une DB, c'est très facile à mettre en oeuvre.

    C'est à toi de voir.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Merci de ta réponse mais....
    Merci de ta réponse mais l'utilisation du logiciel Word m'est imposée....

    Je sais qu'une Db serait plus simple à utiliser mais l'idée est d'abord de sélectionner les personnes à afficher puisqu'en réalité l'utilisation des styles Word permettra de passer le document résultat sous DOORS...

    Tu n'aurais pas une idée simple pour la création d'une Checkbox associée à chaque structure/personne et indicée à la valeur de l'identifiant de la personne déjà?

    Merci pour ta réponse en tout cas.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Simple ?

    Une idée en passant, la création de signets en fonction des noms.
    Reprise du contenu de chaque signet en fonction du choix.
    Pour les signets et les check boxes, utiliser une partie du nom augmentée d'un -cb pour la check boxe.

    Pour la recherche, on peut faire une boucle sur le résultat d'une recherche.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    J'avais bien pensé aux signets mais dans ces cas là j'aurais une question: si je pose un signet (indicé "X" )et que finalement en utilisant la deuxième macro que je souhaite crée, je souhaite supprimer la personne "X" correspondante au signet; celui sera t'il supprimé avec la structure/personne?

    L'idée de base était la suivante:

    / Balayage du document
    / Si je rencontre le texte "Personne_?" alors
    / Je récupère la valeur '?'
    / je crée une case à cocher devant le texte

    Et ensuite

    / Balayage des cases
    /Si la case est cocher je fais rien
    /Si elle ne l'est pas
    / On sélectionne de "Personne_?" à "End"
    / Et on efface



    Tu ne pense pas que ce soit possible de faire ca?

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Pourquoi supprimer ?

    On peut tout simplement créer un nouveau document avec ce qu'on a besoin.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Euh...
    Ouai, supprimer les non cochées ou simplement copier tout ce qui est coché, ca revient quasiment au même pour moi...
    Après lequel est le plus simple, je n'en n'ai pas la moindre idée...
    En fait c'est plutot la première partie qui me fait ramer.

    (Merci encore)

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    en réfélechissant un peu sur ton problème, on pourait utiliser un tableau pour stocker les informations;
    en fonction des coches, on transfère les données de la cellule qui suit ou pas.

    c'est à toi de voir.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    En fait vu que c'est pour les études, je suis assez peu libre de cela, d'autant que je ne peux passe sur excel car il m'arrive d'avoir des photos et des tableaux qui ne peuvent être passés dans une cellule.

    J'ai trouvé des bouts de macros me permettant de rechercher du texte dans un doc Word mais je n'arrive pas à bien l'adapter pour qu'il me crée une checkbox devant les textes trouvés.

    Pour être honnête je ne suis pas libre sur l'utilisation de word ou sur le formalisme du fichier...

  10. #10
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Mon but n'est pas d'écrire ton code.
    Jusqu'à présent, à part une description de ce que tu as et de ce que tu souhaiterait avoir, nous n'avons rien vu ni eu.

    Si tu as un début, montre le, on devrait peut-être pouvoir te donner la voie à suivre.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Où j'en suis ...
    Bon alors j'ai une portion de code pour ma première macro. Les actions sont bonnes mais le "balayage" ne convient pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    Dim Num As String
    Dim N As String
     
    Public Sub Insertion_CB()
     
    Selection.WholeStory
    Selection.Find.ClearFormatting
     
    With Selection.Find
         .MatchWildcards = True
         .Text = "Personne_" 'le mot a chercher
     
              While .Execute
              Selection.Range.Select
              Num = Selection
              tableau = Split(Num, "_")
              N = tableau(1)
     
            Selection.InlineShapes.AddOLEControl ClassType:="Forms.CheckBox.1"
            ActiveDocument.CheckBox1.Caption = "CheckBox" & N
            ActiveDocument.CheckBox1.Name = "CheckBox" & N
     
            Wend
     
     
     
    End With
     
    End Sub
    Cette macro me crée bien une CheckBox 1, devant la structure "Personne_1" le problème est qu'elle s'arrete là, la macro ne parcours pas tout le document. (pas de CheckBox2 devant "Personne_2", ect...)

    Une idée?! s'il vous plait ...

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut finalement...
    Finalement, je suis parti sur une autre forme de code et ca marche. Me reste plus que la deuxième partie du projet. Voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Dim Num As String
    Dim N As String
    Dim tableau() As String
    Dim i As Integer
     
     
     
    Sub Insertion_de_CB()
     
        i = 0
     
    'On se met au debut du doc
          Selection.Start = ActiveDocument.Content.Start
          Selection.End = ActiveDocument.Content.Start
     
     'On recherche notre mot
          With Selection.Find
              .ClearFormatting
              .Text = "Personne_" 'le mot a chercher
     
     
      'tant qu'on le trouve on stocke le texte trouvé avec ce style dans une variable
              While .Execute
     
              Selection.Range.Select
              'Num = Selection
              'tableau = Split(Num, "_")
              'N = tableau(1)
     
                  Selection.InlineShapes.AddOLEControl ClassType:="Forms.CheckBox.1"
                  ActiveDocument.CheckBox1.Caption = "CheckBox" & i
                  ActiveDocument.CheckBox1.Name = "CheckBox" & i
                  i = i + 1
      'On se met a la suite pour poursuivre la recherce
                  Selection.Start = Selection.End + 1
                  Selection.End = Selection.Start
              Wend
          End With
     
      End Sub
    Maintenant, il me reste à gérer la sélection de ma structure personne si la CheckBox est activée et à créer le fichier 'épuré' des structures qui n'auraient pas été sélectionnées.

Discussions similaires

  1. [FPDF] création d'un interface pour accés à des fichiers PDF
    Par StyleXP dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/12/2005, 10h18
  2. Réponses: 12
    Dernier message: 07/12/2005, 18h42
  3. copie de base, fichier mdw, perte des droits
    Par hades666evil dans le forum Access
    Réponses: 2
    Dernier message: 14/09/2005, 17h06
  4. Copie d'un fichier sans montage avec Samba
    Par jean-jacques varvenne dans le forum Réseau
    Réponses: 5
    Dernier message: 14/07/2005, 11h31
  5. copie d'un fichier vers un autre serveur
    Par jexl dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 16h04

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