Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
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 13/06/2011, 23h34   #1
Invité de passage
 
Homme
Consultant ERP
Inscription : juin 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Consultant ERP
Secteur : Industrie

Informations forums :
Inscription : juin 2011
Messages : 1
Points : 0
Points : 0
Par défaut reconnaissance adresse mail

Bonjour
Je veux faire un mailing (par mail et non par courrier) depuis Word, et en prenant la liste des destinataires dans Excel.
Ds mon tableau Excel, toutes mes adresses sont bien du style andredupont@orange.fr, (pas souligné, et pas en bleu) pour les utiliser je dois les faire reconnaitre comme une adresse mail (souligné et en bleu)
Actuellement, je dois double-cliquer sur chaque adresse pour la transformer (et j’ai plus de 4 000 adresses mails)

Il y a-t-il une formule pour faire reconnaitre un texte comme une adresse mail.
Merci par avance
HUARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 08h57   #2
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Bonjour,
Ce que tu appeles transformer en lien (bleu souligné), par un double clic sur la cellule, est en fait, l'insertion d'un lien hypertexte "adresse de messagerie".
On peux le faire :
- manuellement par la commande Insertion/Lien hypertexte choisir "adresse de messagerie" et compléter les champs : texte à afficher et adresse de messagerie,
- en double cliquant dans la cellule (c'est tout de même plus rapide ;-)
- par macro, avec, par exemple, ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub arobase()
Dim Lig As Long, DrLig As Long
Dim Col As Byte
Dim LienMail As String
 
Col = 1 'indique ici le numéro de la colonne à traiter
DrLig = Cells(65536, Col).End(xlUp).Row
For Lig = 1 To DrLig
    If Cells(Lig, Col) Like "*@*" Then
        LienMail = Cells(Lig, Col)
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(Lig, Col), Address:="mailto:" & LienMail, TextToDisplay:=LienMail
    End If
Next
End Sub
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/06/2011, 00h36   #3
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 682
Points : 4 682
Bonjour,

attention sur des discussions taguées 2007 et au delà, cette écriture :

Code :
DrLig = Cells(65536, Col).End(xlUp).Row
est fausse et d'autant plus dangereuse qu'elle pourra ne pas provoquer d'erreur selon la situation et qu'ensuite elle retournera un résultat faux mais pas de message d'erreur.

Préférer depuis l'année 2007 des écritures (et pour toutes les versions (à vérifier avant 2000 ?) pour la portabilité) du genre :

Code :
MsgBox Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
ou encore :

Code :
MsgBox Range("A" & Rows.Count).End(xlUp).Row

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 15/06/2011, 08h38   #4
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Bonjour Didier,
Merci beaucoup pour ton message, c'est effectivement très utile à savoir... D'autant plus que j’utilise fréquemment cette syntaxe que mon bon vieux 2003 ne m'a jamais refusé!!!

Bonne journée à vous.
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 00h19   #5
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 403
Points : 14 403
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Je complète Didier (Hello)...

Attention que le code
Code :
MsgBox Range("A" & Rows.Count).End(xlUp).Row
présuppose que la feuille active est une feuille de calcul.

Si ce n'est pas le cas, et/ou que l'on a préfixé l'objet Range avec l'objet qui le contient, on doit aussi préfixer le Rows.count avec l'objet Worksheet, sinon, le code plantera si c'est une feuille graphique qui est active.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 10h11   #6
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Bonjour tout le monde,
Il semblerait, selon le MP de Huard reçu hier, que le code donné précédemment ne fonctionne pas.
Je l'ai donc rectifié en :
- tenant compte des remarques de Didier Gonard et Pierre Fauconnier concernant la version Excel 2007,
- changeant la méthode de comparaison (Si la cellule contient un @).

A voir...
Si Huard pouvait tester et revenir donner son sentiment sur cette discussion...

Le code (largement commenté) à insérer dans un module Standard (ALT+F11 depuis la feuille puis Insertion/Module) et à lancer depuis la feuille concernée (ALT+F8, choisir "arobase" et "exécuter") :
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
Option Explicit
 
Sub arobase()
Dim Lig As Long, DrLig As Long
Dim Col As Byte
Dim LienMail As String
 
'Supprime tous les liens de la feuille active
'si vous ne souhaitez pas supprimer préalablement les liens hypertextes,
'placez une apostrophe (') devant cette ligne :
ActiveSheet.Hyperlinks.Delete
 
'Dans la ligne suivante, il vous faut adapter le numéro de colonne
'indiquez quel numéro de colonne doit être traité
Col = 1 'indique ici le numéro de la colonne à traiter
 
'prise en compte de la remarque de Didier Gonard concernant la dernière ligne
'Excel 2007 peut être supérieure à 65536
DrLig = ActiveSheet.Columns(Col).Find("*", , , , xlByColumns, xlPrevious).Row
 
'boucle sur toutes les lignes, dans la colonne concernée
For Lig = 1 To DrLig
    'si la cellule contient un "@" alors
    '2 méthodes différentes
    'If Cells(Lig, Col) Like "*@*" Then
    If InStr(Cells(Lig, Col), "@") <> 0 Then
        LienMail = Cells(Lig, Col)
        'on ajoute le lien dont on renseigne le texte à afficher et l'adresse de messagerie
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(Lig, Col), Address:="mailto:" & LienMail, TextToDisplay:=LienMail
    End If
Next
End Sub
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 10h21   #7
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 403
Points : 14 403
Envoyer un message via Skype™ à Pierre Fauconnier
Pour répondre à ton problème initial, je ne comprends pas le problème que tu rencontres avec les adresses.

Je viens de tester un fichier excel avec une colonne d'adresses électroniques. Il n'y a pas de liens hypertexte sur les adresses et la fusion en publipostage fonctionne très bien et envoie les messages à ma messagerie (Outlook).
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier 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 01h05.


 
 
 
 
Partenaires

Hébergement Web