Bonjour à tous,

Je viens vers vous afin que vos lumières m'éclaire:


J'aimerai manipuler des chaines de caractère. Le soucis est que comme je connais aps bcp de fonction sur la manipulation, j'ai un peu du mal surtout que la chaine n'est pas très fixe:

j'ai des chaine de ce format:

n° souche/milieu/atmosphère(si applicable)/température/cupule(si applicable) nom de la souche - temps d'incubation
ex:
(1) ATCC 23246/PVX/CO²/33-37/c37 Moraxella catarrhalis - 24h
(2) ATCC 2091/GTS/33-37 Candida albicans - 24h
(3) NBRC 15911/GTS/28-32/c12 Méthylobactérium extorquens - 48h


j'aimerai avoir une facon de retirer chaque donénes à part et les stocker dans une variable:


j'ai testé ceci:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub extractionMots()
Dim Tableau() As String
Dim i As Integer
Dim CHAINE As String
Dim NUM_SOUCHE As String '
Dim MILIEU As String '
Dim TEMPS As String '
Dim TEMPERATURE As String
Dim NOM_SOUCHE As String '
Dim CUPULE As String
Dim ATMOS as String
CHAINE = ThisWorkbook.Worksheets("Test").Range("A2").Text
    Tableau = Split(CHAINE, "/")
    NUM_SOUCHE = Tableau(0)
    MILIEU = Tableau(1)
    Tableau = Split(CHAINE, " ")
    NOM_SOUCHE = Tableau(2) & " " & Tableau(3)
    TEMPS = Right(CHAINE, 3)
End Sub
Le problème c'est comment extraire la cupule dachant qu'il n'y a pas forcément d'atmosphère et dans ce cas passer par ma méthode n'est pas bonne car il manquera un "/" et donc par exemple Tableau(1) ne sera plus milieu mais atmosphère. En fait avec ma méthode je peux extraire que le début et la toute fin mais le fait qu'il y ai des données (si applicable) dans l'exemple perturbe ma chaine et donc mon code ne tiendra pas longtemps...
Je ne sais pas si j'ai été clair
N'hésitez pas si jamais

en gros je veux que mes varaibles prenennt ces valeurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
'avec le format: n° souche/milieu/atmosphère(si applicable)/température/cupule(si applicable) nom de la souche - temps d'incubation
Dim CHAINE As String 'la chaine: n° souche/milieu/atmosphère(si applicable)/température/cupule(si applicable) nom de la souche - temps d'incubation
Dim NUM_SOUCHE As String 'n° souche
Dim MILIEU As String 'milieu
Dim TEMPS As String 'temps
Dim TEMPERATURE As String ' température  
Dim NOM_SOUCHE As String 'nom de la souche
Dim CUPULE As String ' cupule(si applicable)
Dim ATMOS as String ' atmosphère(si applicable)
 
'le plus dur est donc ATMOS, TEMPERATURE, CUPULE et NOM SOUCHE pour trouver avec ma méthode
Merci d'avance de votre aide
Bonne journée