Code qui saute une ligne sans le vouloir
Bonjour à tous,
La semaine passée, j'avais demandé sur ce forum si quelqu'un pouvait m'aider à créer un programme qui listerait les clients de mon excel sans les répéter 2 fois.
Un super programme m'avait été donné et celui-ci fonctionnait très bien.
Cependant, aujourd’hui, il ne fonctionne plus.
Il saute une ligne automatiquement et je ne sais pas pourquoi. Cela fausse la suite de mon programme...
Voici le bout de code qui fait cela :
Sub clients()
'Affichage des clients
Dim rng As Range, Dict As Object, Cell As Range
'Initialisation des variables
Set rng = ActiveSheet.Cells(60, 3).CurrentRegion
Set Dict = CreateObject("Scripting.Dictionary")
'Création liste unique des client
For Each Cell In rng.Columns(8).Cells.Offset(1).Resize(rng.Rows.Count - 1)
Dict(Cell.Value) = ""
Next Cell
'Restitution des données
With Worksheets("Feuil1")
.Cells(1).CurrentRegion.Offset(1).ClearContents
.Cells(6, 3).Cells(1).Resize(Dict.Count, 1).Value = Application.Transpose(Dict.keys)
.Activate
End With
End Sub
Je vous joins un fichier exemple. Comme vous pouvez le voir, le client 14 est en dessous et a sauté une ligne.
Sur d'autres fichiers où j'utilise cette macro, parfois 2 lignes sont sautées, parfois 3, c'est aléatoire.
Merci d'avance pour votre précieuse aide,
Simon
Bonjour Simon_Lbb,
Essaye comme ceci:
Sub clients()
'Affichage des clients
Dim rng As Range, Dict As Object, Cell As Range
'Initialisation des variables
Set rng = ActiveSheet.Cells(60, 3).CurrentRegion
Set Dict = CreateObject("Scripting.Dictionary")
'Création liste unique des client
For Each Cell In rng.Columns(8).Cells.Offset(1).Resize(rng.Rows.Count - 1)
If Cell <> "" Then Dict(Cell.Value) = ""
Next Cell
'Restitution des données
With Worksheets("Feuil1")
.Cells(1).CurrentRegion.Offset(1).ClearContents
.Cells(6, 3).Cells(1).Resize(Dict.Count, 1).Value = Application.Transpose(Dict.keys)
.Activate
End With
End Sub
Bonjour Florian53,
C'est parfait merci beaucoup.
Simon