Créer une macro pour effacer du texte

Résolu
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. Contributeur
    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
    1. 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
      1. 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. 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
      2. 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
        1. 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
          1. Contributeur
            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
            1. 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