Passage argument à une macro depuis une autre macro
Bonjour,
Je suis dans " Private Sub Worksheet_Change(ByVal Target As Range) et depuis cette macro je désirerais appeler une macro qui contrôlerai les données de cette ligne. Cette macro pourrait être appelée par différentes feuilles ayant la même structure. Cette macro appelle une autre macro (qui elle même contrôle et modifie des données de cette même ligne )
Appel de la Macro
Code
:Contrôle_ligne (Target) qui me donne comme message : Erreur d’exécution "424" Objet requis
Nom de la Macro :
Code:
Sub Controle_ligne(ByRef Target As Range)
If Cells(Target.Row, "A").Value = "" Then
MsgBox " Le nom est obligatoire ", vbCritical, "erreur"
Cells(Target.Row, "A").Select
Exit Sub
Else
If Cells(Target.Row, "L").Value <> "F" And Cells(Target.Row, "L").Value <> "M" And Cells(Target.Row, "L").Value <> "I" Then
MsgBox " Le sexe doit etre 'M' ou 'F' ou 'I' ", vbCritical, "erreur"
Cells(Target.Row, "L").Select
Exit Sub
Else
End If
End If
'
' Module Maj de date par modif de feuille
'
Maj_Date_2 (Target.Row)
'
End Sub
J'espére avoir été assez clair et notez que je suis un VBA iste tatonnant.
Merci pour votre réponse
Roro93
Bonour,
à tester,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Controle_ligne Target
End Sub
Sub Controle_ligne(Target)
If Cells(Target.Row, "A").Value = "" Then
MsgBox " Le nom est obligatoire ", vbCritical, "erreur"
Cells(Target.Row, "A").Select
Exit Sub
Else
If Cells(Target.Row, "L").Value <> "F" And Cells(Target.Row, "L").Value <> "M" And Cells(Target.Row, "L").Value <> "I" Then
MsgBox " Le sexe doit etre 'M' ou 'F' ou 'I' ", vbCritical, "erreur"
Cells(Target.Row, "L").Select
Exit Sub
End If
End If
End Sub
Bonour,
à tester,
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Controle_ligne Target End Sub Sub Controle_ligne(Target) If Cells(Target.Row, "A").Value = "" Then MsgBox " Le nom est obligatoire ", vbCritical, "erreur" Cells(Target.Row, "A").Select Exit Sub Else If Cells(Target.Row, "L").Value <> "F" And Cells(Target.Row, "L").Value <> "M" And Cells(Target.Row, "L").Value <> "I" Then MsgBox " Le sexe doit etre 'M' ou 'F' ou 'I' ", vbCritical, "erreur" Cells(Target.Row, "L").Select Exit Sub End If End If End Sub
Merci beaucoup pour la rapidité de la réponse dont le résultat est conforme à ce que je désirais faire . A moi maintenant de comprendre le mode de fonctionnement de passage des arguments. Merci beaucoup.
re,
merci pour ce retour,
le problème venait du nom
Contrôle_ligne <> Controle_ligne