Supriession d'une chaine da caractère excel

Résolu
ibral -  
 ibral -
Bonjour,

Dans une collonne excel, je souhaite suprimer les crochets [ et ] et récupérer la chaine du premier entre crochet, pour compliquer le problème le nombre de caractère entre les crochets est variable exemple:
[toto]
[bonbon]
[bi*da-]
[tata]/[titi]

je suis sur excel 2003.
merci d'avance
A voir également:

9 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

regarde si cette fonction personnalisée répond à ta demande
les mots sont séparés par un "/"

Function enleve_crochets(ByRef texto As String) As String
Dim reg As Object
Dim extraction As Object
Dim tablo
    Set reg = CreateObject("vbscript.regexp")
    reg.Global = True
    reg.Pattern = "([^][])"
    
    Set extraction = reg.Execute(texto)
    For Each digit In extraction
        enleve_crochets = enleve_crochets & (digit.Value)
    Next digit
    tablo = Split(enleve_crochets, "/")
    enleve_crochets = tablo(0)
    Set extraction = Nothing
    Set reg = Nothing
End Function


edit 12:30h ajouter extraction uniquement du 1° mot
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Re, excuses moi j'avais très mal lu ta demande
si tu veux extraire que le premier mot sans crochets quelque soit la séparation entre mots, il n'y a pas besoin de mon usine à gaz avec des expressions régulières !!!

Function enleve_crochets(ByRef texto As String) As String
Dim tablo
  tablo = Split(texto, "]")
  enleve_crochets = Right(tablo(0), Len(tablo(0)) - 1)
End Function

0
ibral
 
Sans passer par une macro, une fonction dans la cellule est elle possible?
0
ibral
 
Avec par exemple de la substition, ou si non c'est qui le caractère qui représente le début de chaine de caractère.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
oui, mais tu as écris ta demande dans le forum programmation...donc j'ai réagi en langage de programmation XL-VBA
si tu veux par formule, il eut été plus efficace de poster ta demande sur le forum bureautique.

Je regarde une formule et te propose ca
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
par exemple, 1 solution parmi d'autres
=DROITE(GAUCHE(D8;CHERCHE("]";D8)-1);NBCAR((GAUCHE(D8;CHERCHE("]";D8)-2))))
0
garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   406
 
ou sinon un simple replace(replace(variable,"[",""),"]","") fonctionne (je vien de le tester)
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Peut être comme cela

=SUBSTITUE(SUBSTITUE(GAUCHE(A1;CHERCHE("/";A1)-1);"[";"");"]";"")
0
ibral
 
Thanks a lot ça fonctionne.
0