[Excel] Chercher, trouver puis supprimer

Fermé
Fainty - 11 juil. 2006 à 20:06
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 - 11 juil. 2006 à 22:40
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.
A voir également:

1 réponse

Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
11 juil. 2006 à 22:40
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