Arrêter l'exécution d'une macro si un UserForm ne produit aucun effet

Bonjour à tous,

J'ai les extraits de code suivants:

Macro principale affectée à une forme:

Sub ValidateInput()

Dim varValue As Variant

varValue = Application.Evaluate("Duplicate")

If ActiveSheet.Range("DupCell").Value = varValue Then
MsgBox ("Check your duplicate projects")
Exit Sub
Else:
ActiveSheet.Unprotect
LockMonths2
LockProj
PasteValues
ActiveSheet.Protect
End If

End Sub

le code de LockMonths2 (dont j'ai bien conscience de pouvoir me passer...):

Sub LockMonths2()

MonthsList.Show

End Sub

et enfin le code du bouton Valider de mon UserForm MonthsList qui comprend 12 checkbox pour les mois de l'année:

Private Sub CommandButton_Valider_Click()
Dim i As Integer
Dim ws As Excel.Worksheet

Set ws = ActiveSheet

For i = 1 To 12
Application.ScreenUpdating = False
If Controls("CheckBox" & i) Then
ws.Range("VacPer" & i).Locked = True
ws.Range("ProPer" & i).Locked = True
End If
Next
Application.ScreenUpdating = True
Unload Me

End Sub

J'aimerais que si aucune CheckBox de MonthsList n'est sélectionnée lorsque l'utilisateur appuie sur Valider ou sur Fermer (la croix), les Subs LockProj et PasteValues ne soient pas appelées.

D'une certaine manière ce serait comme si la non sélection d'au moins une case à cocher générait une erreur, ce qui me permettrait d'ajouter un On Error GoTo ActiveSheet.Protect

Je ne sais pas comment remonter une information depuis une private sub vers la sub qui l'appelle.

Merci d'avance.

Bonsoir,

mettez vos appels Subs LockProj et PasteValues dans le code du USF dans le "If" de votre boucle de "i", comme cela si un "i" cliqué alors on lance les codes sinon il n'y a rien de fait...

@ bientôt

LouReeD

Bonjour,

Premièrement, navré pour le retard de ma réponse.

Ensuite, merci pour cette solution à laquelle je m'en veux de ne pas avoir pensé.

Bonsoir,

et oui souvent, "le nez dans le guidon" on ne voit pas ce qu'il y a de plus simple ! Il faut savoir se relever et analyser.

Merci pour votre retour et remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "arreter execution macro userform produit aucun effet"