[Excel] Chercher, trouver puis supprimer

Fainty -  
Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je présente tout d'abord mon classeur sur lequel je travaille :
une centaine de feuilles différentes,
dans chaque feuille : un tableau
dans chaque cellule du tableau : des liaisons différentes vers des cellules d'un autre fichier.

J'aimerais supprimer des termes des liaisons.
par exemple : A3 : " = BLABLABLA;"Oasis";BLABLABLA."
Je veux supprimer "Oasis" de toutes les cellules et garder les BLABLABLA.
Je pense qu'il faut d'abord chercher Oasis et quand Oasis est trouvé le supprimer. Mais n'y connaissant rien à VBA je me tourne vers ce forum. De plus, il ne me reste plus que 2 jours pour trouver la solution, je vous remercie donc de me répondre rapidement.

Bonne journée.

1 réponse

  1. Armojax Messages postés 1863 Date d'inscription   Statut Membre Dernière intervention   1 529
     
    Bonjour Fainty,

    Essaie ce code. Par précaution, quand même, travaille sur une copie...
    Ça marche chez moi, mais je n'ai forcément pas tous les cas de figure de ton classeur.

    Pour installer la macro :
    - Outils / Macro / Visual Basic Editor
    - Insertion / Module
    Et dans le cadre blanc tu copies le texte de la macro.

    Ensuite, pour la lancer :
    - Outils / Macro / Macros...
    - Choisir Substituer (y'a que ça) et OK.
    On te demande le texte à virer. Respecter les majuscules et minuscules.
    Sub Substituer()
    
      Dim Lig     As Long
      Dim Col     As Long
      Dim Chaine  As String
      Dim Feuille As String
      Dim Cellule As Range
      Dim Plage   As Range
      Dim FFF     As Worksheet
      
      Chaine = InputBox("Entrez le texte à éliminer, puis faites OK.", "RECHERCHE ET SUPPRESSION DE TEXTE")
      If Chaine = "" Then Exit Sub
      
      Feuille = ActiveSheet.Name
      Application.ScreenUpdating = False
      For Each FFF In Worksheets
        FFF.Activate
        Lig = FFF.Cells.SpecialCells(xlCellTypeLastCell).Row
        Col = FFF.Cells.SpecialCells(xlCellTypeLastCell).Column
        Set Plage = FFF.Range(Cells(1, 1), Cells(Lig, Col))
        For Each Cellule In Plage
          Cellule.Formula = Application.WorksheetFunction.Substitute(Cellule.Formula, Chaine, "")
        Next
      Next
      Sheets(Feuille).Activate
      Application.ScreenUpdating = True
      
    End Sub
    0