Bonjour Cwaller, bonjour le forum,
Par formule je ne sais pas faire mais voici un petit bout de code commenté qui fait cela :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim T As String 'déclare la variable T (Texte)
Set O = Worksheets("Feuil1") 'définit l'onglet O
T = O.Range("B2").Value 'définit le texte T
O.Range("C2").Value = Split(Split(T, "*")(0), ".")(1) 'renvoie en C2 le premier numéro avant le caractère "*"
O.Range("D2").Value = Split(Split(T, "*")(1), ".")(0) 'renvoie en D2 le premier numéro après le caractère "*"
O.Range("E2").Value = Split(Split(T, "*")(1), ".")(1) 'renvoie en E2 le second numéro après le caractère "*"
End Sub
Comment fonctionne Split(Texte,délimiteur)(index) ? cette fonction va séparer dans, un tableau indexé, un texte par rapport à un délimiteur.
Par exemple Split(Bonjour Monsieur Dupont," ") va créer un tableau de trois éléments, séparés par le délimiteur, ici [espace],
Split(Bonjour Monsieur Dupont," ")(0) = Bonjour
Split(Bonjour Monsieur Dupont," ")(1) = Monsieur
Split(Bonjour Monsieur Dupont," ")(2) = Dupont
Dans ton cas, le premier Split (à l'intérieur du second) renvoie, à partir du du texte T, avec "*" comme délimiteur et l'index 0 : Split(T, "*")(0) = PLAST.610
Pour obtenir la partie après le point il faut à nouveau spliter cette partie et renvoyer l'index 1 avec, cette fois le point "." comme délimiteur : Split("PLAT.610", ".")(1) = 610
En combinant dans une seule ligne ça donne le double Split : Split(Split(T, "*")(0), ".")(1) pour C2
Le principe est identique pour les autres valeur, il a juste fallu changé les index...