[Excel VBA] Macro qui se lance à chaque calcul

Macro qui se lance à chaque calcul [Excel VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 19-11-2006 à 13:08:33    

Bonjour,
certaines macros qui portent un nom se lancent lors d'événements précis par exemple à l'ouverture du classeur (sub workbook_open).
Maintenant comment lancer une macro chaque fois que la feuille est mise à jour?  En gros comment rendre les macros automatiques comme les formules.

Reply

Marsh Posté le 19-11-2006 à 13:08:33   

Reply

Marsh Posté le 19-11-2006 à 13:53:25    

Bonjour,
Tu vas dans VB  
dble clic sur feuil1 (par exemple)
A droite tu as général et worksheet
choisis worksheet
dans la deuxième petite fenêtre tu pourras choisir entre "change" ou "calculate"  (help te donnera des infos à ce sujet)
Cordialement

Reply

Marsh Posté le 19-11-2006 à 14:41:24    

Rah Mozilla a fermé la page. Je dois tout recommencer ma super question.
Worksheet_Change se lance à chaque modification sur la feuille. Pb: que peut être Target aucune procédure n'appelle Worksheet_Change?
 

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Call Propagation_model
  3. End Sub


 Propagation_model est rendue publique dans un module.


Message édité par Kimilsung le 19-11-2006 à 14:41:39
Reply

Marsh Posté le 19-11-2006 à 14:59:06    

Bonjour,
désolé, je ne comprends pas ta super question, mais si tu demande ce que peut être Target, c'est un paramètre qui indique quelle cellule a été modifiée. tu peux ainsi tester si c'est une cellule bien définie: target. address      ou une ligne  target.row    ou une colonne taget.column  etc.....
worksheet_change est appelée lorsque l'évènement change se produit.
 
Cordialement


Message édité par seniorpapou le 19-11-2006 à 15:00:02
Reply

Marsh Posté le 19-11-2006 à 16:11:09    

En fait la question serait comment lui faire passer Target en paramètre?
Vu qu'aucune procédure n'appelle Worksheet_Change.
Cdt

Reply

Marsh Posté le 19-11-2006 à 17:47:49    

bonjour,
Target EST le paramètre
pour t'en convaincre met cette macro et modifie une cellule
 
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address
End Sub
 
A+

Reply

Marsh Posté le 20-11-2006 à 09:14:05    

Merci à tous.
j'ai défini Target en dehors de la procédure.

Code :
  1. Target = Range("A1:F30" )
  2. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3.     Call Propagation_Model
  4. End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed