Segmenter une variable string
Résolu
RC
-
RC -
RC -
Bonjour,
Je travaille en vba pour Excel. Dans un tableau Tabl(i), j'ai une variable string (i) de plus de 1000 caractères. Je désire prendre cette variable en tranches de 250 caractères, chaque tranche étant insérée dans une nouvelle variable string. Je cherche une formule élégante et simple.
Merci
RC
Je travaille en vba pour Excel. Dans un tableau Tabl(i), j'ai une variable string (i) de plus de 1000 caractères. Je désire prendre cette variable en tranches de 250 caractères, chaque tranche étant insérée dans une nouvelle variable string. Je cherche une formule élégante et simple.
Merci
RC
3 réponses
Bonjour,
Principe
Bonne suite
Principe
Sub test() Dim var1000 As String Dim var1_250, var251_500, var501_750, var751_1000 var1000 = String(250, "A") + String(250, "B") + String(250, "C") + String(250, "D") var1_250 = Left(var1000, 250) var251_500 = Mid(var1000, 251, 250) var501_750 = Mid(var1000, 501, 250) var751_1000 = Mid(var1000, 751, 250) Debug.Print var1000 Debug.Print var1_250 Debug.Print var251_500 Debug.Print var501_750 Debug.Print var751_1000 End Sub
Bonne suite
Bonjour,
Une variante à la proposition de f894009 (salut au passage), avec une variable tableau qui réceptionne les résultats.
Une variante à la proposition de f894009 (salut au passage), avec une variable tableau qui réceptionne les résultats.
Dim str1000 As String, str250(3) As String, i As Byte
For i = 1 To 4
str250(i - 1) = Mid(str1000, (250 * i) - 249, 250)
Next i
For i = 0 To 3
Debug.Print str250(i)
Next i
bonjour,
une autre avec possibilité d'autres textes et d'autres paramétages
une autre avec possibilité d'autres textes et d'autres paramétages
Function scinder(origine As String, nbre_blocs As Byte)
Dim cptr As Byte, separe As Integer
On Error GoTo fin
separe = Len(origine) / nbre_blocs
ReDim tablo(nbre_blocs - 1)
For cptr = 0 To nbre_blocs - 1
tablo(cptr) = Mid(origine, cptr * separe + 1, separe)
Next
scinder = tablo
Exit Function
fin:
MsgBox "parametrage incorrect", vbCritical
End Function
'------------------------------------
Sub test()
Dim reponse()
reponse = scinder(Range("A1").Value, 4)