End IF sans bloc IF

Hello, j'ai un soucis sur ce code :

J'aimerais que quand la case h4 est vide, il m'ouvre la msg box avec le message puis arrête la macro.

Si c'est pas el cas, que la macro continue...

Et je recois l'erreur "end if sans bloc if"...

J'arrive pas à trouver où ca coince... Je vous met le bout de code concernée et le code complet dessous.

Merci d'avance les experts !

If Range("h4") = 0 Then MsgBox " Veuillez indiquer un rôle !", vbCritical
 Exit Sub
End If
Sub creationfeuillerecolte1()
Dim NomFeuil As String, NexistePas As Boolean, Caractere As String

If Range("h4") = 0 Then MsgBox " Veuillez indiquer un rôle !", vbCritical
 Exit Sub
End If

'Le nom de ta future feuille est en Feuil1!B4
NomFeuil = Sheets("parametres").Range("H4")
'test les caractères spéciaux à éviter :
If Test_Nom_Feuille(NomFeuil, Caractere) = False Then GoTo Faute
'test si la feuille n'existe pas déjà :
On Error Resume Next
NexistePas = Sheets(NomFeuil).Name <> ""
On Error GoTo 0
If NexistePas = False Then
    'si tout ok : on copie
    Sheets("recolte").Copy Before:=Sheets(2)
    'on renomme
    ActiveSheet.Name = NomFeuil
    'retour parametres
    Sheets("parametres").Select

Else
    'si pas ok
    MsgBox " La feuille n'est pas valide : Feuille déjà existante", vbCritical
End If
Exit Sub
'traitement d'erreur caractère spécial :
Faute:
MsgBox " La feuille n'est pas valide." & vbCrLf & "Le caractère : " & Caractere & " est interdit.", vbCritical

End Sub

Bonjour,

On ne met End if que dans les expression du type :

If Range("h4") = 0 Then 
MsgBox "blabla"
End If

Dans cet autre cas

If Range("h4") = 0 Then MsgBox " Veuillez indiquer un rôle !" 'Pas de End if

A+

Okay super merci ! Une info que je n'avais pas. Merci

Du coup comment on arrête la macro dans ce cas là, et la continuer si Range("h4") n'est pas vide ?

Ah j'ai trouvé du coup avec : exit sub

Merci !

Rechercher des sujets similaires à "end bloc"