Bonjour à tous,
J'ai commencé un nouveau projet qui consiste à manipuler un string qui est séparé par des ";" et des "|". Le but est de récupérer l'information du string et la placer dans un listbox. Évidemment je prévoit pouvoir ajouter de l'information à ce string et aussi en supprimer ou en modifier.
L'informations du string est divisé ainsi :
Heure1;Heure2;Code;Description|Heure1;Heure2;Code;Description|etc...|Détails
Chaque information séparée par un ";" sont inscrites dans une colonne différente et le "|" représente une nouvelle ligne que j'appelle communément un segment. Le «Détails» à la fin doit se retrouver dans un TB à part du tableau.
Alors voici la procédure que j'initialise au début de mon UserForm pour remplir ma listbox. Je me demandais s'il n'y avais pas une façon plus simple de faire cela. Si vous avez des suggestions ou des pistes d'amélioration, ce serait plus qu'apprécié!
p.s. Ma feuille se nomme F_Calendrier_Details, vous pouvez modifier cette partie du code si vous désirez le faire fonctionner.
LB = ListBox et TB = Textbox
Et voici un string exemple que vous pouvez utiliser. À mettre dans une cellule.
Merci à tous et surtout, bonne journée/soirée!
J'ai commencé un nouveau projet qui consiste à manipuler un string qui est séparé par des ";" et des "|". Le but est de récupérer l'information du string et la placer dans un listbox. Évidemment je prévoit pouvoir ajouter de l'information à ce string et aussi en supprimer ou en modifier.
L'informations du string est divisé ainsi :
Heure1;Heure2;Code;Description|Heure1;Heure2;Code;Description|etc...|Détails
Chaque information séparée par un ";" sont inscrites dans une colonne différente et le "|" représente une nouvelle ligne que j'appelle communément un segment. Le «Détails» à la fin doit se retrouver dans un TB à part du tableau.
Alors voici la procédure que j'initialise au début de mon UserForm pour remplir ma listbox. Je me demandais s'il n'y avais pas une façon plus simple de faire cela. Si vous avez des suggestions ou des pistes d'amélioration, ce serait plus qu'apprécié!
p.s. Ma feuille se nomme F_Calendrier_Details, vous pouvez modifier cette partie du code si vous désirez le faire fonctionner.
LB = ListBox et TB = Textbox
Code:
Private Sub RefreshSegment()
Dim StringOriginal As String
Dim StringRestant As String
Dim x As Integer
Dim y As Integer
Dim nSegment As Integer
StringOriginal = F_Calendrier_Details.Range(ActiveCell.Address)
nSegment = NbCharString(StringOriginal, "|")
StringRestant = StringOriginal
If nSegment = 0 Then GoTo SkipSegments
ReDim Segments(0 To nSegment - 1, 0 To 3)
For x = 0 To nSegment - 1
Segments(x, 0) = Format(Left(StringRestant, InStr(StringRestant, ";") - 1), "HH:MM:SS")
StringRestant = Mid(StringRestant, InStr(StringRestant, ";") + 1)
Segments(x, 1) = Format(Left(StringRestant, InStr(StringRestant, ";") - 1), "HH:MM:SS")
StringRestant = Mid(StringRestant, InStr(StringRestant, ";") + 1)
Segments(x, 2) = Format(Left(StringRestant, InStr(StringRestant, ";") - 1), "HH:MM:SS")
StringRestant = Mid(StringRestant, InStr(StringRestant, ";") + 1)
Segments(x, 3) = Format(Left(StringRestant, InStr(StringRestant, "|") - 1), "HH:MM:SS")
StringRestant = Mid(StringRestant, InStr(StringRestant, "|") + 1)
Next x
LBSegments.Clear
LBSegments.List = Segments
SkipSegments:
TBDetails = StringRestant
End Sub
Code:
Function NbCharString(MyString As String, MyChar As String, Optional RespectCase As Integer = 1) As Long
NbCharString = (Len(MyString) - Len(Replace(MyString, MyChar, "", , , RespectCase))) / Len(MyChar)
End Function
Et voici un string exemple que vous pouvez utiliser. À mettre dans une cellule.
HTML:
40179,3125;40179,3515162037;4VCM;TEL|40179,5457638889;40179,7459837963;PT;CHARGE|Bonjour!
Dernière édition: