XL 2016 Option de rechercher/sélectionner

Deliau

XLDnaute Nouveau
Bonjour,

Pour toutes les cellules non vides d'une feuille, je souhaite remplacer le contenu de chaque cellule compris entre les caractères \

Exemple : NON\OUI\NON donnera OUI (sachant que le texte change..)

J'ai la formule pour une cellule : =STXT(A1;CHERCHE("\";A1;1)+1;CHERCHE("\";A1;CHERCHE("\";A1;1)+1)-(CHERCHE("\";A1;1)+1))

Comment paramétrer la fonction d'Excel "rechercher/sélectionner" pour l'appliquer à chaque cellule non vide, et ainsi m'éviter de faire un code par ligne et par colonne ?

Merci,
Lucie
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

VB:
=STXT(A1;CHERCHE("\";SUBSTITUE(A1;"\";"\";1))+1;CHERCHE("\";SUBSTITUE(A1;"\";"\";2))-1)

Pas possible à mon avis par cherche et remplace.

Tu peux aussi découper ta colonne en 3 avec Données, Convertir et
  • soit supprimer les 1ère et 3ème colonnes
  • soit préciser colonne non distribuée pour ces colonnes dans le paramétrage de Conversion ce qui effacera automatiquement ces parties
Edit : illustration
Texte_entre_délimiteurs.jpg
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Deliau, chris, le forum,

Voyez si cette macro vous convient :
VB:
Sub Remplacer()
Dim ncol%, tablo, i&, j%, x$, s
With ActiveSheet 'à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .UsedRange
        ncol = .Columns.Count
        If ncol = 1 Then ncol = 2 'pour avoir au moins 2 éléments
        tablo = .Resize(, ncol).Formula 'matrice, plus rapide
        For i = 1 To UBound(tablo)
            For j = 1 To ncol
                x = tablo(i, j)
                If Left(x, 1) <> "=" Then
                    s = Split(x, "\")
                    If UBound(s) > 1 Then tablo(i, j) = s(1)
                End If
        Next j, i
        .Formula = tablo 'restitution
    End With
End With
End Sub
Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi