Phileufeu@yahoo.fr
XLDnaute Nouveau
Bonjour à tous,
Je dispose d'un tableau excel avec des noms de joueurs en ligne (environ 19.000) et des infos sur ces joueurs en colonne (voir ex en pj).
J'ai une macro qui me permet une saisie automatique de toute la ligne lorsque je met dans la colonne A le nom d'un joueur qui est déjà présent dans la liste.
Voilà à quoi ça ressemble:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Column > 1 Then Exit Sub
With ActiveSheet.Range("A2:A" & Target.Offset(-1, 0).Row)
Set c = .Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Range(c.Offset(0, 1), c.Offset(0, 6)).Copy
Range(Target.Offset(0, 1), Target.Offset(0, 6)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Target.Offset(1, 0).Select
End If
End With
End Sub
Le problème est que la recherche est très longue. Comment améliorer la rapidité de traitement ? Peut-on apporter des modifs à la macro pour que ça aille plus vite ?
merci.
Philippe.
Je dispose d'un tableau excel avec des noms de joueurs en ligne (environ 19.000) et des infos sur ces joueurs en colonne (voir ex en pj).
J'ai une macro qui me permet une saisie automatique de toute la ligne lorsque je met dans la colonne A le nom d'un joueur qui est déjà présent dans la liste.
Voilà à quoi ça ressemble:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Column > 1 Then Exit Sub
With ActiveSheet.Range("A2:A" & Target.Offset(-1, 0).Row)
Set c = .Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Range(c.Offset(0, 1), c.Offset(0, 6)).Copy
Range(Target.Offset(0, 1), Target.Offset(0, 6)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Target.Offset(1, 0).Select
End If
End With
End Sub
Le problème est que la recherche est très longue. Comment améliorer la rapidité de traitement ? Peut-on apporter des modifs à la macro pour que ça aille plus vite ?
merci.
Philippe.