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

VBA Access Discussion :

[VBA-A] CommonDialog


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Par défaut [VBA-A] CommonDialog
    Bonjour,

    j'ai repris un programme où dans plusieurs formulaires on peut ouvrir l'explorateur de fichierw Windows en cliquant sur un bouton. Le code est le même partout, mais dans un des formulaires cela ne fonctionne pas. Je clique dans le vide.

    voici le code de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    '----------------------------------------------------------
    '  Manage Inject tab
    '----------------------------------------------------------
    Private Sub btnOpen_Click()
    Dim xlApp As Excel.application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim nbSheet As Integer
    Dim frm As Form
    Dim i As Integer
     
        ' La propriété CancelError a la valeur True.
        On Error GoTo ErrHandler
        ' Définit les filtres.
     
        commonDlg.Filter = "Fichier Excel|*.xls"
     
     
        ' Spécifie le filtre par défaut.
        commonDlg.filterIndex = 2
     
        ' Affiche la boîte de dialogue Ouvrir.
        commonDlg.ShowOpen
        ' Appelle la procédure d'ouverture de fichier.
        txtPathname = commonDlg.fileName
     
       Exit Sub
     
    ErrHandler:
    ' L'utilisateur a sélectionné le bouton Annuler.
        Exit Sub
     
    End Sub
    Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GoTo ErrHandler
    en commentaire, il plante de suite systématiquement à la 1ère ligne où il ya d'écrit commonDlg.
    Je remets le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GoTo ErrHandler
    et dès qu'il arrive sur un commondlg il passe sur le label ErrHandler

    Merci par avance pour votre aide,

  2. #2
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Es-tu sûr d'avoir un composant CommonDialog nommé commonDlg sur ta form ? et un Button nommé btn_Open ?
    Et quelle est le message d'erreur quand ton code plante ?

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et lorsqu'il plante, il n'y as pas de message ?

  4. #4
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Bon en fait, j'ai tester son programme (access), et j'ai fait un debugage, en fait dès qu'il va sur une ligne qui appel commonDlg, il se dirige sur le label ErrHandler. Au niveau du débugage il affiche:

    Propriété ou méthode non gérée par cet objet
    Pour commonDlg il y a le composant sur la fiche.

    Le problème est lié a commonDlg, sa je pense qu'il y a aucun doute.

    Je suis même partit du début en mettant simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim cDlg as CommonDialog
     
    cDlg.ShowOpen
    mais la non plus sa marche pas.


  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Par défaut
    Alors en fait, j'ai bien un composant nommé CommonDlg sur ma form oui.
    Quant au bouton, il s'appelle bien btnOpen.

    Quand il plante lorsque que l'étiquette d'erreur est active, il n'y a aucun message, il sort de la procédure juste, i lne se passe strictement rien.

    Si je mets le code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    '----------------------------------------------------------
    '  Manage Inject tab
    '----------------------------------------------------------
    Private Sub btnOpen_Click()
    Dim xlApp As Excel.application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim nbSheet As Integer
    Dim frm As Form
    Dim i As Integer
     
        ' La propriété CancelError a la valeur True.
        'On Error GoTo ErrHandler
        ' Définit les filtres.
     
        commonDlg.Filter = "Fichier Excel|*.xls"
     
     
        ' Spécifie le filtre par défaut.
        commonDlg.filterIndex = 2
     
        ' Affiche la boîte de dialogue Ouvrir.
        commonDlg.ShowOpen
        ' Appelle la procédure d'ouverture de fichier.
        txtPathname = commonDlg.fileName
     
       Exit Sub
     
    'ErrHandler:
    ' L'utilisateur a sélectionné le bouton Annuler.
        'Exit Sub
     
    End Sub
    J'ai alors l'erreur 438 "Propriété ou méthode non géré par cet objet sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     commonDlg.Filter = "Fichier Excel|*.xls"
    Info supplémentaire : je suis une débutante, on ne m'a pas laisssé le choix

    [edit] Merci BWP pour ta participation Il a passé une bon partie de l'aprem à tester avec moi! [/edit]

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Comprends pas !
    il semble que ton composant commondialog a un problème !
    Tu ne veux pas le remplacer par une api efficace ? Je te fais ça, si tu veux ...(avec un résultat garanti : même aspect et tout et tout...et, en plus, indépendance totale...)
    Tu dis !

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    si tu clique avec bouton droit sur la variable commonDlg.. de façon à avoir menu contextuel puis tu chois InfoExpress ou InfoParamétre et tu nous dis les résultats..

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par bbil
    si tu clique avec bouton droit sur la variable commonDlg.. de façon à avoir menu contextuel puis tu chois InfoExpress ou InfoParamétre et tu nous dis les résultats..
    juste pour ma culture personelle ... le menu contextuel il n'existe pas sous Access 2000 ..?

  9. #9
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    la y'a un truc qui m'échappe

    Dèjà, est-ce qu'on parle de VB6 ou d'Access ?

    Ensuite le code fonctionne très bien sous VB6

    vous pouvez mettre le code complet en piece jointe, car à mon avis, y'a autre chose qui cloche

    on va pas mettre 2km de fonctions API, parce qu'un commondialog est récalcitrant

  10. #10
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je n'ai pas testé pour provoquer l'erreur mais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        commonDlg.Filter = "Fichier Excel|*.xls"
        commonDlg.filterIndex = 2
    me tracasse.

    Tu n'as qu'un filtre et tu demandes l'index 2 des filtres...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  11. #11
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Citation Envoyé par AlainTech
    Je n'ai pas testé pour provoquer l'erreur mais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        commonDlg.Filter = "Fichier Excel|*.xls"
        commonDlg.filterIndex = 2
    me tracasse.

    Tu n'as qu'un filtre et tu demandes l'index 2 des filtres...
    Exact, mais ce n'est pas sa qui pose problème car au niveau du debugueur, il s'arrete sur le premier commonDlg, cad commonDlg.Filter = "Fichier Excel|*.xls". Il ne passe pas sur commonDlg.filterIndex ...

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Je reviens avec ma proposition : par API, en parfaite indépendance et sans faille !
    Te fais cela au retour du restaurant si tu veux !

  13. #13
    Membre Expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Par défaut
    Citation Envoyé par jmfmarques
    Je reviens avec ma proposition : par API, en parfaite indépendance et sans faille !
    Te fais cela au retour du restaurant si tu veux !
    Propose le code on testera

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    OK !
    me voilà de retour (c'était bon)
    Trente minutes de préparation et j'envoie

  15. #15
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Oui, en relisant, je m'en suis rendu compte.

    Juste pour être certain qu'on s'adresse au bon composant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.commonDlg.Filter = "Fichier Excel|*.xls"
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  16. #16
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Voilà pourquoi j'avais écrit:
    Citation Envoyé par AlainTech
    Juste pour être certain qu'on s'adresse au bon composant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.commonDlg.Filter = "Fichier Excel|*.xls"
    Le fait de taper Me. dans l'éditeur permet de voir si le CommonDialog est présent sur le form contenant le code.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Par défaut
    Re à tous,
    tout d'abord merci pour toutes ces réponses! un problème de connexion internet m'a empêché de venir ce week-end, donc désolée pour mon silence.

    Je vais essayer les différentes choses que vous m'avez conseillé. Par contre, de là à changer tout le code du formulaire ... en tout cas jmfmarques merci pour le temps que tu as consacré à mon programme.

    Je reviens vous donner des nouvelles dès que j'ai un café dans l'estomac

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

Discussions similaires

  1. [VBa-E] Problème de "CommonDialog" ?
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/07/2006, 13h57
  2. [VBA-E] Où se trouve les CommonDialog ?
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2006, 11h55
  3. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19
  4. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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