Faire appel à plusieurs : Worksheet_Change(ByVal Target As Range)

Bonjour,

Encore merci pour l'aide ce matin sur un autre sujet... mais j'aime la nouveauté.

Donc nouveau sujet !

j'ai ce code :

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$C$9" Then Exit Sub If Target = 0 Then MsgBox "indiquer le nombre de moteurs" Else Call mot_trommel End If End Sub

Il est écrit dans le code d'une feuille et me permet en fonction de la valeur de C9 de lancer une macro automatiquement (pas besoin de cliquer sur un bouton).

Cependant, sur cette même feuille, j'ai besoin de lancer une autre macro (van_trommel) en fonction de la cellule C12. Mais cet appel doit se faire après que l'opérateur ait rentré la valeur dans C9.

J'ai essayé plusieurs écriture mais rien ne fonctionne...

Pouvez-vous me l'écrire correctement afin que cela fonctionne ?

Merci !

Bonjour,

Un essai ...

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("C9, C12")) Is Nothing Then
        If Target = 0 And Target.Address <> "$C$12" Then MsgBox "indiquer le nombre de moteurs"
        If Target.Address = "$C$12" Then Call mot_trommel
    End If
End Sub

ric

Bonjour,

Un essai ...

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("C9, C12")) Is Nothing Then
        If Target = 0 And Target.Address <> "$C$12" Then MsgBox "indiquer le nombre de moteurs"
        If Target.Address = "$C$12" Then Call mot_trommel
    End If
End Sub

ric

alors...

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("C9, C12")) Is Nothing Then If Target = 0 And Target.Address <> "$C$12" Then MsgBox "indiquer le nombre de moteurs" Else Call mot_trommel End If 'If Target = 0 And Target.Address <> "$C$9" Then 'MsgBox "indiquer le nombre de vannes" 'Else 'Call van_trommel 'End If End If End Sub

bon déjà première question, comment fais tu pour copier coller du code proprement avec l'indentation ?

j'ai repris ton code, la partie qui n'est pas en commentaire fonctionne :

je met 0 dans C9 j'ai le message, si je met <>0 la macro est appelée.

par contre ça ne fonctionne pas pour C12, donc en commentaire j'ai mis ce que j'aimerai que le code fasse, et cette opération serait à faire après que la personne ait rentrée la valeur dans C9...

Je suis un novice en VBA et j'ai l'impression de devoir réaliser une usine à gaz...

Bonjour à tous,

Salut ric

Pas simple pour une première macro évènementielle ...

A tester

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C9, C12")) Is Nothing Then Exit Sub

    Select Case Target.Row

    Case 9
        If Target = 0 Then
           MsgBox "indiquer le nombre de vannes"
        Else
           Call van_trommel
        End If

    Case 12
        If Target = 0 Then
            MsgBox "indiquer le nombre de moteurs"
        Else
            Call mot_trommel
        End If

    End Select

End Sub

En espèrant que cela t'aide

Bonjour à tous,

... comment fais tu pour copier coller du code proprement avec l'indentation ? ...

En haut de ton champ d'édition, tu as </> dont l'infobulle est code :

pre___XLPSPXLP___000001

ric

Bonjour à tous,

Salut ric

Pas simple pour une première macro évènementielle ...

A tester

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C9, C12")) Is Nothing Then Exit Sub

    Select Case Target.Row

    Case 9
        If Target = 0 Then
           MsgBox "indiquer le nombre de vannes"
        Else
           Call van_trommel
        End If

    Case 12
        If Target = 0 Then
            MsgBox "indiquer le nombre de moteurs"
        Else
            Call mot_trommel
        End If

    End Select

End Sub

En espèrant que cela t'aide

Nickel ! je ne savais pas que l'on pouvait directement appeler les cellules avec "case" c'est parfait !

Merci !

Re,

Content que tout fonctionne ...

Merci pour tes remerciements

Rechercher des sujets similaires à "appel worksheet change byval target range"