Mémorisation d'un target dans une variable

Résolu
Tidauph0 Messages postés 19 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 17 novembre 2006 - 8 nov. 2006 à 13:28
Tidauph0 Messages postés 19 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 17 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

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 nov. 2006 à 14:07
Bon j'ai réussi à faire marcher en mettant :

Set coord_cell = Target

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 nov. 2006 à 13:38
essaye avec coord_cell = Target peut-etre

coord_cell étant de type Range, il lui faut un type Range alors que Target.Adress doit etre de type string

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Tidauph0 Messages postés 19 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 17 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...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 nov. 2006 à 13:50
Salut,

Est ce que Target ne serait pas egal a Nothing a ce moment la?
de quel type est coord_cell?

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
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.


Meilleures salutations.

Jcbé[^]
0
Tidauph0 Messages postés 19 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 17 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..)

Merci à tous je vais pouvoir continuer
0
Rejoignez-nous