Bonsoir le forum
J'ai tenté de m'intéresser à Private Sub Worksheet_SelectionChange, et si j'avais réussi, je n'aurais pas de questions à poser.
Dans un classeur, un utilisateur doit renseigner la colonne L de la feuille WsTop, et je voudrais que les renseignements donnés soient reportés dans la colonne J de la feuille WsBack. Le point commun entre les deux feuilles est un code article qui se trouve en colonne D pour WsTop et B pour WsBack.
J'ai donc bricolé ce bout de code:
J'ai identifié le problème. Target n'est pas le Range que je viens de modifier, mais le range sur lequel je me trouve (si j'ai bien compris). Tout cela fait que mes données ne se reportent pas sur la feuille WsBack. Chaque feuille comportant plusieurs milliers de lignes, j'aimerais éviter de passer par une RECHERCHEV classique...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim LigFin As Long, LigFin2 As Long Dim C As Range, i As Long Dim WsTop As Worksheet, WsBack As Worksheet Dim Plage3 As Range Set WsTop = Worksheets("Feuil1") Set WsBack = Worksheets("Feuil2") LigFin = WsBack.[B65536].End(xlUp).Row LigFin2 = WsTop.[D65536].End(xlUp).Row Set Plage3 = WsBack.Range("L3:L" & LigFin) If Intersect(Plage3, Target) Is Nothing Then Exit Sub With WsTop.Range("D3:D" & LigFin2) Set C = .Find(WsBack.Cells(Target.Row, 2)) If Not C Is Nothing Then If WsBack.Cells(Target.Row, 12) = "" Then WsTop.Cells(C.Row, 10) = "" Else WsTop.Cells(C.Row, 10) = WsBack.Cells(Target.Row, 12) End If End If End With End Sub
Pourriez-vous éclairer ma lanterne comme si souvent?
Partager