Récupération de données entre crochets dans une tableau puis rangement

  • Initiateur de la discussion Initiateur de la discussion Ang3l666
  • 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 !

Ang3l666

XLDnaute Nouveau
Bonjour !

Voila, j'ai des valeurs entre crochets que je dois convertir en valeurs sans crochet donc voici la formule que j'utilise :

=SI(DROITE(A1;1)<>"]";"";STXT(A1;TROUVE("[";A1;1)+1;TROUVE("]";A1;1)-TROUVE("[";A1;1)-1))

Mais voila, j'aimerai que la formule me trouve toutes les valeurs entre crochet présente dans la table (A1:E60 par exemple) et non juste dans une cellule, et qu'a chaque fois qu'elle en trouve une elle me la range dans A1, puis A2, puis A3... dans une nouvelle table.
Est ce que l'on peut également rechercher toutes les valeurs entre crochets dans UNE cellule et les classer comme dit précédemment ?

Est ce que cela est possible??

Merci pour votre aide !!!
 
Re : Récupération de données entre crochets dans une tableau puis rangement

Bonjour le fil 🙂,
Un début de piste avec Regexp
(JNP: j'attends un petit coup de pouce de ta part sur ce coup là 😉)
Ce pattern me paraîtrais plus juste (limité au numérique avec un tiret 6 au milieu) 🙄
Code:
Function xcrochets(s As Range) As String
Application.Volatile
Dim m, mm, tmp$
With CreateObject("vbscript.regexp")
    .Global = True: .IgnoreCase = True: .Pattern =[COLOR=red][B] "\[\d*-\d*\]"[/B][/COLOR]
    Set mm = .Execute(s.Text)
    For Each m In mm
        tmp = tmp & "," & _
        Replace(Replace(m.Value, "[", ""), "]", "")
    Next m
End With
xcrochets = Mid(tmp, 2, 9 ^ 9)
End Function
Bon dimanche 😎
 
Re : Récupération de données entre crochets dans une tableau puis rangement

Bonjour,

Pour le 2ème problème, une tentative avec le fichier joint.

Attention : la formule en C19 (et suivantes) est une formule matricielle

Je te laisse regarder et nous dire si ça répond à ta demande.

@+
 

Pièces jointes

Re : Récupération de données entre crochets dans une tableau puis rangement

Re 🙂,
Toujours dans le demande de Jean-Marie (sans aucun à priori sur les formules 😉), je suis reparti du Post #1 qui parlait d'une plage de données.
D'où une fonction matricielle
Code:
Function MatricielleCrochets(Plage As Range)
Application.Volatile
Dim Texte As String, Cellule As Range, I As Integer, Tableau()
Dim m, mm
For Each Cellule In Plage
Texte = Texte & Cellule.Text
Next
I = 0
With CreateObject("vbscript.regexp")
    .Global = True: .IgnoreCase = True: .Pattern = "\[\d*-\d*\]"
    Set mm = .Execute(Texte)
    For Each m In mm
        ReDim Preserve Tableau(I)
        Tableau(I) = Replace(Replace(m.Value, "[", ""), "]", "")
        I = I + 1
    Next m
End With
MatricielleCrochets = Tableau
End Function
Par contre, je ne comprends pas, quand je l'exécute en matricielle (avec Ctrl + Maj + Enter), elle ne renvoie que la première valeur du tableau 😕...
Bonne fin de WE 😎
 
Re : Récupération de données entre crochets dans une tableau puis rangement

Re


Juste pour remercier JNP d'avoir passer ici pour honorer le dieu RegExp

(qui est mon dieu pour cette année 😉 )

PS
: JNP apparemment il n'est plus question de crochets dans le dernier exemple de Ang3l666
je n'ai donc pas poursuivi plus loin les tests
 
Dernière édition:
Re : Récupération de données entre crochets dans une tableau puis rangement

Bonsoir tout le monde, j'espère que vous avez passé un excellent week end?
Pour ma part trop chaud ! ;-)
Bon concernant excel, tout fonctionne parfaitement donc merci à tous pour votre participation !
Juste une dernière chose, peux-t-on rapidement m'expliquer comment fonctionne la formule de tibo dans la cellule C19 ? Juste pour information personnel et pour pouvoir l'adapté à d'autre configuration. (ex : tableau sur plusieurs tables)
Merci!
 
Re : Récupération de données entre crochets dans une tableau puis rangement

re,

Bon, pas facile à expliquer, car ça repose pour une bonne part sur de l'intuitif.

Le principe consiste à trouver les valeurs du 1er tableau qui ne sont pas présentes dans l'autre, puis ensuite l'inverse.

Je l'ai testée sur la base de ton fichier et semble donner le résultat attendu.

Pour pouvoir la tester davantage, il faudrait que tu nous fournisses deux ou trois autres exemples.

@+
 
Re : Récupération de données entre crochets dans une tableau puis rangement

Bonjour,

Oui oui la formule est bonne et correspond tout à fait à ce que je souhaitais !
Je demandais l'explication afin de pouvoir l'adapté à ce cas : c'est à dire que chaques tableaux de valeurs est sur une table différente. Et malheureusement je n'y arrive pas tout seul 😡...
Donc re-voici le fichier avec les valeurs sur plusieurs tables sachant qu'on recherche exactement le même résultat.
 

Pièces jointes

Re : Récupération de données entre crochets dans une tableau puis rangement

Merci beaucoup et dsl du retard (les vacances!) ça fonctionne parfaitement.
Mais est ce qu'il serait possible de voir ce que ça donne en VBA? Si quelqu'un est motivé? Car ce fichier va être lié à une page html. (si j'y arrive 🙂)
Merci pour votre aide!
 
- 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
1
Affichages
304
Retour