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 :

Agrandir une fenêtre de dossier depuis Excel [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Agrandir une fenêtre de dossier depuis Excel
    Bonjour le Forum,

    Depuis Excel, j'ouvre une fenêtre de dossiers.
    Je souhaite que celle-ci s'affiche en plein écran

    Mais mon code est vain quant à l'affichage plein écran

    Le voici

    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
    Declare Function GetActiveWindow Lib "user32" () As Long
    Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
    Public Sub Ouvrir_exports(Optional ch_exports As String)
     
    Dim Chemin As String
     
    Debug.Print Len(ch_exports) = 0
     
    Chemin = "monrépertoiresurlelecteuR"
    'Debug.Print Chemin
    ThisWorkbook.FollowHyperlink Chemin, NewWindow:=True
     
    Call agrandit_fenetre
     
    End Sub
     
    Sub agrandit_fenetre()
    Call ShowWindow(GetActiveWindow(), 3)
    End Sub
    Par avance, je vous remercie pour votre concours.

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour marcel

    si j'ai bien compris c'est une fenêtre de l'explorateur Windows que tu veux maximizer ????
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Patrick,

    Merci beaucoup pour ton retour.

    Cela dit, j'ai continué à chercher.
    Peut-être une voie

    J'ai trouvé ce code sur autre site :

    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
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
     (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
     Declare Function SetForegroundWindow Lib "user32" _
     (ByVal hwnd As Long) As Long
     Declare Function ShowWindow Lib "user32" _
     (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
     ' ShowWindow() Commands
     Public Const SW_HIDE = 0
     Public Const SW_SHOWNORMAL = 1
     Public Const SW_NORMAL = 1
     Public Const SW_SHOWMINIMIZED = 2
     Public Const SW_SHOWMAXIMIZED = 3
     Public Const SW_MAXIMIZE = 3
     Public Const SW_SHOWNOACTIVATE = 4
     Public Const SW_SHOW = 5
     Public Const SW_MINIMIZE = 6
     Public Const SW_SHOWMINNOACTIVE = 7
     Public Const SW_SHOWNA = 8
     Public Const SW_RESTORE = 9
     Public Const SW_SHOWDEFAULT = 10
     Public Const SW_MAX = 10
     '-----------------------------------
     
     Sub essai_chemin()
     Call Activer_chemin("lechemindudossier")
     End Sub
     
     Sub Activer_chemin(chemin As String)
     
     Dim hwnd As Long
     
     ThisWorkbook.FollowHyperlink chemin, NewWindow:=True
     hwnd = FindWindow(vbNullString, chemin)
     
     If hwnd = 0 Then Exit Sub
     SetForegroundWindow hwnd
     ShowWindow hwnd, SW_SHOWMAXIMIZED
     End Sub
    Une question parallèle : Existe-t-il des livres VBA Excel Pro (ce qui ne veut pas dire grand chose pour moi, j'en conviens)

    Un grand merci.

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Après redémarrage de mon poste de travail;
    Le code que je crois avoir trouvé n'est plus efficace.

    Bon week-end à tous.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    et oui c'est pas aussi simple

    en fait il faut chercher la fenetre pour cela tu a besoins de plusieures APIS

    allez teste mais remet ta sub export car moi je l'ai moifié

    j'ai mis plein de commentaires
    je pense que c'est assez facile a comprendre
    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
    Option Explicit
    'Declare Function GetActiveWindow Lib "user32" () As Long    'on ne s'en sert plus elle fonctionne correctement qu'avec les userform dans l'application excel depuis les system 64 bits
    'MODIFIE LAFFICHAGE DE LA FENETRE  3 POUR PLEIN ECRAN
    Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
    'pour capter le handle de la fenetre  ON NE S EN SERT PAS DANS CET EXERCICE
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    ' pour determiner le texte de la caption de la fentre
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    ' POUR DETERMIBER QUELLE CLASSE A LA FENTRE  ON NE S EN SERT PAS DANS CET EXERCICE
    'Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    ' capter la fenetre suivante dans la hierarchie de l affichage c est la qui est importants dans cet exercice
    Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hWnd As Long, ByVal wFlag As Long) As Long
    'POUR CAPTER LE HANDLE DU DESKTOP QUI EST LE HANDLE 0!!!!!!!!!! on par de celui ci vers les autre avec getnextindow
    Declare Function GetDesktopWindow Lib "user32.dll" () As Long
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    'ta sub il faudra la remtre comme tu l'avais fait
    Public Sub Ouvrir_exports()
        'Application.DisplayAlerts = False
        Dim Chemin As String, zname As String
        'Debug.Print Len(ch_exports) = 0
        Chemin = "C:\Users\polux\Desktop\Nouveau dossier"
        zname = StrReverse(Split(StrReverse(Chemin), "\")(0)) 'on recupere le nom court qui est certainement le nom de la fenetre
        'Debug.Print Chemin
        ThisWorkbook.FollowHyperlink Chemin, NewWindow:=True
     
        agrandit_fenetre zname
    End Sub
     
    Public Function agrandit_fenetre(sname As String)
        Dim pointeur As Long, res As String, strBuff As String * 255
        Sleep 200 ' un laps de temps pour laisser la fentre arriver
          pointeur = GetDesktopWindow() ' on capte le hendle du desktop
        pointeur = GetNextWindow(pointeur, 5) 'on saute la taskbar qui est une fenetre aussi  et tout y cointi !!!!!
        Do
          'c'est parti!!!!!!!!!!
            DoEvents
               res = GetWindowText(pointeur, strBuff, Len(strBuff)) 'on capte le texte de la caption
               If Left(strBuff, Len(sname)) = sname Then Exit Do 'on verifie qu'il correspond  a notre titre de fenetre: si oui on sort de la boucle
            pointeur = GetNextWindow(pointeur, 2) 'on continu on descend dans la hierarchie
        Loop Until strBuff = "Progman" 'progman c'est le shelluser window il ne s'arete jamais
    'on est sorti alors soit il n'y a pas la fenetre du nom de sname  soit elle est trouver alors .....
        ShowWindow pointeur, 3 'alors voila
        End
    End Function
    Nom : demoingto64 in-out.gif
Affichages : 760
Taille : 421,2 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Patrick, Bonjour le Forum,

    To code est parfaitement actif.
    Je n'y connais rien dans ce genre de développement.
    Dès que possible, je regarderai tes interventions.
    Sinon, comme je l'ai demandé, s'il existait une livre de référence qui vulgariserait ce genre de notion, alors je serais volontiers preneur.

    Un grand merci.

    Discussion résolue.

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

Discussions similaires

  1. importer une liste de distribution depuis excel
    Par gvajoker dans le forum Outlook
    Réponses: 3
    Dernier message: 12/08/2007, 08h49
  2. Connection à une base de données depuis excell
    Par snooopy007 dans le forum Access
    Réponses: 1
    Dernier message: 14/07/2006, 21h30
  3. [VBA-E][DEBUTANT] Agrandir une fenêtre classeur Excel
    Par skual dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2006, 15h18
  4. coller une plage dans word depuis excel
    Par tarmin dans le forum VBA Word
    Réponses: 7
    Dernier message: 18/01/2006, 10h16
  5. sauver une picture en gif depuis excel avec Visual baisi
    Par cada01a dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/11/2005, 19h58

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