Bonjour a tous,
Tout d'abord, je souhaite préciser que j'ai débuté le VBA il y a une semaine donc je ne connais pas (encore) très bien les différentes possibilités de ce magnifique outil
Mon tableau excel : une liste de noms de fichiers qui se trouvent sur mon ordinateur dans des dossiers et sous-dossiers. La première ligne de la liste est la ligne 10
Ce que je souhaite : afficher les lignes avec les fichiers dont le nom est le même et cacher les autres.
Ce que j'ai deja : une fonction qui les trouve (que j'ai trouvé sur internet)
Mon problème : je souhaite modifier la macro pour afficher uniquement les lignes avec les noms différents. Et je n'arrive pas a comprendre l'algorithme utilisé. Je n'arrive a afficher qu'une des deux lignes et j'ai besoin des deux lignes (voir plus) car j'ai l'adresse des dossiers ou sont les fichiers dans une autre colonne.
Voici un extrait de mon code :
Je suis sur que la réponse va être assez simple, mais je n'arrive pas a avancer avec ce problème.
Merci d'avance pour votre aide.
Thomas
Tout d'abord, je souhaite préciser que j'ai débuté le VBA il y a une semaine donc je ne connais pas (encore) très bien les différentes possibilités de ce magnifique outil
Mon tableau excel : une liste de noms de fichiers qui se trouvent sur mon ordinateur dans des dossiers et sous-dossiers. La première ligne de la liste est la ligne 10
Ce que je souhaite : afficher les lignes avec les fichiers dont le nom est le même et cacher les autres.
Ce que j'ai deja : une fonction qui les trouve (que j'ai trouvé sur internet)
Mon problème : je souhaite modifier la macro pour afficher uniquement les lignes avec les noms différents. Et je n'arrive pas a comprendre l'algorithme utilisé. Je n'arrive a afficher qu'une des deux lignes et j'ai besoin des deux lignes (voir plus) car j'ai l'adresse des dossiers ou sont les fichiers dans une autre colonne.
Voici un extrait de mon code :
Code:
Set Un = New Collection
Set Plage = Range("B10:B" & Range("B65536").End(xlUp).Row)
Table = Plage.Value
On Error Resume Next
For i = 1 To Plage.Count
ReDim Preserve Result(2, m + 1)
Un.Add Table(i, 1), CStr(Table(i, 1))
If Err <> 0 Then
For j = 1 To m + 1
If Result(1, j) = Table(i, 1) Then
Result(2, j) = Result(2, j) + 1
Err.Clear
Exit For
End If
Next j
If Err <> 0 Then
Result(1, m + 1) = Table(i, 1)
Result(2, m + 1) = 1
Range("A" & (i + 9)).EntireRow.Hidden = True
m = m + 1
Err.Clear
End If
End If
Next i
For j = 1 To m
Doublons = Doublons & Result(1, j) & " --> " & _
Result(2, j) & vbCrLf
Next j
For j = 1 To Plage.Count
If Range("B" & j + 9) = "No Number" Then
Rows(j + 9).Hidden = False
End If
If Rows(j + 9).Hidden = True Then
Rows(j + 9).Hidden = False
Else
Rows(j + 9).Hidden = True
End If
Next j
Range("I1") = Doublons
Set Un = Nothing
Je suis sur que la réponse va être assez simple, mais je n'arrive pas a avancer avec ce problème.
Merci d'avance pour votre aide.
Thomas