Mémorisation d'un target dans une variable [Résolu]

Signaler
Messages postés
19
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
17 novembre 2006
-
Messages postés
19
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
17 novembre 2006
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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 #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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 #
Messages postés
19
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
17 novembre 2006

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...
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
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
Messages postés
256
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
6 novembre 2009
1
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é[^]
Messages postés
19
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
17 novembre 2006

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