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
Configuration: Windows XP Internet Explorer 6.0

9 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. ibral
     
    Sans passer par une macro, une fonction dans la cellule est elle possible?
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    par exemple, 1 solution parmi d'autres
    =DROITE(GAUCHE(D8;CHERCHE("]";D8)-1);NBCAR((GAUCHE(D8;CHERCHE("]";D8)-2))))
    0
  8. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    ou sinon un simple replace(replace(variable,"[",""),"]","") fonctionne (je vien de le tester)
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Peut être comme cela

    =SUBSTITUE(SUBSTITUE(GAUCHE(A1;CHERCHE("/";A1)-1);"[";"");"]";"")
    0