Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2007, 16h20   #1
Nouveau Membre du Club
 
Avatar de Paloma
 
Inscription : juin 2006
Messages : 186
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 186
Points : 37
Points : 37
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.
__________________
Cordialement,
Paloma



Pensez au
Paloma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 16h28   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 776
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 776
Points : 16 858
Points : 16 858
Envoyer un message via Skype™ à bbil
et c'est quoi le ménage... ? tu as supprimé une installation de VB..?
puis de qu'elle option parle tu ...? référence...?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 16h56   #3
Nouveau Membre du Club
 
Avatar de Paloma
 
Inscription : juin 2006
Messages : 186
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 186
Points : 37
Points : 37
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 ...
__________________
Cordialement,
Paloma



Pensez au
Paloma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 17h18   #4
Nouveau Membre du Club
 
Avatar de Paloma
 
Inscription : juin 2006
Messages : 186
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 186
Points : 37
Points : 37
Voici une copie d'écran de mon message d'erreur :


et le code qui plante :

Code :
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 :
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?
__________________
Cordialement,
Paloma



Pensez au
Paloma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 18h33   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 776
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 776
Points : 16 858
Points : 16 858
Envoyer un message via Skype™ à bbil
et d'ou sort ce
Caption ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 19h19   #6
Nouveau Membre du Club
 
Avatar de Paloma
 
Inscription : juin 2006
Messages : 186
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 186
Points : 37
Points : 37
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 :
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 :-(
__________________
Cordialement,
Paloma



Pensez au
Paloma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 19h27   #7
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 776
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 776
Points : 16 858
Points : 16 858
Envoyer un message via Skype™ à bbil
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...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 19h27   #8
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 19h55   #9
Nouveau Membre du Club
 
Avatar de Paloma
 
Inscription : juin 2006
Messages : 186
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 186
Points : 37
Points : 37
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
__________________
Cordialement,
Paloma



Pensez au
Paloma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web