La syntaxe est-elle correcte ?

  • Initiateur de la discussion Initiateur de la discussion Domi
  • 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 !

D

Domi

Guest
Bonjour,
Ce code fonctionne sans problème, cependant, je me demande si la syntaxe est optimale :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range('C2')) Is Nothing Then
Range('C2') = 3
Range('C3') = Empty
Range('F3') = Range('B2')
ElseIf Not Intersect(Target, Range('C3')) Is Nothing Then
Range('C3') = 3
Range('C2') = Empty
Range('F3') = Range('B3')
End If
If Not Intersect(Target, Range('C4')) Is Nothing Then
Range('C4') = 3
Range('C5') = Empty
Range('F4') = Range('B4')
ElseIf Not Intersect(Target, Range('C5')) Is Nothing Then
Range('C5') = 3
Range('C4') = Empty
Range('F4') = Range('B5')
End If
If Not Intersect(Target, Range('C6')) Is Nothing Then
Range('C6') = 3
Range('C7') = Empty
Range('F7') = Range('B6')
ElseIf Not Intersect(Target, Range('C7')) Is Nothing Then
Range('C7') = 3
Range('C6') = Empty
Range('F7') = Range('B7')
End If
If Not Intersect(Target, Range('C8')) Is Nothing Then
Range('C8') = 3
Range('C9') = Empty
Range('F8') = Range('B8')
ElseIf Not Intersect(Target, Range('C9')) Is Nothing Then
Range('C9') = 3
Range('C8') = Empty
Range('F8') = Range('B9')
End If

End Sub

Que changeriez-vous ?

------------------
Merci d'avance
 
Bonjour domi

pas sur d'avoir fait mieux que toi, mais bon j'essaye quand meme.

Voilà comment j'aurais fait :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range('C2:C9')) Is Nothing Then
        Target = 3

       
If Target.Row / 2 = Int(Target.Row / 2) Then
                Cells(Target.Row + 1, 6) = Target.Offset(0, -1)
                Target.Offset(1, 0) = Empty
       
Else
                Cells(Target.Row, 6) = Target.Offset(0, -1)
                Target.Offset(-1, 0) = Empty
       
End If
               
End If

End Sub


salut
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
507
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
587
Retour