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 Discussion :

Microsoft Common Dialog Control V6.0


Sujet :

VBA

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Microsoft Common Dialog Control V6.0
    Bonjour,

    J’ai fini mon contrat chez mon employeur ce soir et je pars au chômage.

    Mon problème est que j'ai réalisé un outil en VBA sous Excel mais depuis que j'ai fait le ménage sur ma machine, l'option ne reste pas coché même si je sauvegarde mon fichier Excel.

    Pouvez-vous m'aider?

    J'aimerais partir en leur laissant une version propre.

    Merci d'avance.

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    et c'est quoi le ménage... ? tu as supprimé une installation de VB..?
    puis de qu'elle option parle tu ...? référence...?

  3. #3
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Oups désolé bbil,

    En fait je l'avais mis seulement dans le titre

    Donc, j'ai un soucis avec Microsoft common dialog V6.0, enfin je pense.

    et les dll comdlg32.dll et COMDLG32.OCX.

    je n'ai pas la version complète de visual basic 6 mais seulement "vba Excel".

    Le problème est identique pour les outils CATIA qui sont développé avec "vba CATIA"

    Il semblerait qu'ils ont été désinstallé avec autre chose ...

    Enfin, c'est galère, je ne sais pas comment garder tout ça au propre ...

  4. #4
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Voici une copie d'écran de mon message d'erreur :


    et le code qui plante :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Public Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End Type
     
    Const GWL_STYLE = (-16)
    Const WS_CAPTION = &HC00000
    Const SWP_FRAMECHANGED = &H20
     
    Public Declare Function FindWindowA Lib "user32" _
            (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
     
    Public Declare Function GetWindowRect Lib "user32" _
            (ByVal hwnd As Long, lpRect As RECT) As Long
     
    Public Declare Function GetWindowLong Lib "user32" Alias _
            "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
     
    Public Declare Function SetWindowLong Lib "user32" Alias _
            "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
            ByVal dwNewLong As Long) As Long
     
    Public Declare Function SetWindowPos Lib "user32" _
            (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
            ByVal y As Long, ByVal cx As Long, ByVal cy As Long, _
            ByVal wFlags As Long) As Long
     
     
    Sub AfficheTitleBarre(sCpation As String, pbVisible As Boolean)
    Dim vrWin As RECT
    Dim style As Long
    Dim lHwnd As Long
    '- Recherche du handle de la fenêtre par son Caption
        lHwnd = FindWindowA(vbNullString, sCpation)
        If lHwnd = 0 Then
            MsgBox "Handle de " & Caption & " Introuvable", vbCritical
            Exit Sub
        End If
     
        GetWindowRect lHwnd, vrWin
        style = GetWindowLong(lHwnd, GWL_STYLE)
        If pbVisible Then
            SetWindowLong lHwnd, GWL_STYLE, style Or WS_CAPTION
        Else
            SetWindowLong lHwnd, GWL_STYLE, style And Not WS_CAPTION
        End If
        SetWindowPos lHwnd, 0, vrWin.Left, vrWin.Top, vrWin.Right - vrWin.Left, _
                vrWin.Bottom - vrWin.Top, SWP_FRAMECHANGED
    End Sub
    il plante ici : (extrait du code ci-dessus)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub AfficheTitleBarre(sCpation As String, pbVisible As Boolean)
    Dim vrWin As RECT
    Dim style As Long
    Dim lHwnd As Long
    '- Recherche du handle de la fenêtre par son Caption
        lHwnd = FindWindowA(vbNullString, sCpation)
        If lHwnd = 0 Then
            MsgBox "Handle de " & Caption & " Introuvable", vbCritical
            Exit Sub
        End If
    Voilà comment j'utilise la dll :



    et comment je la sélectionne :



    Qu'est-ce qui peut être la cause de mon problème?

  5. #5
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    et d'ou sort ce
    Caption ?

  6. #6
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bonsoir bbil,

    merci pour ton aide.

    Je suis au regret de ne pouvoir t'en dire plus.
    En fait j'ai récupéreé ce code sur un forum, surement ici et il y avait marqué que celui-ci permettait d'utiliser les options (la bibliothèque cmdg) windows pour ouvrir/ciblé un répertoire ...

    Je ne me souvient ou je l'ai trouvé. Par contre, j'ai oublié de fournir le code que j'ai placé sur un bouton qui sert à sélectionner un répertoire :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
     
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
        ByVal lpBuffer As String) As Long
    Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
        ByVal lpString2 As String) As Long
     
    Private Type BrowseInfo
        hWndOwner As Long
        pIDLRoot As Long
        pszDisplayName As Long
        lpszTitle As Long
         ulFlags As Long
        lpfnCallback As Long
        lParam As Long
        iImage As Long
    End Type
     
    Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
     
     
    Public Function SelectFolder(Titre As String, Handle As Long) As String
     
    Dim lpIDList As Long
    Dim strBuffer As String
    Dim strTitre As String
    Dim tBrowseInfo As BrowseInfo
     
    strTitre = Titre
    With tBrowseInfo
        .hWndOwner = Handle
        .lpszTitle = lstrcat(strTitre, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
    End With
     
    lpIDList = SHBrowseForFolder(tBrowseInfo)
     
    If (lpIDList) Then
        strBuffer = String(260, vbNullChar)
        SHGetPathFromIDList lpIDList, strBuffer
        SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
    End If
     
    End Function
    je prépare une petite vidéo que je poste d'ici 5 min.
    En fait chez moi le fichier fonctionne trés bien ;-)


    et voilà :

    http://patrick.dubernet.free.fr/Files/CATIA/outil.avi
    Donc mon ancien pc (au boulot) lui ne le lance plus :-(

  7. #7
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    je pense que tu mélange un peu tout.... le dernier code que tu nous montre n'as pas besoin de command dialog... ..

    pour ton message d'erreur ... remplace caption ... variable qui as du être renommé lors d'un copier/coller malheureux.. par sCpation, utilis é plus haut et qui semble plus approprié... jette une oeil (au boulot si tu y retourne ) dans les références de ton projet voir s'il y en as pas une qui est marqué "ABSENTE" ... références que tu aurai pu perdre lors de la désinstallation malheureuse d'un logiciel...

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu avais VB6 sur ton poste ? Il est possible que certain dll n'existent pas sur Office, or Common dialog n'est-il pas une instruction d'un dll VB6
    (désolé si je dis une c...ie mais je n'ai plus fait de VB6 depuis trèèès longtemps)
    Juste une suggestion

  9. #9
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Merci bbil,

    je regarderais ça de toute façon car j'aimerais absolument leur laisser une version clean avec tous se dont elle a besoin pour fonctionner sur "n'importe quel PC".

    Sinon ouskel'n'or je n'ai jamais eu VB6 effectivement sur la machine du boulot, par contre j'avais visual studio 2005 express que j'ai désinstallé (choix de la direction) mais mon outil fonctionnait même aprés désinstallation de ce dernier.

    Pour ce qui est des références, j'en ai aucune de manquante d'aprés l'éditeur en tout cas.

    Bon je vais tester ça demain au boulot, de toute façon mon chef sait que je passerais deux ou trois fois pour les aider.

    @ plus

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/04/2013, 11h42
  2. [AC-2007] Common Dialog Control 6.0 missing
    Par Thierry'' dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/06/2010, 09h53
  3. MS Common Dialog Control
    Par Hydex dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/06/2007, 16h51
  4. Réponses: 5
    Dernier message: 13/09/2006, 17h47
  5. [vb 6] Common Dialog control
    Par badrel dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 21/08/2006, 14h51

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