• Initiateur de la discussion Initiateur de la discussion nouri1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nouri1

XLDnaute Junior
bonjour tout le monde
je travail avec des tableau excel dont les cellule contient des noms de sociétés et associations, moi ce que je veux faire ; je veux dans les cellule qui contient association ou mairie par exemple je veux supprimer le mot association ou mairie et laisser le nom de l'association ou mairie
exemple 1 ; cellule B3 , contient "association pour les handicaps",moi je veux supprimer le mot "association" et laisser "pour les handicaps"
exemple 2; cellule C5, contient mairie de Villeneuve , je veux supprimer le mot mairie et laisser "Villeneuve"
j'ai besoin d'une macro que je l'applique sur tout le tableau pour supprimer ses deux mots dans tout le tableau

cordialement
 
Voici un code à utiliser, à toi de passer le bon Range en argument d'appel de la fonction SupprimeMots(). Ici on traite toute la feuille active.
VB:
Sub SupprimeAssociationEtMairie()
    Call SupprimeMots(ActiveSheet.UsedRange, "Association,Mairie")
End Sub

'----------------------------------------------------------------------
'Suppression des mots listés dans le paramètre ListeMots séparés par
'des virgules (,) à appliquer dans un Range passé dans le paramètre Rng
'----------------------------------------------------------------------
Sub SupprimeMots(Rng As Range, ListeMots As String)
    Dim TabMots() As String
    Dim Cellule As Range
    Dim Valeur As String
    Dim i As Integer
    Dim Nb As Integer
 
    TabMots = Split(ListeMots, ",")
    If UBound(TabMots) = -1 Then Exit Sub
    Nb = 0
 
    For Each Cellule In Rng
        If Not IsEmpty(Cellule) Then
            If VarType(Cellule) = vbString Then
                Valeur = Cellule.Value
                For i = LBound(TabMots) To UBound(TabMots)
                    Valeur = Replace(Valeur, TabMots(i) & " ", "", compare:=vbTextCompare)
                    Valeur = Replace(Valeur, TabMots(i), "", compare:=vbTextCompare)
                Next i
                If Len(Valeur) < Len(Cellule.Value) Then
                    Cellule.Value = Valeur
                    Nb = Nb + 1
                End If
            End If
        End If
    Next Cellule

    MsgBox "Mots """ & ListeMots & """ remplacés dans " & Nb & " cellule(s)."
End Sub

Edit: Après, il y a plus "geek" avec des Replace de Find, mais je préfère la pelle et la pioche 😎
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
282
Réponses
4
Affichages
407
Réponses
5
Affichages
568
Retour