=STXT(C6;13;6)
=STXT(C3;14;6)
=STXT(C8;12;6)
=STXT(SUBSTITUE(A1;"-";"";1);CHERCHE("-??????-";SUBSTITUE(A1;"-";"";1))+1;6)
Function EXTRACTENTRE(txt As String, s As String, rg As Integer)
Dim ttx
Application.Volatile
ttx = Split(txt, s)
EXTRACTENTRE = Trim(ttx(rg - 1))
End Function
Option Explicit
Sub Convertir()
Columns(1).TextToColumns Destination:=Range("d1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="-", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1), Array(6, 1)), TrailingMinusNumbers:=True
Columns("c:f").Delete Shift:=xlToLeft: Columns("d:aa").Delete Shift:=xlToLeft
End Sub
=STXT("-" & $A2 & "-";PETITE.VALEUR(SI(STXT("-" & $A2 & "-";LIGNE(INDIRECT("$1:" & NBCAR("-" & $A2 & "-")));1)="-";LIGNE(INDIRECT("$1:" & NBCAR("-" & $A2 & "-"))));B$1)+1;PETITE.VALEUR(SI(STXT("-" & $A2 & "-";LIGNE(INDIRECT("$1:" & NBCAR("-" & $A2 & "-")));1)="-";LIGNE(INDIRECT("$1:" & NBCAR("-" & $A2 & "-"))));B$1+1)-PETITE.VALEUR(SI(STXT("-" & $A2 & "-";LIGNE(INDIRECT("$1:" & NBCAR("-" & $A2 & "-")));1)="-";LIGNE(INDIRECT("$1:" & NBCAR("-" & $A2 & "-"))));B$1)-1)
Bonjour Staple1600Bonsoir joss56
Mes remarques s'adressaient à subirubi
Je trouve normal de citer un fil quand on ouvre un second fil pour une même question.
Mais depuis un temps, la courtoisie et les nouveaux membres c'est plus ce que c'était...
subirubi
Pourquoi donc n'as-tu pas persévéré avec la formule que je t'ai proposé dans ton premier fil
je n'ai pas trop envie de pousser plus loin les tests mais ...
Regarde la pièce jointe 970518
Allô 00,Bonjour, le Fil, le Forum,
Avec la même idée que joss56 et Staple1600 :
VB:Option Explicit Sub Convertir() Columns(1).TextToColumns Destination:=Range("d1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ :="-", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _ 1), Array(6, 1)), TrailingMinusNumbers:=True Columns("c:f").Delete Shift:=xlToLeft: Columns("d:aa").Delete Shift:=xlToLeft End Sub
A bientôt
La solution serait de prendre le "-" comme point de repère, de compter 3 tirets et prendre le code à 6 chiffres juste après,