Bonjour à tous.

J'ai réalisé une macro qui à partir d'un fichier d'environ 4000 lignes, récupère en colonne A les X ( X = nbtests) plus "grandes" dates (fonction Large), grâce à une boucle for.

Dès lors, je récupère cette date, ainsi que le numéro de la ligne correspondante:
Ceci est stocké dans un tableau à 2 dimensions.

La première contient des dates, dates qui sont récupérées grâce à la fonction Large.

La deuxième contient le numéro de la ligne correspondant à cette date.

La macro tourne bien lorsque toutes les dates récupérées sont différentes, cependant si deux dates récupérées sont égales (ligne 32 et ligne 524 par exemple) et bien le numéro de ligne correspondant sera 2 fois 32.
Alors que je devrais récupérer 32 et 524.

J'exporte ensuite les lignes correspondantes, et ce dans un fichier texte.

Je n'arrive pas à modifier la macro, et je me tourne donc vers vous afin de m'aider.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub Ma macro()
    Dim nbtests As Integer
    Dim tab_dates_compta_max()
    Dim I As Integer
    Dim fichiercible As Variant
 
    nbtests = Range("A1").End(xlDown).Row * (0.1 / 100)
 
    ReDim tab_dates_compta_max(nbtests, 1 To 2)
 
    Set Plage1 = Range([A1], [A65536].End(xlUp))
 
    For I = 1 To nbtests
 
      tab_dates_compta_max(I, 1) = CDate(Application.WorksheetFunction.Large(Plage1, I))
      tab_dates_compta_max(I, 2) = Plage1.Find(tab_dates_compta_max(I, 1), , xlValues, xlWhole).Row
 
    Next i
 
 
fichiercible = Application.GetSaveAsFilename("Sortie de ma macro", "Fichier texte (*.txt), (*.txt)")
 
    If fichiercible = False Then Exit Sub
 
        Open fichiercible For Output As #1
 
        If fichiercible <> False Then
 
    Print #1, "Contrôle N°1"
    Print #1,
    Print #1, "Test sur les dates comptabilité max"
            For I = 1 To nbtests
 
                    Print #1, Left(Range("A" & tab_dates_compta_max(I, 2)).Text, 10) & Space(10 - Len(Left(Range("A" & tab_dates_compta_max(I, 2)).Text, 10))) 
' je vous épargne les 27 autres lignes =)
next i
Close #1
    End If
End Sub

Merci pour votre aide !

Julien