Lancer une macro si une cellule d'une plage est modifée

Bonjour,

Je voudrais lancer une macro dés lors que je modifie une cellule contenu dans une plage (cellules des colonnes A et B)

Sur ma feuille, j'ai marqué le texte ci dessous mais j'ai l'impression que c'est foireux...

Private Sub Worksheet_Calculate()

Dim KeyCells As Range
Set KeyCells = Range("A:B")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
NomDeLaFeuille = ActiveSheet.Name
Module1.Attribution_Cond

End If

End Sub

Agrimaman

Bonjour,

utilise la balise </> pour poster un code, cela améliore la lisibilité

tu as ici un tuto très bien fait https://www.excel-pratique.com/fr/vba/evenements_feuille.php

utilise

Private Sub Worksheet_Change(ByVal Target As Range)
' définition des keycells
If Not Application.Intersect(KeyCells, Target) _
 Is Nothing Then
' ton code
end if
End Sub

Par contre comment tu indiques que ce ne sont que les cellules des colonnes A et B qui sont à prendre en compte?

Agrimaman

un exemple

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A:B"), Target) Is Nothing Then
MsgBox Target.Address
End If
End Sub

Merci.

Une dernière petite question. Quand ton code on voit en message la cellule ou les cellules modifiées.

Sachant que je fait appel à une macro après, comment je peux reprendre l'information "target" dans la macro?

Voila le code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range("A:A"), Target)

Is Nothing ThenMsgBox Target.Address

Module1.Attribution_Cond

End If

End Sub


Je ne comprends pas ceci

Module1.Attribution_Cond

mets un fichier exemple

Tu peux reprendre la valeur ou l'adresse de Target avec Target.Value ou Target.Address et le passer en paramètre dans une sub

23classeur1.xlsm (13.98 Ko)

Attribution_Cond est la macro que je souhaite lancer et je souhaite reprendre la valeur "Target" pour l'utiliser dans la macro Attribution_Cond

Je ne suis pas sût que ça va t'aider le fichier en pièce jointe

7agrimaman2.xlsm (11.71 Ko)

Je vois surtout que tu n'as pas ouvert la proposition que je t'ai faite et qui répondait !

24agrimaman2.xlsm (13.56 Ko)

C'est bon j'ai trouvé ce qu'il fallait faire.

Dans la feuille le code est :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range("A:A"), Target) Is Nothing Then

Call Module1.Attribution_Cond(Target)

End If
End Sub

Et dans le module1 :

Public Sub Attribution_Cond(Target)
End sub
Plage = Target.Address

Ainsi ça me permet de transférer la place modifiée.

J'avais pas compris au départ.

Merci beaucoup pour tous tes retours.

Agrimaman

Je ne pense pas que ce soit bon !

Public Sub Attribution_Cond(Target)
End sub
Plage = Target.Address

et de toute façon les fichiers que l'on te renvoie ne servent à rien ! ils ne sont jamais chargés.

Désolé je ne l'avais pas vu.

Agrimaman

Rechercher des sujets similaires à "lancer macro plage modifee"