Erreur 91 sur certains postes avec Find

dhaze Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je n'arrive pas à trouver une syntaxe de cette formule qui fonctionnerait sur tout les postes, il y en a toujours un qui n'arrive pas au bout de la macro, et bloque la-dessus:

Cellule_Valeurs_possibles.NAME = "Valeurs_possibles"

Erreur 91

    Dim Cellule_Valeurs_possibles As Range

        Set Cellule_Valeurs_possibles = Cells.Find(What:="Valeurs possibles :", _
        LookIn:=xlValues, LookAt:=xlPart)

        Cellule_Valeurs_possibles.NAME = "Valeurs_possibles"

    Cellule_Valeurs_possibles.Select


Je sais plus quoi faire...

Lo.
A voir également:

4 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Sans doute qu'il ne trouve pas.
Il faut toujours tester le résultat d'un .find, un utilisateur peut avoir changé le tableau :
    Set Cellule_Valeurs_possibles = Cells.Find(What:="Valeurs possibles :", _
                                               LookIn:=xlValues, LookAt:=xlPart)
    If Cellule_Valeurs_possibles Is Nothing Then
        MsgBox "non trouvé"
    Else
        Cellule_Valeurs_possibles.Name = "Valeurs_possibles"
        Cellule_Valeurs_possibles.Select
    End If 

eric
0
dhaze Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Eric,

Malheureusement, ce doit être quelque chose de plus obscure...
Puisse-que cette feuille est crée par le tableau lui-même via une macro, sur la base d'un modèle VeryHidden verrouillé par mot de passe et accessible que de la macro...

C'est vraiment un problème lié au poste.

J'ai eu un problème similaire avec Environ qui ne fonctionne sur certains poste qu'avec le préfixe VBA.

Je soupçonne un truc dans ce goût-là, mais quoi ?!

Lo.
0
dhaze Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
 
Même chose avec :
Set Sheets_Add = Sheets.Add(After:=Sheets(Sheets.Count))

ou
Set Sheets_Add = ActiveWorkbook.Sheets.Add(After:=Worksheets(Worksheets.Count))
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Si seulement on avait les messages d'erreur...
eric
0
dhaze Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
 
Comme quoi c'est bien mystérieux !

Pour avoir le type d'erreur exacte, aujourd'hui j'ai demander à cet utilisateur de refaire la manip qui avait plantée la semaine dernière...

Et là, ça fonctionne !!!

Il faut que je diffuse plus largement ce fichier pour multiplier les tests, on verra ce que ça donne...

Pour l'instant, stand-by.

Merci.
Bon WE

Lo.
0
dhaze Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

L'erreur c'est reproduite sur un poste...
Et cette fois j'ai l'alerte complète ! ;-)

Erreur d'exécution '91':
Variable objet ou variable de bloc With non définie

ActiveSheet.UsedRange.Select
Dim Cellule_Valeurs_possibles As Range
Set Cellule_Valeurs_possibles = Cells.Find(What:="Valeurs possibles :", _
LookIn:=xlValues, LookAt:=xlPart)
Cellule_Valeurs_possibles.NAME = "Valeurs_possibles"
Cellule_Valeurs_possibles.Select

Ligne surlignée:
Cellule_Valeurs_possibles.NAME = "Valeurs_possibles"

Lo.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Sans doute ton .find qui ne trouve pas "Valeurs possibles :", et tu ne testes pas le résultat pour traiter l'erreur.
Et ActiveSheet c'est vague, ça peut-être n'importe quelle feuille si l'utilisateur a eu le temps de l'activer.

1) selon le cas :
- soit travailler en désignant cette feuille avec un
With Sheets("ma feuille qui va bien")
.[A1]=3 'note le . devant pour dire que tu travailles avec le with

- soit activer la feuille qui va bien avant
Et comme tu as des .Select (le plus souvent inutiles mais bon ce n'est pas le sujet) tu n'as pas le choix il faut qu'elle soit active.

2) et si tu n'es pas sûr à 110% de trouver avec ton .find il faut le tester :
Set Cellule_Valeurs_possibles = Cells.Find(What:="Valeurs possibles :", _
LookIn:=xlValues, LookAt:=xlPart)
if Cellule_Valeurs_possibles = Nothing then
msgbox "Au secours !"
else
Cellule_Valeurs_possibles.NAME = "Valeurs_possibles"
Cellule_Valeurs_possibles.Select
endif

Maintenant il y a sûrement d'autres possibilités, c'est la plus probables.

eric
0