La syntaxe est-elle correcte ?

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
 

Hervé

XLDnaute Barbatruc
Supporter XLD
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