Lancer macro lors de saisie dans une cellule précise

Lancer macro lors de saisie dans une cellule précise - VB/VBA/VBS - Programmation

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

Reply

Marsh Posté le 14-11-2007 à 12:05:39   

Reply

Marsh Posté le 14-11-2007 à 20:25:03    

De mémoire :
 
If Target=cells(1,1) and cells(1,1)<> "" Then  
...
...

Reply

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+

Reply

Marsh Posté le 14-11-2007 à 21:24:53    

Pas faux.

Reply

Marsh Posté le 15-11-2007 à 09:18:26    

merci pour ces explications,
cela fonctionne mieux avec des instructions complètes,
bonne journée

Reply

Sujets relatifs:

Leave a Replay

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