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 26/04/2011, 11h07   #1
Invité de passage
 
Homme
bureau de conseil
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : bureau de conseil
Secteur : Bâtiment

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Par défaut VBA WORD Macro de séparation des adresses mails par "; " pour préparation publipostage

Bonjour,

Après une demi journée de bidouillage, je me résous a finalement demander conseil avant de m'arracher mes derniers cheveux...

Mon problème:

J'ai un listing (long) d'adresses mails sous word chacune d'elle étant séparé par sauts de lignes, nombres d'espaces variables,... et je souhaite remettre en forme ce listing a l'aide d'une macro afin de directement pouvoir les copier dans la barre destinataire d'un mail collectif.

Pour cela elles, tous les champs adresses doivent être séparés par "; ". J'ai donc écrit le code suivant en bidouillant comme pas possible (je précise que je suis newbie sur VBA Word)


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
32
33
34
35
36
37
Sub publi2()
 
Dim intP As Integer
Dim intCp As Integer
 
intP = ActiveDocument.Paragraphs.Count
' afin d'éviter le crash de la macro et lui donner une fin
 
Selection.Start = ActiveDocument.Content.Start
Selection.End = ActiveDocument.Content.Start
' pour mettre le curseur au début du document
 
For intCp = 1 To intP
 
If Paragraph = " " Then Paragraphs.Delete
'afin de supprimer les lignes vides du document
 
    Selection.EndKey unit:=wdLine
    Selection.TypeText Text:="; "
    Do
    Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtend
 
If Selection.Text = " " Then Selection.Delete unit:=wdCharacter,Count:=1 Else GoTo patch
 
' sur le If selection.text = " " je veux dire que si le caractère sélectionné 
'par le curseur est un espace, la macro supprime l'espace et repete ce
' process tant qu'il y'a des espaces afin de se retrouver avec la prochaine
' adresse de la liste directement après le "; " et pour l'instant c'est cette
' partie de la macro qui a l'air de ne pas fonctionner...
 
 
    Loop
patch:
Next
 
 
End Sub
Voila, je suis conscient que cette proposition va vous faire bondir par son caractère bidouillé, mais je n'ai trouvé que ca...

Si quelqu'un peut m'aider...
Merci d'avance
lilian92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 11h17   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
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 321
Points : 29 220
Points : 29 220
Salut,

Pourquoi ne pas simplement utiliser la fonction recherche et remplacement de Word ?
__________________
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 26/04/2011, 11h46   #3
Invité de passage
 
Homme
bureau de conseil
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : bureau de conseil
Secteur : Bâtiment

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Bonjour et merci de votre réponse rapide.

Je ne vois pas comment utiliser cette fonction dans ma problématique.

En recherchant les "espaces" du documents et en les remplaçant par "; " je me retrouverais avec "adresse@dddd.com; ; ; adresse2@cccc.com" ce qui ne me permettras pas de faire mon publipostage.
lilian92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 12h24   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
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 321
Points : 29 220
Points : 29 220
Salut,

La première étape est les remplacement de tous les doubles espaces par des simples espaces tant qu'il en existe.
ensuite, les simples espaces par des ;
__________________
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 26/04/2011, 12h58   #5
Invité de passage
 
Homme
bureau de conseil
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : bureau de conseil
Secteur : Bâtiment

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Ca fonctionne parfaitement.

Merci beaucoup.

Je marque [Résolu] dans l'objet?
lilian92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 18h53   #6
Membre actif
 
Avatar de Souriane
 
Femme Guylaine C.
Assistant aux utilisateurs
Inscription : septembre 2009
Messages : 157
Détails du profil
Informations personnelles :
Nom : Femme Guylaine C.
Âge : 39
Localisation : Canada

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Service public

Informations forums :
Inscription : septembre 2009
Messages : 157
Points : 153
Points : 153
Bonjour Lilian,

non pour marquer résolu, tu cliques dans le bas complètement de la page sur le bouton "Résolu". C'est gentil d'y avoir penser et d'avoir demandé!

Bonne journée!

Souriane
Souriane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h00.


 
 
 
 
Partenaires

Hébergement Web