End If pouquoi

meldja

XLDnaute Impliqué
Bonjour,
Un généreux donnateur de savoir m'a donné, sur ce forum, une macro pour effacer le contenu d'une cellule en fonction du changement d'une autre cellule :
Private Sub Worksheet_Change (ByVal Target as Range)
If Taget.Address = "$A$1" Then
Range ("A2").ClearContents
End Sub

Jusqu'ici tout va bien, pas de problème.
Seulement j'ai voulu rajouter une deuxième cellule à effacer :
Private Sub Worksheet_Change (ByVal Target as Range)
If Taget.Address = "$A$1" Then
Range ("A2").ClearContents
Range ("A3").ClearContents
End Sub

Et lorsque j'ai compliler le projet : Erreur, il faut que je rajoute End If avant End Sub, comme ça :
Private Sub Worksheet_Change (ByVal Target as Range)
If Taget.Address = "$A$1" Then
Range ("A2").ClearContents
Range ("A3").ClearContents
End If
End Sub

Ma question est donc la suivante : pourquoi lorsqu'il n'y a qu'une cellule à effacer, on se passe de End If (si on le met, ça fait une erreur, j'ai essayé) et pourquoi quand il y a plus d'une cellule à effacer il faut absolument mettre End If ?

Merci de m'aider à comprendre, je ne vois vraiment pas la logique de tout ça (ou alors c'est purement syntaxique ?)
 

wilfried_42

XLDnaute Barbatruc
Re : End If pouquoi

Bonjour

Le probleme ne vient pas du nombre de cellules à effacer mais d'un bloc de programmation
Code:
If X=y Then
   .........
   .........
   .........
End If ' Ferme le Bloc de programmation
Tu peux aussi ecrire :
Code:
If Taget.Address = "$A$1" Then Range ("A2").ClearContents : Range ("A3").ClearContents
Sans mettre de End if, puisqu'une seule ligne est utilisée dans le If

Mais il est plus propre, quand on a plusieures lignes de faire
Code:
If x = y then
 ......
 ......
else
 ......
 ......
End IF
 

Statistiques des forums

Discussions
312 303
Messages
2 087 047
Membres
103 441
dernier inscrit
MarioC