Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Effacer plusieurs mots dans une même colonne dans plusieurs cellules

ThomasZander

XLDnaute Nouveau
Bonjour à tous,

J'aimerais savoir si il est possible sous excel d'avoir une formule qui permet d'effacer plusieurs mots d'un coup.
Je m'explique: j'ai une liste d'informations dans une colonne et j'aimerais effacer plusieurs mots d'un coup,à savoir les jours de la semaine qui apparaissent
plusieurs fois. Existe t'il donc une formule que je puisse dérouler pour effacer l'ensemble des occurrences de Lundi à Dimanche ?

Merci beaucoup pour votre aide !
Thomas
 

James007

XLDnaute Barbatruc
Bonjour,

Une clarification de vocabulaire ...

Une formule ne pourra pas balayer une feuille pour effacer des données ... une macro elle pourra le faire

Le plus simple ... joindre un fichier test ...

Edit : Salut sousou
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour ThomasZander, sousou, James007 & riton

Avec demande d'UN mot à "deleter" pour une plage de cellules à définir. Il doit y avoir possibilité de faire avec plusieurs mots mais je ne sais pas faire.

VB:
Sub RechercherMot()
Dim mot As String
mot = InputBox("Mot à rechercher ?")
If mot = "" Then Exit Sub
For Each c In Range("A1:E9")   'A adapter
If c.Value Like mot Then
c.Delete
End If
Next
End Sub

Bonne nuit à toutes & à tous
 

patricktoulon

XLDnaute Barbatruc
bonjour
@Eric C qui a dit que la cellule devait être vidée?
la demande c'est effacer plusieurs mots

VB:
Sub test()
mots = Array(",toto", ",cellules", "trois")
For i = LBound(mots) To UBound(mots)
Range("A:A").Cells.Replace What:=mots(i), Replacement:="", LookAt:=xlPart
Next
End Sub

 

Eric C

XLDnaute Barbatruc
@patrick - Je reviens sur mon propos, la virgule faisant partie intégrante du contenu de l'Array, la valeur ne sera pas effacée sauf si dans la cellule, cette ponctuation est présente ?

Au temps pour moi, en regardant ton gif, on peut voir que tu effaces ",toto" & ",cellule" donc ponctuation ET mot.
Sinon, la mise en application de ton #10 est trop coriace pour moi. Bye
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
coriace !!????

VB:
Sub test()
    Dim mots As Variant
    mots = InputBox("tapez les mots séparés pas un "";""")
    mots = Split(mots, ";")
    For i = LBound(mots) To UBound(mots)
        Range("A:A").Cells.Replace What:=mots(i), Replacement:="", LookAt:=xlPart
    Next
End Sub

 

Eric C

XLDnaute Barbatruc
@patrick - Tout paraît si simple en Vba après ton passage et les grands de ce forum.
Moi, qui bidouille, je peux te dire que je suis dessus depuis 13H00. J'en ai lu des articles sur le net, j'en ai tripatouillé des codes à rallonge avec des redim et des ArrayVariable()...... mais nada. Et là, il suffit de....
Petite expli sur ce code que je vois souvent :
VB:
For i = LBound(mots) To UBound(mots)
. Je crois savoir que cela crée un tableau dans un ordre croissant ? Pourrais je avoir un exemple concret (si ce n'est abusé de ton temps). Pour m'ouvrir d'autres horizons dans la recherche et les remplacements.....
Encore grand merci pour moi et pour tout ceux qui ont parcouru ce post (+ de 100)... enfin s'ils reviennent
 

patricktoulon

XLDnaute Barbatruc
re

Je crois savoir que cela crée un tableau dans un ordre croissant ?
PAS DU TOUT !!!!!!
explication en couleur
For i = LBound(mots) To UBound(mots)
traduction
for i= plutpetitindex(de l'array mots) to plus grandindex (de l'array mots)

et je le dis bien en ses termes!!!!! car beaucoup croient que ubound donne le count de l'array hors c'est faux
et la différence se
vérifie avec un array en base 0 (ce que donne le split d'une chaine d'ailleurs )
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…