Bonjour à tous,
Je me tourne vers vous car je n'arrive pas à solutionner un problème malgré de nombreuses recherches sur le forum.
J'ai réalisé une macro en VBA afin de vérifier si j'avais des doublons sur ma feuille.
Mes zones de recherche sont plusieurs petits tableaux sur la même feuille.
Je demande à ma macro de chercher la valeur "name" dans ma feuille et une fois celle ci trouver de chercher s'il y a des doublons dans le tableau.
Une fois la recherche terminée, je lui demande de passer avec la fonction findNext la prochaine cellule qui contient la valeur name.
Hors celle ci ne trouve pas d'autres cellules de ce type alors que la feuille en contient.
voilà le code que j'ai écrit
Je n'arrive pas a trouver mon erreur, pour le prochain C la valeur affichée est "Nothing" alors qu'il en existe encore.
Quelqu'un saurait-il d’où cela peut provenir ?
Je vous joint un fichier d'exemple.
Merci d'avance pour votre aide.
Je me tourne vers vous car je n'arrive pas à solutionner un problème malgré de nombreuses recherches sur le forum.
J'ai réalisé une macro en VBA afin de vérifier si j'avais des doublons sur ma feuille.
Mes zones de recherche sont plusieurs petits tableaux sur la même feuille.
Je demande à ma macro de chercher la valeur "name" dans ma feuille et une fois celle ci trouver de chercher s'il y a des doublons dans le tableau.
Une fois la recherche terminée, je lui demande de passer avec la fonction findNext la prochaine cellule qui contient la valeur name.
Hors celle ci ne trouve pas d'autres cellules de ce type alors que la feuille en contient.
voilà le code que j'ai écrit
Code:
Function ErreurDoublons()
ErreurDoublonsBDT = True
NomOnglet = "Feuil1"
Dim Collect As Collection
Set Collect = New Collection
Worksheets(NomOnglet).Activate
With Worksheets(NomOnglet).Range("B:B")
Set C = .Find("name", LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
If NomOnglet = "Feuil1" Then
Cellule("column name").Select
dernCol = Selection.End(xlToRight).Column
Col = Selection.Column + 1
LigneUnique = Cellule("is mandatory").Row
LigneDebut = Cellule("name").Offset(8, 1).Row
DernLigne = Cellule("Indexes").Row - 1
End If
On Error Resume Next
For RowCur = LigneDebut To DernLigne
If Cells(RowCur, Col).Value <> "" Then
For ColCur = Col To dernCol
If (Cells(LigneUnique, ColCur).Value = "yes") Then
ValLigne = ValLigne & Cells(RowCur, ColCur)
End If
Next ColCur
End If
If (Not IsEmpty(ValLigne)) Then
Collect.Add ValLigne, CStr(ValLigne)
Erreur = Err.Number
If Err <> 0 Then
'Cells(RowCur, Col).Interior.ColorIndex = 8
ErreurDoublons = False
Err.Clear
Exit For
End If
End If
Next RowCur
Set Collect = Nothing
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End With
End Function
Je n'arrive pas a trouver mon erreur, pour le prochain C la valeur affichée est "Nothing" alors qu'il en existe encore.
Quelqu'un saurait-il d’où cela peut provenir ?
Je vous joint un fichier d'exemple.
Merci d'avance pour votre aide.