Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2007, 13h52   #1
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h05   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h08   #3
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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?
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2007, 00h11   #4
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
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+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2007, 07h01   #5
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 922
Points : 30 922
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

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

Starec
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 11h53   #6
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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:

Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 11h58   #7
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 922
Points : 30 922
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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.
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 13h38   #8
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 13h43   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 14h37   #10
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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?
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 14h53   #11
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Oui, il faut passer par VBE pour le VBA.
On peu tl'active par Alt + F11

Code :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 15h02   #12
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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?
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 15h12   #13
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 15h20   #14
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
Merci beaucoup Heureux-Oli, je vais étudier tout ca avant de revenir à la charge..
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 14h36   #15
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 14h59   #16
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 11h37   #17
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 08h33   #18
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
Bonjour,

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

Merci.
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 09h02   #19
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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
    Citation:
  2. Comment faire pour qu'une saisie se range par ordre alphabétique du nom?
  3. Possible uniquement après avoir rempli le tableau et à chaque ajout faire un tri du tableau.
    Citation:
  4. 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...)
  5. Faire un tri
    Citation:
  6. 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.
Citation:



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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 10h10   #20
Membre à l'essai
 
Étudiant
Inscription : janvier 2007
Messages : 133
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 133
Points : 24
Points : 24
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
Cyriusix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h30.


 
 
 
 
Partenaires

Hébergement Web