Code VBA - Exécution suite à un événement

Bonsoir,

Il faudrait qu'une formule s'inscrive dans une cellule quelconque lorsqu'un chiffre est saisi dans une autre cellule.

Je trouve tout plein de possibilité de créer de telles macros événementielles en passant par VBA Project / Micorsoft Excel Objects / Feuil1 puis en choisisant "Workbook", mais je ne trouve aucune possibilités qui corresponde à mon souhait.

Pourriez-vous m'indiquer ce que je fais de faux ?

Avec mes cordiales salutations.

Bonjour,

ta question est bien trop vague pour qu'on puisse te fournir une réponse adéquate :

Quelle formule?

quelle colonne?

Sinon, c'est dans l'évènement de feuille, regarde au niveau de :

Private Sub Worksheet_Change(ByVal Target As Range)

Bonsoir Felix, bonsoir le Forum,

J'ai bien essayé d'aller chercher du coté que tu indiques, mais je n'arrive pas à déterminer à quelle cellule doit se limiter ma macro. A chaque fois que je modifie quoi que se soit dans la page, ma macro démarre, alors que je voudrais que ce ne soit le cas que si une cellule bien précise est modifiée.

Afin de démontrer mon problème, je joins un petit exemple. Ici, deux macros seraient nécessaires, l'une lors de la modification de la cellule B1 et une autre lors de la modification de la cellule B3.

https://www.excel-pratique.com/~files/doc/Question_macro_evenementielle.xls

Merci d'avance pour votre aide et bonne soirée.

Salut le forum

Yvouille pas besoin de 2 macros

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B1, B3")) Is Nothing Then
  With Target
    If .Address = "$B$1" Then
      MsgBox "1"
    End If
    If .Address = "$B$3" Then
      MsgBox "2"
    End If
  End With
End If
End Sub

A insérer dans le module de ta feuille

Mytå

Re le forum

Adapté pour ton application

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B1, B3")) Is Nothing Then
Application.EnableEvents = False
  With Target
    If .Address = "$B$1" Then
      Range("B3").Formula = "=B1+B2"
    End If
    If .Address = "$B$3" Then
      Range("B1") = ""
    End If
  End With
End If
Application.EnableEvents = True
End Sub

Mytå

Bonsoir à tous,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("b3")) Is Nothing Then
        Range("b1") = [b3] - [b2]
        Range("b3").Formula = "=b1 + b2"
    End If
End Sub

edit: 0h30

Claude.

Re le forum

Claude, tu n'effaces pas B1 et l'InputBox je n'en vois vraiment pas le besoin ici...

Mytå

P.S. Comme Lucky Luke il modifie son code plus vite que son ombre, mais je l'avais déjà

intercepté au passage

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not Application.Intersect(Target, Range("b3")) Is Nothing Then 
        rep = InputBox("Salaire B ?", , [b3]) 
        If rep = "" Then Exit Sub 
        Range("b1") = rep - [b2] 
        Range("b3").Formula = "=b1 + b2" 
    End If 
End Sub

Je suis plus rapide sur le copier-coller que l'édition d'une ficelle

Bonjour le Forum,

Je retiens la solution de Myta « adaptée à mon application » qui répond parfaitement à mon attente.

Un tout grand merci à tous ceux qui m’ont proposé leur aide : du grand art !

Bonnes salutations.

Rechercher des sujets similaires à "code vba execution suite evenement"