Erreur 91 sur certains postes avec Find

Fermé
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 26 juin 2015 à 19:03
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 23 juil. 2015 à 20:33
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.

4 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
26 juin 2015 à 19:36
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 mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
Modifié par dhaze le 9/07/2015 à 18:42
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 mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
9 juil. 2015 à 18:47
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
9 juil. 2015 à 18:56
Bonjour,

Si seulement on avait les messages d'erreur...
eric
0
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
10 juil. 2015 à 19:10
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 mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
23 juil. 2015 à 16:55
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
23 juil. 2015 à 20:33
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