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.