Lancer macro lors de saisie dans une cellule précise - VB/VBA/VBS - Programmation
Marsh Posté le 14-11-2007 à 20:25:03
De mémoire : 
 
If Target=cells(1,1) and cells(1,1)<> "" Then  
... 
...
Marsh Posté le 14-11-2007 à 20:46:51
bonsoir, 
Worksheet_Change est une macro évènementielle de niveau feuille. Elle est sensée controler des objets de niveau feuille. 
Après Workbooks.Open Filename "blabla", c'est Workbooks("blabla" ) qui est actif or Workbooks ne comprte pas d'objet Range. 
Il conviendrait donc d'abord d'activer la feuille "truc" du Workbooks("blabla" ) pour pouvoir adresser le Range("C10" ) 
 
... Mais à partir de cette Private Sub, tu ne peux le faire qu'au moyen d'instructions complètes : 
Workbooks("blabla" ).Worksheets("truc" ).Activate 
Workbooks("blabla" ).Worksheets("truc" ).Range("C10" ).Select 
 
Avec une syntaxe courte dans une Private Sub de Feuille VBA ne voit que les objet de la feuille "source" (tant qu'elle est active) 
A+
Marsh Posté le 15-11-2007 à 09:18:26
merci pour ces explications, 
cela fonctionne mieux avec des instructions complètes, 
bonne journée
Marsh Posté le 14-11-2007 à 12:05:39
Bonjour,
je souhaite que lorsque je saisie dans une cellule précise une macro ce déclenche,
j'ai commencé par ça :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Range("a1" ) <> "" Then
ChDir "C:\Documents and Settings\Pinheiro\Mes documents"
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pinheiro\Mes documents\Classeur9.xls"
Range("C9" ).Select
ActiveCell.FormulaR1C1 = "veve"
Range("C10" ).Select
Range("a2" ) = "caca"
End If
End Sub
sauf que : - elle se déclenche même si je saisie dans une cellule autre que A1 et elle bogue au niveau de Range("C9" ).Select
merci de votre iade précieuse,
LASAPINIERE