Comment je peux convertir mon fichier word en excel avec des colonnes ?

mamao90 mamao90
1 contribution
Membre depuis le 20/02/2012
Envoyé le 20/02/2012 à 10:18


Bonjour,

je viens de demander de l'aide sur votre forum.
Je dois envoyer un mailing à 'l ensemble de mes contacts.
J'ai bien exporté les adresses du carnet ensuite j'ai fait du VBA pour extraire les adresses mails destinataires et expéditeur de mes mails, jusque là pas de problèmes.

Sauf que je me retrouve avec une liste de mail dans un email que j'ai ensuite exporté en word. Voici un exemple de ce que cela donne:

"Gixxxxx Jean-Philippe (Go Inxxa Exxxxy)"[jean-philippe.gxxxxxz@ge.com]
"FXX Franche-Comté"[fxxx@free.fr]
"marc.lexxxxxx-orange.fr"[marc.lexxxxxer@orange.fr]
"CardScan At Your Service"[admin@cardscan.net]
"register-dataviz.com"[register@dataviz.com]

comment puis je faire pour les exporter vers excel? Comme vous pouvez le voir les adresses mails sont entre crochets à la fin de la ligne.

Quelle galère!! j'ai vu qu'il existait éventuellement un logiciel comme outlook extraction mais voilà je n'ai pas les moyens financier de me le procurer.

Merci de vos lectures et réponses.

Marc



Claude40 Claude40
1 531 contributions
Membre depuis le 24/03/2010
Envoyé le 20/02/2012 à 11:37 Modifié par Claude40


Bonjour,
Voici un début de réponse, prudent, car les problème est peut-être diffrérent de ce qu'il parait.
a) Faire tout simplement un copier/coller de la liste de mail telle que donnée en exemple sur la feuille Excel (dans mon exemple en cellule A1).
b) Coder et exécuter la macro ci dessous :

Sub Conversion()
'
' Conversion Macro
'

'
Range("A1:A5").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="""", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
Range("C1:C5").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="[", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Range("D1:D5").Select
Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="]", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True

Range("B1:B5").Select
Selection.Cut
Range("A1").Select
ActiveSheet.Paste
Range("D1:D5").Select
Selection.Cut
Range("B1").Select
ActiveSheet.Paste
End Sub


La macro procède en 4 temps et aux temps 1, 2 et 3, exécute l'équivalent de "Données + Convertir" de la barre des tâches.
1) Eclatement de chaque adresse mail en deux parties, libellé et adresse proprement dite sur deux colonnes distinctes avec suppression des caractères ".
2 et 3 )Suppression des crochets dans l'adresse, d'abord le [, puis le ]
4) retour des libellés en colonne A et des adresses en colonne B.

La macro peut, bien sûr, être adaptée à d'autres colonnes, mais il faut tenir compte des changements de colonnes opérés par la fonction "Convertir"
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
Mytå_Qc Mytå_Qc
30 contributions
Membre depuis le 06/08/2010
Envoyé le 20/02/2012 à 12:45 Modifié par Mytå_Qc


Bonjour,

Les adresses Email en colonne A (A1:Ax), le résultat en colonne B et C


Sub Extraire_Mail()
Dim Cel As Range

For Each Cel In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
Cel.Offset(, 1) = Split(Split(Cel, "[")(1), "]")(0)
Cel.Offset(, 2) = Split(Cel, "[")(0)
Next Cel

End Sub


Mytå_Qc

Pegase Pegase
1 023 contributions
Membre depuis le 07/02/2002
Envoyé le 20/02/2012 à 22:56


Bonjour,

Bravo Mytå_Qc pour ta solution en 4 lignes
J'en avais trouvé une un peu semblable mais en 8 lignes.
Je m'incline et en plus j'ai découvert cette fonction "Split" que je ne connaissais pas.
(+) (+) [;)]
Moi, le jour où j'aurai vraiment mon âge, je mourrai (Léo Ferré).
Mytå_Qc Mytå_Qc
30 contributions
Membre depuis le 06/08/2010
Envoyé le 21/02/2012 à 12:50


Bonjour,

Merci Pegasse, mais le plus triste c'est que les demandeurs ne reviennent que très rarement dire merci.

Mytå



Pegase Pegase
1 023 contributions
Membre depuis le 07/02/2002
Envoyé le 21/02/2012 à 17:32


Bonjour,


mais le plus triste c'est que les demandeurs ne reviennent que très rarement dire merci.

Bien d'accord avec toi, on se décarcasse et on ne sait même pas si on a bien compris la question. [:D]
Moi, le jour où j'aurai vraiment mon âge, je mourrai (Léo Ferré).

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum