XL 2010 Explication code

dev_co

XLDnaute Occasionnel
Bonjour
Pourrait on me détailler le rôle de chaque instruction ?
Le nom "SCAN" est défini pour H4
je ne connais pas cette structure [ ]
merci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [scan].Address Then
        Set C = Columns(2).Find(Target.Value, , xlValues, xlWhole)
        Application.EnableEvents = False
        If Not C Is Nothing Then
       '     c.Interior.ColorIndex = 35
            [J4].Offset(, 1) = Target.Value
            [J5].Offset(, 1).Offset(1) = C.Offset(, 1).Value
            C.Offset(, 3) = "OK"
        Else
            [J4:J5] = ""
        End If
        Application.EnableEvents = True
        
    End If
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dev_Co,
Quelques explications mais sans comprendre la finalité :
VB:
If Target.Address = [Scan].Address Then                         ' Si la valeur modifiée est Scan
    Dim C
        Set C = Columns(2).Find(Target.Value, , xlValues, xlWhole) ' Rechercher cette valeur dans la colonne 2 (Col B)
        Application.EnableEvents = False                        ' Figer écran
        If Not C Is Nothing Then                                ' Si la valeur a été trouvée
       '     c.Interior.ColorIndex = 35
            [J4].Offset(, 1) = Target.Value                     ' Ecrire cette valeur en K4, J4 décalé de 1 colonne
            [J5].Offset(, 1).Offset(1) = C.Offset(, 1).Value    ' Mettre en K7 la valeur trouvée en Col, C même ligne
            C.Offset(, 3) = "OK"                                ' Mettre OK en colonne E même ligne
        Else
            [J4:J5] = ""                                        ' Sinon effacer J4:J5
        End If
        Application.EnableEvents = True                         ' Rétablir l'affichage
    End If
End Sub
Pourquoi [J4].Offset(, 1) = Target.Value qui est déterministe, pourquoi pas directement K4
Idem pour [J5].Offset(, 1).Offset(1) pourquoi pas directement K6 ?
 

dev_co

XLDnaute Occasionnel
C'est une reprise de fichier pour une amie d'une asso qui ne connait pas le Vba et m'a demandé de l'améliorer
Peut être que si l'on change "Scan" et garder le décalage cela évite de tout rechanger ?
Sinon donc [ ] permet de ne pas écrire Range ou cell ?
merci bien
 

Discussions similaires

Réponses
1
Affichages
234
  • Résolu(e)
XL 2021 macro
Réponses
9
Affichages
448

Statistiques des forums

Discussions
312 108
Messages
2 085 366
Membres
102 874
dernier inscrit
Petro2611