Erreur 91 sur certains postes avec Find

dhaze Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24581 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.

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. dhaze Messages postés 113 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
    1. dhaze Messages postés 113 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
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Si seulement on avait les messages d'erreur...
      eric
      0
  3. dhaze Messages postés 113 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
  4. dhaze Messages postés 113 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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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