IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Encore et toujours l'erreur d'execution "91" [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut Encore et toujours l'erreur d'execution "91"
    Bonjour,

    Je débute complètement en Visual Basic avec Office 2016. J'ai regardé pleins de sujets identiques et pourtant, je ne trouve pas ce que je fais de mal. J'ai réduit mon code à l'extrême pour simplifier. Et quand je le lance, j'ai l'"erreur d'exécution 91: Variable objet ou variable de bloc With non définie" sur la ligne Boite.Show qui est en gras.

    Est-ce qu'une bonne âme pourrait m'aider s'il vous plaît?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Bouton2_Cliquer()
    
    Dim Boite As FileDialog
    
    Set Boite = Application.FileDialog(msoFileDialogFolderPicker)
    Boite.Show
    
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 132
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour répondre, il faudrait en savoir plus.
    Où se trouve la procédure nommée Bouton2_Cliquer
    Le bouton est-il un bouton formulaire, un bouton Activex sur une feuille ou encore un bouton dans un UserForm
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Il s'agit d'un simple bouton dans une feuille de calcul Excel.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Essaye de déclarer ta variable en Object.

    Ou faire plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Boite As Long
     
    Boite = msoFileDialogFolderPicker
    Application.FileDialog(Boite).Show

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Merci pour ta réponse.
    Mais j'ai exactement le même message d'erreur avec.

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 132
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il s'agit d'un simple bouton dans une feuille de calcul Excel.
    Comme je l'ai écrit, il y a deux sortes de boutons que l'on peut dessiner sur une feuille. Le bouton formulaire et le bouton ActiveX
    Le premier est lié à une procédure Sub placée dans un module alors que le second est lié à une procédure événementielle NomDuBouton_Click placée dans la feuille parente d'où mes questions.

    J'ai essayé le code publié avec un ActiveX (CommandButton) et cela fonctionne parfaitement sauf évidemment que le nom de la procédure n'est pas correct si c'est un ActiveX

    Sans une réponse précise aux questions posées, il est impossible d'apporter une réponse pertinente
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Merci pour vos réponses.

    Effectivement, ma réponse n'était pas très précise. J'ai fait un bouton formulaire. Je ne sais pas comment faire un bouton ActiveX, je vais regarder.

    Néanmoins, je suis étonné que mon code ne fonctionne pas dans un bouton formulaire.

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 132
    Billets dans le blog
    53
    Par défaut
    Bonjour,l
    Néanmoins, je suis étonné que mon code ne fonctionne pas dans un bouton formulaire.
    Moi de même
    J'ai refait un test avec la même procédure nommée Bouton2_Cliquer placée dans le module feuille et dans un module standard avec un bouton formulaire et tout fonctionne parfaitement.
    Tests effectués avec Excel 2010 et Excel sur Office 365

    Ce qui m'interpelle, c'est le message "j'ai l'"erreur d'exécution 91: Variable objet ou variable de bloc With non définie" sur la ligne Boite.Show" signalé à l'ouverture de la discussion

    N'ayant aucun bloc With..End With, je me pose la question "Ce message apparaît-il avec le code publié ?"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Oui c'est le seul code que j'ai.

    De ce que j'en ai compris le message concerne 2 situations, soit une variable objet soit une variable de bloc With.

    Etant donné que le code est très simple, et qu'il ne comporte pas d'erreur a priori, je me demandais s'il n'y avait pas un problème de version ou une librairie non installée...

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 132
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme je l'ai écrit dans le code publié, il n'y a pas de bloc With...End With et la variable objet Boite est bien déclarée et correctement typée donc je ne vois pas de raison à ce message mais comme vous avez écrit "J'ai réduit mon code à l'extrême pour simplifier", je voulais être certain que le message apparaissait bien avec ce code simplifié et donc publié.

    N'y auratt-il pas un module ou une procédure nommée Boite ?
    Avez-vous compiler le programme (Commande Compiler le projet VBA du menu [Débogage] de l'éditeur VBA (VBE)) pour vérifier les erreurs signalées
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Merci pour votre aide. Je suis désolé que ça ne soit pas plus concluant.

    A priori, pas d'autre élément nommé Boite. J'ai essayé en changeant le nom de ma variable. La compilation fonctionne sans erreur.

    En passant pas à pas dans le programme, il s'avère que la fonction Application.FileDialog(msoFileDialogFolderPicker) renvoie Nothing.

    J'ai pourtant bien en référence la libraire d'objet Excel...

  12. #12
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Mac ou pc?

  13. #13
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Miaou1978 Voir le message
    De ce que j'en ai compris le message concerne 2 situations, soit une variable objet soit une variable de bloc With.
    C'est plus compliqué que ça.
    En gros, VBA sort cette erreur lorsqu'il ne reconnait pas quelque chose utilisé comme un objet.
    C'est une erreur très chiante à solutionner parce que ça peut être à peu près n'importe quoi.

    L'option Explicit, en obligeant les déclaration et donc vérifiant les fautes d'orthographe sur les noms de variables, permet de limiter l'apparition de ce type d'erreur.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Effectivement, j'ai oublié de précise que je suis sur Mac.

  15. #15
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 132
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Effectivement, j'ai oublié de précise que je suis sur Mac.
    Quand on pose une question sur VBA et que l'on travaille sur MAC, c'est important de le préciser car il y des objets que l'on ne sait pas manipuler sur MAC
    Voir le site de Ron de Bruin Select Folder with VBA/Macscript in Mac Office
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 8
    Par défaut
    Wahou. Ca marche!

    Merci beaucoup! En particulier à Philippe Tulliez. Vraiment désolé de ne pas vous avoir précisé au départ que j'étais sur Mac.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. nodes, child et compatibilité... encore et toujours
    Par pmithrandir dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 14h26
  2. stencil buffer, encore et toujours
    Par JAimeBienCoderBourre dans le forum OpenGL
    Réponses: 4
    Dernier message: 08/04/2005, 11h16
  3. [LDAP][Interface Winldap.h] Erreur d'execution
    Par -=Spoon=- dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 10/03/2005, 17h10
  4. [javamail] erreur d'execution
    Par bibx dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 05/12/2003, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo