Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro évenementielle SheetChange

  • Initiateur de la discussion Initiateur de la discussion teter
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

teter

Guest
Bonsoir,

J'ai cherché de mon coté avant de poster mais je coince sur une macro événementielle toute bête qui devrait de déclencher à chaque changement de A1 dons mon onglet :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target = Cells(1, 1) And Cells(1, 1) <> "" Then
MsgBox "test"
End If
End Sub

Sur ma version d'excel, dans mon éditeur de macros, je ne peux "lancer" que l'objet Workbook et pas Worksheet, je ne sais pas si c'est important.

Si qq'un à une idée ?

Merci beaucoup

A+

Teter
 
Re : macro évenementielle SheetChange

Bonsoir teter,

Effectivement, on ne peut pas lancer l'événement change d'une feuille manuellement : il faut absolument qu'une modification ou un recalcul survienne dans cette feuille.
Par contre, tu peux simuler son fonctionnement dans une macro que tu écris dans un nouveau module de code.

Cordialement.
 
Re : macro évenementielle SheetChange

Salut,

Target est un objet range(en claire une ou plusieurs cellules), donc il faut le considerer comme tel. Ce qui veut dire que tu peux lui appliquer toutes les propriété d'un objet range comme la valeur, l'adresse etc.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address="$A$1" And Target.Value<>"" Then
MsgBox "test"
End If
End Sub

A+🙂
 
Re : macro évenementielle SheetChange

Bonjour et merci pour vos réponses,

Ce test fonctionne maintenant ... mais, et oui, il y toujours un souçi quand on veut aller plus loin.
Sur mon fichier (plusieurs feuilles dont ma feuille active "split") cette "macro" fonctionne aussi. Je voudrais lancer une macro "liste" existante à chaque changement de la valeur de ma cellule A1. Cette macro fonctionnait avant que je n'insère dans mon Workbook la macro événementielle ci dessus. Quand je la lance, j'ai maintenant le message :
"Erreur d"exécution 13: incompatibilité de type" et le débogage me met en jaune la ligne "If Target.Address="$A$1" And Target.Value<>"" Then " qui n'a rien à voir avec ma macro "liste".

Soit, si j'insère le code de ma macro "liste" à la place de MsgBox "test", ça devrait fonctionner, et bien non !
Voila cette macro :
"
Sheets("split").Range("P2:R2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents

Dim x As Range
Dim y As Range
Set y = Sheets("split").Range("A1")

Sheets("FFPOS1").Select
For Each x In Sheets("FFPOS1").Range("J2:" & Range("J65536").End(xlUp).Address)
If x = "VMOB" And x.Offset(0, -5) = y Then
Cells(x.Row, 11).Copy (Sheets("split").Range("P65000").End(xlUp).Offset(1, 0))
Cells(x.Row, 16).Copy (Sheets("split").Range("R65000").End(xlUp).Offset(1, 0))
Cells(x.Row, 64).Copy (Sheets("split").Range("Q65000").End(xlUp).Offset(1, 0))

End If
Next
Sheets("split").Activate
Range("Q1").Sort _
Key1:=Range("Q1"), _
Order1:=xlDescending, _
Header:=xlYes
"
Ici, même message d'erreur.
J'ai donc essayé ceci :
"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$B$6" And Target.Value <> "" Then
Call liste
End If
End Sub
"
Et même résultat !

Yaurait-il un super correcteur dans le secteur ?

Merci beaucoup car là, je coince sérieusement

A+

Teter
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
509
Réponses
8
Affichages
797
Réponses
4
Affichages
742
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…