Créer une macro pour effacer du texte

Résolu
EXANAD Messages postés 43 Statut Membre -  
EXANAD Messages postés 43 Statut Membre -
Bonjour,

J'ai une base de donnée d'email extraite d'un site qui m'a été transmise dans laquelle je dois enlever du texte à partir du mot : SMTP.

Je souhaite créer une macro qui supprimerait sur chaque ligne (tout le texte qui se trouve après SMTP....

Ex :
zyfool@hotmail.frSMTPCELINE LERAT
zyqlas@orange.frSMTPzyqlas@orange.fr

Merci pour votre aide précieuse. Car j'ai plus de 30 000 adresses à nettoyer.

7 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Excusez l'incruste

    peut-^tre + rapide (30000 lignes)

    Sub supprimer_apres_smtp() 
    Dim tablo, derlig As Integer 
    
    derlig = Columns("A").Find("*", , , , , xlPrevious).Row 
    Application.ScreenUpdating = False 
    tablo = Application.Transpose(Range("A2:A" & derlig).Value) 
    
    For cptr = 1 To UBound(tablo) 
         tablo(cptr) = Split(tablo(cptr), "SMTP")(0) 
    Next 
    
    Range("A2").Resize(UBound(tablo, 1)) = Application.Transpose(tablo) 
    End Sub 
    


    essai sur 30000 lignes: 0,7 secondes (RAM_DDR: 512 Mo)
    Michel
    1
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    une macro

    Public Sub nettoieadr()
    Dim c As Range
    Dim s As String
    Dim p As Long
    Application.ScreenUpdating = False
    For Each c In Selection
      s = c.Value
      p = InStr(1, c, "SMTP")
      If p > 0 Then
        s = Left(s, p - 1)
      End If
      c.Value = s
    Next c
    Application.ScreenUpdating = True
    End Sub

    bonne suite
    0
  3. EXANAD Messages postés 43 Statut Membre
     
    Ok merci à vous et surtout pour votre réactivité.
    Dois-je mettre les codes que vous m'avez transmis dans la fenêtre Visual Basic?
    0
    1. EXANAD Messages postés 43 Statut Membre
       
      J'ai une erreur de compilation end sub attendu lorsque j'ai ajouté votre script sur VB.
      Avez-vous une idée de ce qui pourrait éventuellement coincé. j'aurais souhaité vous soumettre une copie d'écran ?
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    le code est à mettre dans un module général Alt-F11 puis Insertion/Module
    es tu sur d'avoir copié tout le code? je te mets mon fichier au cas où...
    https://www.cjoint.com/?0Bpjv203Fdy
    bonne journée
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. EXANAD Messages postés 43 Statut Membre
     
    Bonjour Michel

    Tout d'abord merci pour le script. Malheureusement je n'ai toujours pas réussi à le faire fonctionner. j'en ai besoin pour demain et j'arrive pas à comprendre ou ça bug.
    J'ai copier votre script en faisant ALTF11, enregistrer la macro sous un raccourci CTRL a mais ça marche toujours pas. j'ai un message d'erreur erreur de compilation.
    je n'ai jamais crée de macro jusqu'à présent....si vous pouvez m'assister. J'apprécierai beaucoup.
    je voudrais vraiment apprendre :-)
    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    chez moi ca marche sans problème

    ci joint maquette d'essai avec code commenté
    https://www.cjoint.com/?3BposHUs0sH

    (le bouton remplir inscrit le texte sur 30000 lignes)

    CTRL a est une touche de raccourci utilisé par Excel ==> ne pas l'utiliser comme déclencheur de macro
    0
  8. EXANAD Messages postés 43 Statut Membre
     
    yahooooooooo...ça marche....

    Mais pour que je comprenne, il va falloir que je comprenne le code que vous avez écrit....je vais essayé de décortiquer et comprendre....

    je vous remercie infiniment pour votre aide et réactivité....
    0