Extraire des mail vers Excel

Bonjour

Comment faire pour importer un groupe de mail sous word et le mettre dans un tableau exel, un mail par ligne afin de pouvoir faire un tri par la suite et ajouter de renseignements pour chaque mail?

Merci pour votre réponse

Yvan

Bonsoir,

Tu copies colles sur excel, et une formule excel ou un code vba permettra d'ordonner le tout (ligne par ligne)

Peux tu joindre un fichier excel avec le copier-coller des mails world ?

cordialement

ok

voici un exemple de fichier

je voudrais donc que les mails du fichiers word puissent être coller dans le fichier exel dans la colonne C, pour ensuite pouvoir compléter manuellement les autres colonnes.

34listing-mail.xls (14.50 Ko)

Merci

METHODE 1 :

Une méthode sans macro : Fonctionne avec World 2010 (pas sur que world 2003 intègre cela)

Alors je viens de voir qu'avec world, tu as la possibilités de remplacer des "," par des saut de lignes manuel

(tu selectionnes tes mails, ensuite tu vas dans rechercher: tu tapes "," (juste la virgule sans les guillemets)

ensuite tu cliques sur remplacer par : et tu vas dans spécial et choisis saut de ligne manuel, et cliques sur remplacer tout.

image1

Ensuite tu reselectionnes tout, et tu recherches les blancs et tu remplaces par rien : dans rechercher : (tu met un blanc donc tu appuies sur espace) et dans remplacer par : tu laisses vide. Tu cliques sur remplacer tout et après tu peux ensuite coller ton tableau facilement sur excel.

METHODE 2 :

Avec excel (sans macro)

Avec l'outil 'assisant de conversion' de excel.

Tu sélectionnes tes mails sur world, tu les copies colles sur la cellule A1 de ton fichier (onglet Feuil2).

Tu selectionnes A1, ensuite tu choisis l'assistant de conversion excel

(tu choisis les mêmes paramètres que les images ci-dessous :

image2

tu cliques sur suivant

image3

tu cliques sur suivant

image4

Tu cliques sur terminer.

Ensuite, tu retournes dans ta feuil1.

et dans la cellule C2 tu rentres la formule :

=SUPPRESPACE(DECALER(Feuil2!$A$1;;LIGNES($C$1:C1)-1;;))

Tu déroules la formule vers le bas et c'est bon.

Merci, çà marche exactement comme je le souhaites pour l'extraction. Par contre, j'ai un autre soucis. Dans mon listing de mail ,je me retrouve avec des cellules où ce n'est pas une véritable adresse mail ( A11 et A12 par exemple sur le nouveau fichier joint) Comment faire pour repérer les cellules qui ne comportent pas d'adresse mail réelle, et mettre par exemple en B11 ou B 12 la valeur 1 si ce n'est pas une adresse mail en a11 et a12 = si( a11= ;"";1) Que mettre à la place de ?

Pourquoi pas utiliser une macro ?

Si la cellule ne comporte pas de "@" alors l'adresse est fausse ?

On part du principe que l'extraction se fait dans la feuille 2 et commence en A1 ?

Si c'est le cas une macro permettra de supprimer les cellules qui ne contiennent pas de "@".

Y a t'il d'autres cas de figure ?

cordialement

impossible de trouver l'assistant de conversion exel. C'est bien dans outil qu'il faut chercher???

Bonsoir

Menu Données ---> Convertir

donnees convertir

Salut le forum

Si toujours le même type de fichier, une petite macro,

Sub Extraire_Mail()
'Nécessite d'activer la référence
'Microsoft Word xx.x Object Library

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim NomFic As Variant
Dim Tablo() As String
Dim Cpt As Integer

    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True

    NomFic = Application.GetOpenFilename("Word Document(*.doc;*.docx),*.doc;*.docx")

    If VarType(NomFic) = vbBoolean Then
      MsgBox "Opération Annulée"
      Exit Sub
    End If

    Set WordDoc = WordApp.Documents.Open(NomFic, ReadOnly:=True)

    With WordApp
        .Selection.WholeStory
        .Selection.Copy
    End With

    ActiveWorkbook.ActiveSheet.Range("A1").Select
    ActiveWorkbook.ActiveSheet.Paste
    Application.CutCopyMode = False
    WordDoc.Close False
    WordApp.Quit

    Tablo = Split(Range("A1"), ",")

    For Cpt = 0 To UBound(Tablo) - 1
      Cells(Cpt + 1, 1) = Trim(Tablo(Cpt))
      Cells(Cpt + 1, 2) = IIf(InStr(Tablo(Cpt), "@") > 0, "Valide", "Erroné")
    Next Cpt

    Range("A1").CurrentRegion.Columns.AutoFit

End Sub

Mytå

ok merci

et donc étape finale, comment faire l'étape inverse, c'est à dire partir de mon fichier exel qui a été trié et pouvoir prendre toutes les adresses mail pour envoyer le mailing

Yvan

Re le forum

Pour l'envoi de Mail, regarde :

Mytå

Autre petit problème. Comment récupérer les adresses mails avnt de les transférer sur exel lorsque le mail est caché par un nom? voir doc joint

Bonsoir

Je ne sais pas sur word, mais une fois que tu les as copié sur excel, une petite macro peut le faire :

29classeur1.zip (16.32 Ko)

Amicalement

Nad

Merci Nad, c'est exactement ce qu'il me faut

Je ne connais pas trop les macros. Je sais juste enrégistrer une macro pour éviter de répéter toujours la même opération.

Pourrais tu me dire comment tu réalises celle-ci? Par exemple, je suis incapacble de savoir si tu as sélectionné un certain nombre de cases de la première collonne, ou si peu importe le nombre de mails mis dans la colonne A, cela va marcher.

ou peut- être est-ce une macro qui existe déjà ????? dans ce cas, où peut-on trouver une liste de macros existantes?

merci

Yvan

Bonjour

Il s'agit d'un code créé pour ta demande.

Il va chercher tous les liens hypertextes (qu'on appelera i) de la feuille active

For Each i In ActiveSheet.Hyperlinks

et on remplace le texte à afficher par le texte réel qui est situé à partir la la 8ème lettre du nom réel

(les 7 1ères lettres étant mailto:)

i.TextToDisplay = Mid(i.Name, 8 )

Quant a ta question :

NAVYCARRE a écrit :

où peut-on trouver une liste de macros existantes

Je pense que le bon départ pour apprendre le VBA est de cliquer sur COURS VBA que tu trouves en haut de ce forum?

Amicalement

Nad

Rechercher des sujets similaires à "extraire mail"