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 d'une macro qui remplira un agenda


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut Création d'une macro qui remplira un agenda
    Bonjour,

    Je n'ai jamais fait de VBA sous Word et je désirerais créer une macro qui permettrait d'entrer des données pour un agenda.

    Il faudrait que l'utilisateur entre les nom, prénom, adresse et numéro de teléphone d'un contact pour que celui-ci aparaisse sous une certaine mise en page dans une liste et classé par ordre alphabétique selon le nom puis le prénom.

    La mise en page serait:

    [Nom] [Prénom]----(espacement)--->[Num Tel]
    [Rue et Numéro]
    [Code Postal][Localité]

    Les champs obligatoires seraient uniquement le nom et le prénom.

    Est-ce que tout cela est réalisable? et si oui de quelle manière?

    Merci d'avance

    Cyriusix

  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
    C'est possible, mais ta question est un peu vague !

    Quel type d'agenda ?
    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
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Se serait juste une page word qui, une fois pleine de nom, serait imprimée sur un petit agenda (calpin) ou même imprimé tel quelle, puis découpée et collé. A moin qu'il y ai d'autres possibilité que je n'imaginerais même pas.. mais je ne veux pas plus me compliquer..

    Cyriusix

    Je me permet de relancer, quelqu'un aurait-il une solution?

  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 Remplir l'agenda
    Salut,

    Je pense que la solution est directement de faire un tableau dans Word avec les en-têtes que tu veux. Pour le trier, il suffit d'utiliser la fonction "Tableau-Trier".

    Avec ce truc, tu utilises que du Word, pas de macro et ton impression est égale à ce que tu vois (si l'imprimante que tu utilises est celle par défaut).

    Allez, c'est mon jour de bonté, je te file un exemple du fichier
    A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pourquoi n'as-tu pas essayé la solution stockage des données dans Excel, et impression dans Word de tes fiches ?

    Starec

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Bonjour, merci pour vos réponses.

    Pour Sepia:
    Merci pour cet exemple.. j'avais imaginé fair cela, mais ca aurait été à utiliser en dernier recours. j'aimerais que les noms en gras se mettent automatiquement, que chaques champs (nom, prénom, Code postal...) se mettent automatiquement à leurs place, et que dès que la nouvelle saisie est effectuée, elle se mette automatiquement par ordre alphabétique.

    Je n'y ais pas pensé avant, mais ca serait idéal qu'il y ait un saut de page après chaques différente lettre (une page pour les A, une autre pour les B...) mais ce n'est pas le plus important donc si jarive déja à trouver une sollution pour le reste ca serait déja super..

    Pour Starec:
    Excel est une bonne idée également.. mais il faut à nouveau à chaque fois saisir l'information que l'on désire dans le champs qu'on désire (il me semble)

    j'imaginai quelque chose comme ca pour la saisie de l'utilisateur:


  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Va voir l'exemple d'Heureux-oli dans ce post :http://www.developpez.net/forums/sho...d.php?t=449355

    Cela devrait t'interresser. Il y'a un exemple de masque de saisie grâce à un UserForm, et positionnement dans word.

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Merci, cela va me permettre de mettre en forme quelque chose..

    A partir de cela, comment pourais-je savoir que faut-il mettre et ou afin de mettre certain texte en gras, de faire en sorte que des champs soient obligatoire et leurs mise en page?

    Cyriusix

  9. #9
    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
    Quelle est ton idée gloable, parce que tout est possible.

    Tu dois avant de te lancer savoir ce que tu veux faire.

    On peut mettre le texte en forme au moment où il est intégré dans le document. ce texte peut être mis à la suite de ce qui existe ou inséré dans un tableau après ajout d'une ligne.

    Comment doit être ton document, doit-il respecter certaines contitions de mise en page, ou de dimensions ?
    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 !

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Alors ca serait plutôt dans un tableau.. la mise en forme serait comme indiqué dans mon premier message:

    [Nom] [Prénom]----(espacement)--->[Num Tel]
    [Rue et Numéro]
    [Code Postal][Localité]

    En imaginant à ce moment que l'espacement soit donc une nouvelle cellule du tableau.

    le texte doit être d'une taille assez petite, disons du 8 et la police Arial.

    Je sais pas si c'est plus ou moin ce que tu atendais comme réponse.

    Ce que j'aimerais bien savoir, c'est ou est-ce que je devrai appliquer les bouts de codes qu'il me faudra modifier? Tout ce passe dans le Visual Basic Editor?

  11. #11
    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
    Oui, il faut passer par VBE pour le VBA.
    On peu tl'active par Alt + F11

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub pourMaTable()
     
    If ActiveDocument.Tables.Count = 0 Then
        ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=1
        ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "Agenda"
        ActiveDocument.Tables(1).Cell(2, 1).Range.Text = "Ma première ligne"
    Else
        ActiveDocument.Tables(1).Rows.Add
    End If
     
    End Sub
    Voilà déjà une idée de ce qu'il est possible de faire.
    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 !

  12. #12
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Merci pour cela, mais serait-il possible de commenter juste en gros ce que fait cette partie du code? et par rapport au UserForm, le code se situerai ou?

  13. #13
    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
    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
    Sub pourMaTable()
    Dim i As Integer
    ' on va avant tout vérifier si la table existe dans le document
    ' Deux étapes, la première, pas de table, la seconde la table existe.
    If ActiveDocument.Tables.Count = 0 Then
        ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=1
        ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "Agenda"
        ActiveDocument.Tables(1).Cell(2, 1).Range.Text = "Ma première ligne"
    Else
    ' si la table existe, on va compter le nombre de lignes de la table
        i = ActiveDocument.Tables(1).Rows.Count + 1
    'on ajoute une ligne à la table
        ActiveDocument.Tables(1).Rows.Add
    ' on selectionne la dernière ligne de la table, avec i et la ligne en plus i + 1
        ActiveDocument.Tables(1).Rows(i).Select
     
    End If
    ' dans la sélection de la dernière cellule de la table
    ' on va insérer du texte et le mettre en forme.
    With Selection
        .Font.Bold = True
        .TypeText "Mon Nom"
        .Font.Bold = False
        .TypeText vbTab & "Mon Prénom"
        .Font.Bold = True
        .TypeParagraph
        .TypeText "Ma seconde ligne"
    End With
     
     
    End Sub
    Ce code peut être mis sur un bouton d'un user form.
    A la place de "Mon nom", on peut utiliser Me.TextBox1.value
    qui serait issu d'un text box de UserForm, ce nom peut être tout autre.
    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 !

  14. #14
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup Heureux-Oli, je vais étudier tout ca avant de revenir à la charge..

  15. #15
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Re Bonjour, je ne parviens pas à faire correspondre le code grassieusement fournis par Heureux-oli et mon UserForm dans le VBE.

    A mon avis, je ne copie pas le code au bon endroit. Quelqu'un pourait-il me donner des détails oubien y aurait-il un tutoriel concernant le VBE accessible à quelque part?

    Merci bien,

    Cyriusix

  16. #16
    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
    Voilà un exemple
    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 !

  17. #17
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    me revoila,

    Donc après avoir essayé d'imbriquer le code fourni par Heureux-oli et son exemple de UserForm, j'arive au résultat mis en pièce jointe.

    Maintenant mes questions:

    1. Comment faire pour que les numéros fixe, portable, fax et e-mail soient affiché dans la 2ème colonne? car de toute évidence, le vbaTab ne me convient pas tellement.
    2. Comment faire pour qu'une saisie se range par ordre alphabétique du nom?
    3. Comment faire pour que la saisie soit fait toujours à sa place (ordre alphabétique) même si il y a des sauts de pages dans le tableau (afin d'avoir une page dédiée aux A, une autre pour les B...)
    4. Je n'arrive pas à comprendre totalement cette ligne: "ActiveDocument.Tables.Add Range:=Selection.Range,..." En gros c'est pour ajouter des lignes ou colonnes, mais est-ce qu'elle sert à autre chose?


    Voila, si quelqu'un peu me renseigner encore sur tout ca, ca serait vraiment génial, et si vous avez des questions car tout ceci n'est peut-être pas très clair, n'hésitez pas..

    Cyriusix

  18. #18
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    J'ai toujours des problèmes avec les 4 points ci-dessus... Est-ce que quelqu'un a une sollution?

    Merci.

  19. #19
    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
    Citation Envoyé par Cyriusix Voir le message
    me revoila,

    Donc après avoir essayé d'imbriquer le code fourni par Heureux-oli et son exemple de UserForm, j'arive au résultat mis en pièce jointe.

    Maintenant mes questions:

    1. Comment faire pour que les numéros fixe, portable, fax et e-mail soient affiché dans la 2ème colonne? car de toute évidence, le vbaTab ne me convient pas tellement.
    1. Fais deux colonnes et tu basule dans la seconde colonne
    2. Comment faire pour qu'une saisie se range par ordre alphabétique du nom?
    Possible uniquement après avoir rempli le tableau et à chaque ajout faire un tri du tableau.
  20. Comment faire pour que la saisie soit fait toujours à sa place (ordre alphabétique) même si il y a des sauts de pages dans le tableau (afin d'avoir une page dédiée aux A, une autre pour les B...)
Faire un tri
  • Je n'arrive pas à comprendre totalement cette ligne: "ActiveDocument.Tables.Add Range:=Selection.Range,..." En gros c'est pour ajouter des lignes ou colonnes, mais est-ce qu'elle sert à autre chose?
  • Add, c'est ajouter et Tables, on va ajouter une table à la collection des tables.



    Cyriusix
    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 !

  • #20
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Hello,

    Merci pour cette réponse.

    Les 2 colonnes sont faites. mais quel code utiliser pour basculer les saisie dans la deuxième?

    J'avais déjà essayé de faire un tri du tableau, et oui ça marche, mais pas si on fait avec des sauts de page. Car, il faudrait séléctionner la totalité des pages, et une fois le tri efféctué, tous les sauts de page sont supprimés.

    Si je garde quand même cette idée de faire un tri, ya-t-il possibilité de l'intégrer dans le UserForm?

    Cyriusix

  • + Répondre à la discussion
    Page 1 sur 2 12 DernièreDernière
    ActualitésFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAOFFICE 2010

    Discussions similaires

    1. Réponses: 1
      Dernier message: 17/02/2015, 13h34
    2. {EXCEL ou VBA}Création d'une macro (Débutant)
      Par Thomas69 dans le forum Macros et VBA Excel
      Réponses: 6
      Dernier message: 29/05/2007, 15h32
    3. [VBA-E] une macro qui enregistre mon fichier Excel
      Par Djohn dans le forum Macros et VBA Excel
      Réponses: 10
      Dernier message: 02/03/2007, 11h47
    4. Réaliser une macro qui enregistre le résultat d'une requête
      Par boulette85 dans le forum Requêtes et SQL.
      Réponses: 4
      Dernier message: 22/02/2007, 18h36
    5. Réponses: 14
      Dernier message: 09/04/2004, 13h44

    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