Méthode find et propriété after

Méthode find et propriété after - VB/VBA/VBS - Programmation

Marsh Posté le 02-11-2009 à 11:56:15    

Salut à tous http://www.clubic.com/forum/img/emoticons/hello.gif
 
J'utilise la méthode find dans une de mes macros mais je n'arrive pas à utiliser la propriété after. Excel me dit qu'il y a une incompatibilité de type.
Voici mon code (juste un extrait, pour ne pas surcharger) :
 
Code :
 
Set c = .Find(ComboBoxPOL.Value, MatchCase:=True)
sPOL = c.Offset(columnoffset:=1)
Set vLigne = .Find(Cel.Offset(columnoffset:=vPOD), MatchCase:=True, after:=sPOL)

 
(J'ai supprimé tous les "with" et codes intermédiaires pour lesquels ces variables n'entrent pas en compte).
 
Le problème semble être le code "after:=sPOL"
Si je supprime cette ligne, le code ne plante pas. Pourtant sPOL est bien un Range dans mon code :
la méthode find renvoie un Range, donc ma variable "c" est un Range
La propriété Offset renvoir un Range donc ma variable sPOL est un Range
 
Je ne comprends pas l'incompatibilité de type... http://www.clubic.com/api/forum/img/smiley/pascontent.gif


Message édité par Takama13 le 02-11-2009 à 11:58:28
Reply

Marsh Posté le 02-11-2009 à 11:56:15   

Reply

Marsh Posté le 02-11-2009 à 14:58:46    

Doc :

Citation :

After     Argument de type Variant facultatif.  Cellule après laquelle vous souhaitez commencer la recherche. Cela correspond à la position de la cellule active lorsqu'une recherche est effectuée à partir de l'interface utilisateur. Notez que l'argument After doit correspondre à une seule cellule dans la plage. Rappelez-vous que la recherche commence après    cette cellule ; la cellule spécifiée n'est pas recherchée jusqu'à ce que la méthode reviennent à cette cellule. Si vous ne spécifiez pas cet argument, la recherche commence après la cellule située dans le coin supérieur gauche de la plage.


J'ai fait l'essai, et j'ai ele même mesage d'incompatibilité en remplaçant after:=sPOL par after:=Range("B1:B3" )
Par contre ça passe en écrivant after:=Range("B3" )

Reply

Marsh Posté le 02-11-2009 à 15:40:40    

C'est normal, il faut forcément ne désigner qu'une seule cellule, et non une plage.
Ce que je ne comprends pas, c'est pourquoi mon sPOL n'est pas considéré comme un Range...

Reply

Marsh Posté le 05-11-2009 à 10:51:41    

personne ?

Reply

Sujets relatifs:

Leave a Replay

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