Private Sub Worksheet_Change(ByVal Target As Range)

  • Initiateur de la discussion Initiateur de la discussion Goufra
  • 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 !

Goufra

XLDnaute Occasionnel
Bonjour à vous,

j'ai ce code dans la feuil1
Private Sub Worksheet_Change(ByVal Target As Range)

J'ai donc crée un bouton dans la feuil1 avec ce code :

Private Sub CommandButton1_Click()
Call Worksheet_Change
End Sub

j'obtiens avec ou sans "call" :
"Erreur de compiltaion argument non facultatif"


Je suis navré de vous poser ce type de question, mais comment fait-on pour lancer sub worksheet_change ?

Cordialement
 
Re : Private Sub Worksheet_Change(ByVal Target As Range)

Bonjour Goufra 🙂,
Private Sub Worksheet_Change(ByVal Target As Range) est ce qu'on appelle une événementielle, donc elle se lance toute seule à chaque fois qu'une (plusieurs) cellule(s) est (sont) modifiée(s) (physiquement, parce qu'un calcul ne sera pas considéré comme une modification) et renvoie cette (ces) cellule(s) avec Target.
Tu ne peux donc pas lancer cette macro depuis une autre.
Bon courage 😎
 
Re : Private Sub Worksheet_Change(ByVal Target As Range)

Bonjour Goufra, JNP

on peut éventuellement lancer une procédure événementielle à partir d'une autre procédure à condition de lui envoyer les arguments attendus, en l'occurence un objet "range" pour une procédure "Worksheet_Change" :

Code:
Private Sub CommandButton1_Click()
Call Worksheet_Change(Range("A1"))
End Sub

bon après midi
@+
 
Re : Private Sub Worksheet_Change(ByVal Target As Range)

Re 🙂,
Oui Pierrot, à condition aussi, bien sûr, d'être dans le même module de feuille.
Effectivement, je ne pensais pas que ça pouvait marcher. D'un autre côté, c'est un détournement bien particulier de l'événementielle, car pourquoi ne pas utiliser une Sub normale dans ces cas-là, mais pourquoi pas 😛...
Bonne journée 😎
 
Re : Private Sub Worksheet_Change(ByVal Target As Range)

Re 🙂,
Depuis un autre module, il me donne une Sub non définie, même en passant la Sub publique...
D'un autre côté, c'est un peu logique, vu que tu peux avoir ce type de Sub dans chaque feuille, et alors, laquelle choisir 😛...
Bonne journée 😎
 
Re : Private Sub Worksheet_Change(ByVal Target As Range)

Re,

ceci fonctionne chez moi, dans un module standard :

Code:
Option Explicit
Private Sub test()
Call Feuil1.Worksheet_SelectionChange(Feuil1.Range("A1"))
End Sub

dans le module de la feuille (codename = Feuil1) :

Code:
Option Explicit
Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Value
End Sub

@+
 
Re : Private Sub Worksheet_Change(ByVal Target As Range)

Re 🙂,
Effectivement, je n'avais pas précisé le code name...
Eh bien, espéront que notre amis a toutes les réponses qu'il souhaitait 😉.
Bonne après-midi 😎
 
- 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

Discussions similaires

Réponses
9
Affichages
508
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour