Démonstration à copier dans le module de la feuille :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Sub Demo()
LR& = [A3].End(xlDown).Row: Application.ScreenUpdating = False
With CreateObject("Scripting.Dictionary")
For R& = 4 To LR
If Cells(R, 3).Value > "" Then _
If Not .Exists(Cells(R, 1).Value) Then .Add Cells(R, 1).Value, R
Next
For R& = 4 To LR
If Cells(R, 3).Value = "" Then If .Exists(Cells(R, 1).Value) Then _
Cells(.Item(Cells(R, 1).Value), 3).Resize(, 2).Copy Cells(R, 3)
Next
.RemoveAll
End With
End
End Sub |
Pour toute information, ne pas hésiter à consulter l'aide VBA intégrée, même pour l'objet
Dictionary …
Pour de nombreuses lignes à traiter, combiner avec une
variable tableau est bien plus rapide,
encore faut-il que le format des cellules soit cohérent avec les données, ce qui n'est pas le cas du classeur joint !
Enfin :
(ne pas voter est s'exposer à ne pas avoir de réponse lors de la prochaine discussion …)
__________________________________________________________________________________________
Merci de cliquer sur

pour chaque message ayant aidé puis sur

pour clore cette discussion …
__________________________________________________________________________________________
Définition coiffeur : seul endroit où les Bleus peuvent espérer une coupe !
Partager