Tidauph0
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention17 novembre 2006
-
8 nov. 2006 à 13:28
Tidauph0
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention17 novembre 2006
-
8 nov. 2006 à 14:26
Salut tout le monde,
Voilà, j'ai un problème de programmation avec VBA excel :
Lorsque je supprime le contenu d'une cellule, j'ai besoin de mémoriser son adresse pour pouvoir l'utiliser ailleurs. Seulement mon programme plante et m'affiche l'erreur 91 alors qu'il me semble avoir tout déclaré correctement. Si quelqu'un a une idée.. merci
Je vous ai mis la ligne sur laquelle le débogueur s'arrête en bleu.
Lorsque je me positionne sur les variables :
- Target.Address = "$A$36"
- coord_cell = Nothing
----------------------------------
Public coord_cell As Range
_____________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then
coord_cell = Target.Address
Feuil1.tableau
End If
End Sub
Tidauph0
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention17 novembre 2006 8 nov. 2006 à 13:47
Merci de ta réponse.
Bah en fait ça ne change rien, sauf que quand je me positionne sur "target", maintenant je n'ai plus rien qui s'affiche. Par contre j'ai fait un essai en capturant l'adresse dans une cellule plutôt que dans une variable et là ça fonctionne. Donc je pense que ça vient de ma variable et nom pas du "target.address".
Je peux utiliser la méthode de la cellule mais c'est pas propre et ça ne me dira pas mon erreur...
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 8 nov. 2006 à 14:07
Salut,
Tu n'as qu'une possibilité simple pour utiliser un objet range dans une variable :
En donnant la référence de l'objet :
dans ton cas il faudrait passer l'objet range Byref aulieu de Byval et faire :
Set
coord_cell = Target
le déréférencement (affectation d'une référence) se fait par l'opérateur Set
- L'initialisation d'une variable de type Range se fait, aussi , comme ca :
Set coord_cell = Worksheets("Sheet1").Cells(1, 1)
( la propriété Adress est en lecture seule.)
Attention cependant dans ce cas, ta variable coord_cell n'est pas une copie de l'objet range (ce qui est impossible) passé en paramètre à ta fonction, C'EST l'objet range lui-même que tu manipules.
Tidauph0
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention17 novembre 2006 8 nov. 2006 à 14:26
C'est bon ça fonctionne!! Il fallait effectivement passer par le SET coord_cell..
Par contre je suis resté en ByVal pour l'objet Target (j'ai essayé avec le ByRef mais ça ne marchait pas..)