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