IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

reconnaissance adresse mail


Sujet :

Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    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
    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

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Range("A" & Rows.Count).End(xlUp).Row

    cordialement,

    Didier

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    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.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je complète Didier (Hello)...

    Attention que le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    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)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [VB.NET] mailto adresse mail dans zone de text
    Par wilaya dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/03/2005, 11h50
  2. [JFormattedTextField ]validité d'une adresse mail
    Par gege2mars dans le forum Composants
    Réponses: 3
    Dernier message: 14/01/2005, 16h55
  3. [VBA][outlook] récupération des adresses mail
    Par arno2004 dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 27/07/2004, 18h48
  4. Cacher l'adresse mail
    Par alain58 dans le forum ASP
    Réponses: 15
    Dernier message: 20/07/2004, 17h06
  5. [VB6] procédure de vérification d'adresse mail ?
    Par ghohm dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/06/2004, 13h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo