La methode find

bonjour a tous,

voici mon code :

public range_sz_pack as range
range_sz_pack = range("a1","h250")
range_sz_pack.Find(variables.no_table).Select

mais sauf que quand j'exécute le code ca me met le message d'erreur suivant :

annotation 2019 12 27 143048

je suis bloqué dessus j'ai un peu essayer tout ce que j'ai pu trouver sur le net mais voila sans sucée...

quelqu'un a une idée ?

en vous remerciant d'avance.

Bonjour hari,

Lorsque tu déclare ta variable

range_sz_pack = range("a1","h250")

comme c'est une variable

As Range

, il faut la déclarer comme ça

Set range_sz_pack = range("a1","h250")

Et plus d'erreur 91 !

Cordialement,

bonjour,

merci de ta réponse effectivement c’était ça qui manquais...

comment je peut savoir a quelle moment il faut que j'utilise le : "set" ?

si non maintenant j'ai une autre erreur :

annotation 2019 12 27 143048

une idée?

Pour le Set, généralement on utilise cette instruction lorsqu'on affecte un objet à une variable.

Pour l'erreur, il va falloir que tu puisses joindre un fichier.

re,

voici mon fichier :

11master-cil.xlsm (101.11 Ko)

si tu as plus de question je suis également dispos en MP pour ne pas trop polluer l'espace commentaire.

L'erreur que tu as, elle survient quand ? Qu'elle macro de mets en erreur, et sur qu'elle ligne ?

Pour l'instant je n'ai pas d'erreur.

Merci

bonjour,

merci de tes réponse, j'ai trouver l’erreur.

le problème c'est que j'ai écrit un un range dans un variables comme suit dans un autre module "variable" :

dans le module VARIABLES:

public range_pack as range

sub variables
set range_pack = range("a1", "s105")
end sub

ensuite dans un autre module je fait appelle a ce variables :

sub module_1
VARIABLES.variables
variables.range_pack.find("xxx").activate
end sub 

quand j'ai écrit le code comme ça ne marche pas ça me fait un erreur,

mais quand j'ecrit le range en dur ca marche :

sub module 1
VARIABLES.variables
range("a1", "s105").find("xxx").activate
end sub 

aurais tu une solution a me proposer ?

dans l'idéale j'aimerais garder le range dans un variables car je l'utilise plusieurs fois et dans plusieurs module donc si jamais la base de donnée venais a évoluer ça serais plus facile a modifier

Bonjour hari,

Je viens de faire un test avec le code qui te donne une erreur :

Public range_pack As Range

Sub variables()
Set range_pack = Range("a1", "s105")
End Sub

Et :

Sub module_1()
variables.variables
variables.range_pack.Find("xxx").Activate
End Sub

Et cela fonctionne parfaitement chez moi.

J'ai une erreur "Variable objet ou variable de bloc with non définie" seulement dans le cas où il n'y a pas de "xxx" dans le range concerné.

Peux-tu envoyer l'erreur que tu as ?

re IronBoule,

quand j’exécute le code j'ai l'erreur '424'

objet requis.

Et sur qu'elle ligne précieusement ?

En attendant que tu m'envoies la ligne concerné, un début de piste sur cette erreur :

Objet requis (Erreur 424)
08/06/2017
2 minutes de lecture

Les références aux propriétés et aux méthodes nécessitent souvent un qualificateur d'objet explicite. Les causes et solutions de cette erreur sont les suivantes :
Vous avez référencé une propriété ou une méthode d'objet, mais vous n'avez pas spécifié de qualificateur d'objet valide. Spécifiez un qualificateur d'objet si vous ne l'avez pas déjà fait. Par exemple, bien qu'il soit possible d'omettre un qualificateur d'objet lors du référencement d'une propriété de formulaire dans le module du formulaire, vous devez spécifier explicitement le qualificateur lors du référencement de la propriété d'un module standard.
Vous avez spécifié un qualificateur d'objet, mais il n'est pas reconnu en tant qu'objet. Vérifiez l'orthographe du qualificateur d'objet et assurez-vous que l'objet est visible dans la partie du programme dans laquelle vous le référencez. Dans le cas des objets Collection, vérifiez les occurrences de la méthode Add pour vous assurer que la syntaxe et l'orthographe de tous les éléments sont correctes.
You supplied a valid object qualifier, but some other portion of the call contained an error. Un chemin d’accès incorrect en tant qu' argument de la commande ouvrir un fichier d’une application hôte peut provoquer l’erreur. Check arguments.
Vous n'avez pas utilisé l'instruction Set lors de l'affectation d'une référence d'objet. Si vous affectez la valeur de retour d'un appel CreateObject à une variable Variant, une erreur ne se produit pas nécessairement si l'instruction Set est omise. Dans cet exemple de code, une instance implicite de Microsoft Excel est créée, et sa propriété par défaut (la chaîne « Microsoft Excel ») est renvoyée et affectée au Variant RetVal. Une tentative suivante d'utiliser RetVal en tant que référence d'objet génère cette erreur :
VB

Copier
  Dim RetVal ' Implicitly a Variant. 
  ' Default property is assigned to Type 8 Variant RetVal. 
  RetVal = CreateObject("Excel.Application") 
  RetVal.Visible = True ' Error occurs here. 
Utilisez l'instruction Set lors de l'affectation d'une référence d'objet.
Dans de rares cas, cette erreur se produit lorsque vous disposez d'un objet valide, mais que vous tentez d'effectuer une action non valide sur l'objet. Par exemple, vous pouvez obtenir cette erreur si vous tentez d'affecter une valeur à une propriété en lecture seule. Consultez la documentation de l'objet et assurez-vous que l'action que vous tentez d'effectuer est valide.

IronBoule,

l’erreur est sur la ligne :

 variables.range_pack(variables.no_table).Select 

irinBoule,

l'erreur est sur la ligne :

 variables.range_pack.find(variables.no_table).Select 

J'ai fait plusieurs tests, et je n'obtiens pas l'erreur que tu as eu.

J'ai une erreur seulement si dans la table de recherche, il n'y a pas l'information voulue, sinon, pas d'autres erreurs...

IronBoule,

quand jetait les "cordonnée d'un variables ça marche bien mais quand je le met dans un variables comme tu m'as dit avec SET ben ça marche pas, je ne comprend pas, est ce que tu peut m'aider s'il te plait?

Avec le fichier que tu m'as envoyé, je ne pourrais pas beaucoup t'aider puisque je n'obtiens pas l'erreur.

Essaye de m'envoyer le fichier sur lequel tu travail, en m'expliquant la manipulation que tu fais pour obtenir cet erreur.

Rechercher des sujets similaires à "methode find"