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 15/04/2008, 23h36   #1
Invité de passage
 
Inscription : avril 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 4
Points : 0
Points : 0
Par défaut Petite macro Word

bonsoir à tous,
j'ai besoin d'une macro sur word qui va me permettre de gagner du temps sur une tache repetitive.
Je m'explique :
j'ai reçu un fichier sur Word et j'ai besoin de le décomposer en partie sur un tableau word ou Excel, le fichier composre les données suivantes:
Code : 001
Nom : Martin
Adresse : 12, rue des Lilas
NB d'enfants : 2
Code : 002
Nom : Dupont
Adresse : 12, rue des Roses
NB d'enfants : 4
....la même chose sur 2000 clients.
ce que je cherche c'est de mettre les intitulés "Code, Nom, Adresse..." sur les colonnes et créer un base de données sur word et Excel avec une macro pour m'eviter la saisie.
Quelqu'un peut m'aider s'il vous plait??
un grand merci
Rosalyne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 10h27   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 360
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 360
Points : 29 280
Points : 29 280
On va utiliser la méthode des petits pas.

En gros, il faut pour chaque ligne repérer le premier mot de la ligne.
En fonction du mot, on va copier le dernier morceau de la ligne dans une colonne.

Pour parourir les paragraphes d'un document, on va utiliser une variable qui sera un paragraphe et ensuite, on va parcourir les paragraphes du document.

Pour pouvoir utiliser le code, il faut utiliser la combinaison Ctrl + F11 (Editeur VBE)

Code :
1
2
3
4
5
6
7
8
9
Sub TestPara()
Dim pAra as Paragraph
 
For Each pAra in ActiveDocument.Paragraphs
 
 
Next pAra
 
End Sub
Voilà l'ossature de notre code.

Dans cette ossature, on va avoir besoin d'une structure décisionnelle.
On a deux possibilités :
If ou Select Case.

Dans ce cas, je préfère utiliser le Select Case

Pour chaque paragraphe on vé récupérer le premier mot pour faire la comparaison.

Voilà à quoi ressemble le code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub testPara()
Dim pAra As Paragraph
Dim stTemp As String
 
For Each pAra In ActiveDocument.Paragraphs
Select Case pAra.Range.Words(1)
Case "Code "
    Debug.Print Right(pAra.Range.Text, Len(pAra.Range.Text) - 9)
End Select
 
Next pAra
 
End Sub
Fais quelques essai, on continuera ensuite.

Pour afficher le résultat, il faut faire dans l'éditeur VBE Ctrl + G
__________________
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 16/04/2008, 17h23   #3
Invité de passage
 
Inscription : avril 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 4
Points : 0
Points : 0
Par défaut Petite macro sur Word

Bonjour Heureux-oli
Merci pour ton analyse et pour ce code
J'essaye le code ces jours-ci et je te tiens au courant si j'y arrive
Rosalyne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 22h27   #4
Invité de passage
 
Inscription : avril 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 4
Points : 0
Points : 0
Par défaut petite macro word

Bonsoir,
j'ai fais le code comme indiqué, le résultat est le suivant :
1 Nom : Martin Adresse : 12, rue des Lilas NB d'enfants : 2 Code : 002 Nom : Dupont Adresse : 12, rue des Roses NB d'enfants : 4
le tout sur le même ligne.
le pb c'est que le code du premier client à sauté
j'ai du faire une betise certainement.
j'ai copier le code VBE que tu m'as donné et qui es le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub testPara()
Dim pAra As Paragraph
Dim stTemp As String
 
For Each pAra In ActiveDocument.Paragraphs
Select Case pAra.Range.Words(1)
Case "Code "
    Debug.Print Right(pAra.Range.Text, Len(pAra.Range.Text) - 9)
End Select
 
Next pAra
 
End Sub
est ce que j'ai oublié quelque chose??
merci bcp pour ton aide
Rosa
Rosalyne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 22h39   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 360
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 360
Points : 29 280
Points : 29 280
C'est tout simplement parce que je n'avais pas le fichier d'origine.
Je me suis basé sur le post.
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h24.


 
 
 
 
Partenaires

Hébergement Web