Hi All,
j ai des cellules qui contiennent ce type d import externe :
[5/56] ou [15/42] je vous mets ces deux exemples car le soucis vient de la je ne choisi pas si dans ces differents cellules il y aura le premier type ou le second type d'import et je veux donc extraire ce qui est compris entre [ et /
dans mes deux exemples cela sera 5 et 15.
Je sais qui il y a une fonction VBA qui permet d extraire un fraction de chaine de character en fonction de la position mais la la position de debut reste la meme (position 2) mais la position de fin change : ou position 2 ou position 3 !!! il faudrait indiquer : extraire les charactere entre [ et / .... je l ai fait avec une macro utilisant du les fonction text to column !!! mais c est un peu lourd :
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 09/08/2006 by YLC
'
' Keyboard Shortcut: Ctrl+a
'
Sheets("Output MTS").Select
Columns("E:E").Select
Selection.Copy
Columns("I:I").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("I1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="[", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Selection.Copy
Range("J3:J35").Select
Application.CutCopyMode = False
Selection.Copy
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
le probleme est que lorsque je relance cela me demande si je veux remplacer les valeurs que j ai traité juste avant !!! ( un petit supress de la zone traité doit etre la solution je vais rajouter ca !!!
Mais est ce que l on peut optimiser ce code ?
voir fichier :
A Plus
j ai des cellules qui contiennent ce type d import externe :
[5/56] ou [15/42] je vous mets ces deux exemples car le soucis vient de la je ne choisi pas si dans ces differents cellules il y aura le premier type ou le second type d'import et je veux donc extraire ce qui est compris entre [ et /
dans mes deux exemples cela sera 5 et 15.
Je sais qui il y a une fonction VBA qui permet d extraire un fraction de chaine de character en fonction de la position mais la la position de debut reste la meme (position 2) mais la position de fin change : ou position 2 ou position 3 !!! il faudrait indiquer : extraire les charactere entre [ et / .... je l ai fait avec une macro utilisant du les fonction text to column !!! mais c est un peu lourd :
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 09/08/2006 by YLC
'
' Keyboard Shortcut: Ctrl+a
'
Sheets("Output MTS").Select
Columns("E:E").Select
Selection.Copy
Columns("I:I").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("I1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="[", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Selection.Copy
Range("J3:J35").Select
Application.CutCopyMode = False
Selection.Copy
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
le probleme est que lorsque je relance cela me demande si je veux remplacer les valeurs que j ai traité juste avant !!! ( un petit supress de la zone traité doit etre la solution je vais rajouter ca !!!
Mais est ce que l on peut optimiser ce code ?
voir fichier :
A Plus