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
 

Statistiques des forums

Discussions
300 988
Messages
1 989 091
Membres
210 367
dernier inscrit
miss.margotte61