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 :

GetOpenFilename fait planter Excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 36
    Points
    36
    Par défaut GetOpenFilename fait planter Excel
    Bonjour,

    cj un bug très mystérieux lié au sélecteur de fichiers.

    Dans mon application, l'utilisateur peut choisir une image pour l'attacher à un item choisi dans une listbox. Nom : 2014-11-24_09h57_00.jpg
Affichages : 304
Taille : 50,0 Ko Je stock le chemin de l'image dans un endroit du fichier Excel.

    Et chose surprenante, après le double click dans le sélecteur de fichier, les informations "sautent". Cad à dire que la userform active derrière le sélecteur disparait et l'appli perd l'item auquel il faut attacher la photo.

    Est-ce que cela vous dit quelquechose ? merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim img As Variant
    Dim i As Integer
    Dim Repertoire1 As String
    'Nom du répertoire à scanner
    Repertoire1 = Environ("USERPROFILE") & "\Pictures\"
    ChDir Repertoire1
    img = Application.GetOpenFilename("JPEG (*.jpg),*.jpg", 1, "Choisir une image:")

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Bonjour,

    Difficile de savoir avec le peu de code que tu nous proposes... Est-ce que tu peux mettre ton classeur - sans données confidentielles- en PJ ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    ok je te prépare un fichier sans données confidentielles.

    Bon, j'ai allégé mon fichier qui contient le code pour ne laisser que le module qui sert.

    mais le hic c'est que là ça fonctionne très bien là ! et je ne peux me passer du reste pour faire marcher l'ensemble de l'outil

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Il est possible que ton vrai classeur soit corrompu. Recopie les feuilles, les macros et les userforms dans un classeur vierge, enregistre et teste.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 36
    Points
    36
    Par défaut
    j'ai fais comme tu as dis, et les premiers essais étaient concluants et ça a fini par dérailler à nouveau.

    Pour faire ouvrir le sélecteur sur le dossier Images de chaque utilisateur je procède ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Repertoire1 = Environ("USERPROFILE") & "\Pictures\"
    ChDir Repertoire1
    l'utilisation de la variable Environ("USERPROFILE") ne serait t-elle pas responsable ?

    Je sais que par le passé sous Excel 2003, mon application était devenu très instable quand j'utilisais Environ("USERNAME") pour un autre besoin. J'avais cessé de l'utiliser du coup.

    Vous n'avez jamais entendu parler de ces variables d'environnements qui font planter VBA ?

    Merci en tout cas

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Vous n'avez jamais entendu parler de ces variables d'environnements qui font planter VBA ?
    Personnellement, non. D'autant que le classeur de test fonctionne...
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Bonjour.

    Citation Envoyé par punky_brooster Voir le message
    Je sais que par le passé sous Excel 2003, mon application était devenu très instable quand j'utilisais Environ("USERNAME") pour un autre besoin. J'avais cessé de l'utiliser du coup.
    J'utilise encore Excel 2003 entre autres versions et je n'ai jamais eu de souci …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Tu as peut-être quelque pat dans ton code l'instruction "On Error" qui masque un message d'erreur. Fais une recherche pour voir si c'est le cas.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

Discussions similaires

  1. GetOpenFileName fait planter SHELL32.dll
    Par eomer212 dans le forum Visual C++
    Réponses: 16
    Dernier message: 16/04/2021, 18h46
  2. [XL-2003] Macro de recherche dans doc Word fait planter Excel
    Par Furniture dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/02/2014, 11h16
  3. Copier - Coller fait planter excel !
    Par Janjan_excel dans le forum Excel
    Réponses: 4
    Dernier message: 06/01/2013, 22h18
  4. [XL-2007] La récupération automatique fait planter Excel
    Par cameleon33 dans le forum Excel
    Réponses: 4
    Dernier message: 25/06/2010, 15h45
  5. L'appel de la bibliothèque Word fait planter Excel
    Par quangdao dans le forum VBA Word
    Réponses: 3
    Dernier message: 03/12/2008, 18h23

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