Option Explicit 'Le format dans le quel sera afficher tes date heures au bout du compte Private Const CoSt_FormatDateAttendu = "YYYY-MM-DD HH:mm:SS" 'Extrais la date de tes lignes (si le format est exactement celui que tu à posté) Private Function ExtraiDate(ByVal Texte As String) As Date On Error GoTo ErreurExtraiDate ExtraiDate = Split(Texte, ",")(1) Exit Function ErreurExtraiDate: ExtraiDate = 0 End Function 'Idem pour l'IP Private Function ExtraiIP(ByVal Texte As String) As String On Error GoTo ErreurExtraiIP ExtraiIP = Mid(Texte, InStrRev(Texte, ",", InStrRev(Texte, ",") - 1) + 1, Len(Texte) - InStrRev(Texte, ",") + 1) Exit Function ErreurExtraiIP: ExtraiIP = vbNullString End Function 'Ajoute a une collection les info envoyé Private Sub AjouteCollection(ByRef MaCollection As Collection, Valeur As String, Clef As String) On Error GoTo ItemExiste MaCollection.Add Clef & "|" & Valeur, Clef Exit Sub ItemExiste: Dim NouvelleValeur As String NouvelleValeur = MaCollection.Item(Clef) & "|" & Valeur MaCollection.Remove Clef MaCollection.Add NouvelleValeur, Clef End Sub Public Sub Traitement() Dim CompteurLigne As Long Dim DateLigne As Date Dim IPLigne As String Dim MaCollection As New Collection Dim TableauTexte() As String Dim CompteurTableau As Long '"With ActiveSheet" veux dire que tu vas travailé sur la feuille active With ActiveSheet 'Une ligne de titre est présente si non met 1 (pour 1ere ligne ^^) CompteurLigne = 2 Do While .Cells(CompteurLigne, 1).Text <> "" 'Extraction la date DateLigne = ExtraiDate(.Cells(CompteurLigne, 1).Text) 'Extraction de l'IP IPLigne = ExtraiIP(.Cells(CompteurLigne, 1).Text) 'Si pas d'erreur durant l'extraction If DateLigne <> 0 And IPLigne <> vbNullString Then AjouteCollection MaCollection, Format(DateLigne, CoSt_FormatDateAttendu), IPLigne Else 'Ici ajoute le code a exécuter si une de tes extraction ne c'est pas fait correctement End If CompteurLigne = CompteurLigne + 1 Loop End With 'Arriver ici ta collection est remplie avec toutes tes informations Do While MaCollection.Count > 0 'Chargement et découpage des données de ta collection TableauTexte = Split(MaCollection.Item(1), "|") 'Suppression des données de ta collection MaCollection.Remove 1 'Affiche les données dans la fenêtre de débug Debug.Print "Voila l'IP : " & TableauTexte(0) Debug.Print "Voila toutes les date heures de cette IP : " For CompteurTableau = 1 To UBound(TableauTexte) Debug.Print TableauTexte(CompteurTableau) Next Loop End Sub
Private Sub AjouteCollection(ByRef MaCollection As Collection, DateHeure As String, IP As String) On Error GoTo ItemExiste MaCollection.Add DateHeure, IP Exit Sub ItemExiste: MaCollection.Item(IP) = MaCollection.Item(IP) & "|" & DateHeure End Sub