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 ?
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
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
@patrick - Merci de ta réactivité J'en profite : ne peut on pas (si certainement....) renseigner les mots désirés à l'aide d'un InputBox ? Je vais essayer de ce côté là. Bonne journée
re
ben si ils seront effacés
et oui tu peux faire avec un inputbox même en y mettant plusieurs mots séparés par le séparateur que tu veux
tu split le return de l'imput et tu boucle
@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
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
@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
PAS DU TOUT !!!!!!
explication en couleur
For i = LBound(mots)ToUBound(mots)
traduction
for i= plutpetitindex(de l'array mots) toplus 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 )