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

Macros et VBA Excel Discussion :

Suppression de caractères conditionnel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut Suppression de caractères conditionnel
    Bonjour tout le monde,

    Je vous expose mon probleme :

    J'ai une feuille Excel qui n'a qu'une seule colonne (A). Cette colonne contient une liste de mail. (1 mail par cellule).

    Ce que je souhaiterais, c'est une fonction vba qui fasse ceci :

    Colonne A

    nom1@domaine1.com
    nom2@domaine2.fr
    nom3@domaine3.net
    nom4@domaine4.com
    ....

    Colonne B


    domaine1.com
    domaine2.fr
    domaine3.net
    domaine4.com
    ...

    C'est à dire que je veux que dans ma colonne B, il n'y ai que les noms de domaines. Une fonction du type : "Dès que tu trouves un "@", efface tout ce qu'il y a avant..."

    J'espere que je me suis bien fait comprendre.
    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    maçon
    Inscrit en
    Novembre 2004
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : maçon

    Informations forums :
    Inscription : Novembre 2004
    Messages : 286
    Par défaut
    Bonjour,
    Essaies ça pour voir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim vPos as integer
     
    do 
     vPos = instr(1,activecell.value,"@")
     if vPos >0 then
        activecell.offset(0,1).value = right(activecell.value,len(activecell.value)-(vpos)
     end if
     activecell.offset(1,0).select
    loop while activecell.value<>""

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Oui, ou tu peux également faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim Plage As Range, Cell as range
    Set Plage = Range("A1:A" & Range("A65536").End(xlUp).Row)
    For Each Cell In Plage
         Cell.Value = Split(Cell, "@")(1)
    Next
    End Sub

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DROITE(B15;NBCAR(B15)-CHERCHE("@";B15;1))

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Merci beaucoup à tous pour vos propositions et votre rapidité !

    Je n'ai essayé que la première solution et elle fonctionne très bien !

    Je test les autres de suite avant de fermer la discussion.

    Encore une fois merci !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    La deuxième solution marche aussi à une condition : il faut que chaque cellule ai un "@" à l'interieur. Si pas "@", ca bug. (comme j'avais deux ligne où il y avait juste un nom...)

    La dernière solution elle, je n'arrive pas à la faire marcher...

    En tout cas merci bcp à tous !

    Je ne le diarais jamais assez, ce forum est une mine d'or en terme de connaissances et d'apprentissage !

    Merci et bonne journée.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Juste pour le fun
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim Plage As Range, Cell as range
    Set Plage = Range("A1:A" & Range("A65536").End(xlUp).Row)
    For Each Cell In Plage
         if instr(Cell, "@") <> 0 then Cell = Split(Cell, "@")(1)
    Next
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. suppression dernier caractère d'un ArrayList avec le clavier
    Par barbiche dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 26/03/2007, 12h04
  2. Suppression de caractères dans un fichier
    Par kimlee dans le forum Administration système
    Réponses: 2
    Dernier message: 12/10/2006, 09h42
  3. Réponses: 4
    Dernier message: 10/10/2006, 10h14
  4. Suppression de caractères spéciaux
    Par nellynew dans le forum Access
    Réponses: 3
    Dernier message: 18/09/2006, 10h14
  5. Suppression de caractères
    Par Galaad dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/08/2006, 11h54

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