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 :

[VBA] Utilisation API FindWindows


Sujet :

VBA

  1. #1
    En attente de confirmation mail
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Bazoom
    Ajoute cette déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    ... et remplace ensuite ton instruction par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      MsgBox SelectFolder("Sélectionnez un répertoire :", _
        FindWindow(vbNullString, Application.Caption))
    Bonne chance.

    Je comprends pas... Où mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    parce que moi ca ne marche pas...
    Idir

  2. #2
    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 543
    Points
    15 543
    Par défaut
    Puisqu'il faut tout te dire...
    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
    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
    Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) 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
     
     
    Sub ChoisirUnRépertoire()
      MsgBox SelectFolder("Sélectionnez un répertoire :", _
        FindWindow(vbNullString, Application.Caption))
    End Sub
    Suffit de tout mettre dans l'ordre... mais pour ça faut être ordonné

  3. #3
    En attente de confirmation mail
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 21
    Points
    21
    Par défaut
    Je suis très désordonné, il est très vrai. Mais ou serait le challenge si j'étais très ordonné.

    Mais étant désordonné, je te promets que j'ai copié ton code et voila le message d'erreur:

    Erreur de compilation

    Des constantes, chaines de longueur fixe, tableaux, types prédéfinis par l'utilisateur et Instruction Declare ne sont pas autorisés comme membres Public de modules d'objet

    Et tout ceci à cause de ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Donc je ne sais pas....

  4. #4
    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 543
    Points
    15 543
    Par défaut
    Te manque une référence. Je regarde si je trouve laquelle. Mais jète un oeil dans Outils -> Références, dans l'éditeur VB. Si tu en trouve une marquée "MANQUANT" alors... c'est qu'elle manque

    Peut-être "Microsoft Excel 10.0 Object library"

  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 038
    Points
    20 038

  6. #6
    En attente de confirmation mail
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 21
    Points
    21
    Par défaut
    Je vous remercie pour vos réponses.
    Ca marche pas encore mais je pense qu'après quelques petits verres, ca s'arrangera...

Discussions similaires

  1. Utilisation API COM VBA ->DELPHI
    Par nicola40 dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 17/01/2013, 15h44
  2. [VBA] utilisation de thread
    Par nemesys971 dans le forum VBA Access
    Réponses: 19
    Dernier message: 10/10/2008, 10h49
  3. [API-VBA]utilisation API Printer
    Par Alexandre Sahli dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/03/2007, 13h24
  4. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 15h08
  5. [VBA] DLL -API
    Par Ric500 dans le forum Access
    Réponses: 1
    Dernier message: 20/10/2005, 15h50

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