Recherche d'occurence dans un champ texte

calouuuu

XLDnaute Nouveau
[Résolu] Recherche d'occurence dans un champ texte

Bonjour,

J'ai un petit soucis que j'aimerai vous soumettre. Pour faire court, un outil me permet de faire des extractions sous .CSV que je dois analyser mais une donnée me pose problème. Il s'agit d'un champ texte de longueur variable dans lequel peut se cacher des références que j'amerai trouver (voir fichier joint).

J'ai besoin :
1) de connaitre le nombre de référence dans le texte (4 maxi normalement)
2) d'extraire ces références

Nb: Petite info complémentaire et non moins importante, les références sont normées et débutent systématiquement par "[M"...

Merci à vous.
 

Pièces jointes

  • Classeur2.xlsx
    8.8 KB · Affichages: 80
  • Classeur2.xlsx
    8.8 KB · Affichages: 86
  • Classeur2.xlsx
    8.8 KB · Affichages: 80
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Recherche d'occurence dans un champ texte

[HS]
Un petit coucou à toi mon cher Hubert
J'ai l'impression que l'on ne te voit plus beaucoup :(

J'espère qu'il fait meilleurs par chez toi, qu'ici en France

Au plaisir
 

Cousinhub

XLDnaute Barbatruc
Re : Recherche d'occurence dans un champ texte

Re-,

Coucou Bruno...

Effectivement, plus trop présent, mais comme le séjour se termine, j'ai un peu plus de temps (comme on dit, "Voir mon remplaçant....."):D

Rentrée en Broxitanie le 16 Août....(déjà 2 ans sous le soleil....pfffffffffft)

Bonne soirée
 

job75

XLDnaute Barbatruc
Re : Recherche d'occurence dans un champ texte

Bonjour calouuuu, salut bh2, Bruno :)

Heureux moi aussi de te revoir Hubert.

Avec cette fonction macro dans un module :

Code:
Function REF$(t$, rang As Byte)
Dim s
s = Split(t, "[M")
On Error Resume Next
REF = "M" & Val(s(rang))
End Function
Puis cette formule en B2, à tirer à droite et vers le bas :

Code:
=REF($A2;COLONNES($B:B))
Fichier joint.

A+
 

Pièces jointes

  • Classeur2(1).xls
    33.5 KB · Affichages: 62
  • Classeur2(1).xls
    33.5 KB · Affichages: 66
  • Classeur2(1).xls
    33.5 KB · Affichages: 67

job75

XLDnaute Barbatruc
Re : Recherche d'occurence dans un champ texte

Re,

Juste en passant, si l'on veut récupérer tous les textes entre crochets :

Code:
Function REF$(t$, rang As Byte)
Dim s, n%
s = Split(t, "[")
On Error Resume Next
n = InStr(s(rang), "]") - 1
REF = Left(s(rang), n)
End Function
Fonctionne si tout crochet "ouvert" est "fermé" avant d'ouvrir le suivant.

A+
 

Pièces jointes

  • Classeur2(2).xls
    38.5 KB · Affichages: 65
  • Classeur2(2).xls
    38.5 KB · Affichages: 60
  • Classeur2(2).xls
    38.5 KB · Affichages: 53

job75

XLDnaute Barbatruc
Re : Recherche d'occurence dans un champ texte

Re,

Une solution par formule n'est pas trop compliquée dans le cas où l'on veut afficher tous les textes entre crochets.

En B2 :

Code:
=SI(SUBSTITUE($A2;"[";"µ";COLONNES($B:B))=$A2;"";STXT($A2;TROUVE("µ";SUBSTITUE($A2;"[";"µ";COLONNES($B:B)))+1;TROUVE("µ";SUBSTITUE($A2;"]";"µ";COLONNES($B:B)))-TROUVE("µ";SUBSTITUE($A2;"[";"µ";COLONNES($B:B)))-1))
Fichier (3).

A+
 

Pièces jointes

  • Classeur2(3).xls
    35.5 KB · Affichages: 71
  • Classeur2(3).xls
    35.5 KB · Affichages: 63
  • Classeur2(3).xls
    35.5 KB · Affichages: 70
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche d'occurence dans un champ texte

Bonjour calouuuu, le fil, le forum,

Finalement cette solution pour afficher uniquement les références commençant par [M :

Code:
=SI(SUBSTITUE($A2;"[M";"µ";COLONNES($B:B))=$A2;"";STXT($A2;TROUVE("µ";SUBSTITUE($A2;"[M";"µ";COLONNES($B:B)))+1;TROUVE("µ";SUBSTITUE($A2;"]";"µ");TROUVE("µ";SUBSTITUE($A2;"[M";"µ";COLONNES($B:B))))-TROUVE("µ";SUBSTITUE($A2;"[M";"µ";COLONNES($B:B)))-1))
Fichier (4).

A+
 

Pièces jointes

  • Classeur2(4).xls
    33 KB · Affichages: 68
  • Classeur2(4).xls
    33 KB · Affichages: 78
  • Classeur2(4).xls
    33 KB · Affichages: 77

Discussions similaires

Statistiques des forums

Discussions
311 727
Messages
2 081 962
Membres
101 852
dernier inscrit
dthi16088