Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Explication code

  • Initiateur de la discussion Initiateur de la discussion dev_co
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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 ?
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
439
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
5
Affichages
705
Réponses
1
Affichages
413
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…