Supriession d'une chaine da caractère excel

Résolu/Fermé
ibral - 9 févr. 2010 à 11:51
 ibral - 9 févr. 2010 à 13:47
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 févr. 2010 à 12:02
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 févr. 2010 à 13:07
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
Sans passer par une macro, une fonction dans la cellule est elle possible?
0
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 févr. 2010 à 13:22
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 févr. 2010 à 13:31
par exemple, 1 solution parmi d'autres
=DROITE(GAUCHE(D8;CHERCHE("]";D8)-1);NBCAR((GAUCHE(D8;CHERCHE("]";D8)-2))))
0
garion28 Messages postés 1543 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 404
9 févr. 2010 à 13:42
ou sinon un simple replace(replace(variable,"[",""),"]","") fonctionne (je vien de le tester)
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 févr. 2010 à 13:44
Salut,

Peut être comme cela

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