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 :

ouverture dossier windows avec code vba [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut ouverture dossier windows avec code vba
    bonjour

    quel code me conseillez-vous pour l'ouverture d'un dossier avec explorateur Windows avec un code vba avec position de la fenêtre et les dimensions ?

    merci d'avance

  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
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour

    le code fonctionne sans redimensionner la fenêtre et sans erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function OuvrirFichier2(MonFichier As String)
    'par Excel-Malin.com ( https://excel-malin.com )
    Dim vl_procId
        vl_procId = Shell("C:\windows\explorer.exe " & MonFichier, vbNormalFocus)
        retval = vl_procId
        largeur = GetSystemMetrics32(0)
    hauteur = GetSystemMetrics32(1)
     
     
        MoveWindow FindWindow(vbNullString, vl_procId.locationname), 0, ((hauteur / 4 * 3) - 50), largeur, hauteur / 4, True
    End Function
    avez vous une idée de mon problème ?

    merci d'avance

  4. #4
    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
    re
    les declarations d'api elles sont ou ?

    bon te casse pas la tete j'ai retrouvé la mienne j'y ai fait l'adaptation a ton souhait
    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
    '*********************************************************************
    'fonction pour ouvrir un dossier l'explorateur en placant et dimentionnant la fenetre
    'auteur:patricktoulon Developpez.com
    'ouvrir un dossier dans l'explorer et placer et dimentionner la fenetre
    '*********************************************************************
    '
    Declare Function MoveWindow Lib "user32" (ByVal hWnd As Long, ByVal X As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    '
    '
    Public Function Ouverture_Dossier(Mondossier As String)
        Dim X&, Lcaption$
        With CreateObject("shell.application")    'creation de l'object shell.application
            X = .Windows.Count    'récuperation du count des fenetres eventuellement deja ouvertes
            Shell "C:\windows\explorer.exe " & Mondossier, vbNormalFocus    'ouverture du  dossier dans  l'explorer avec shell
            Do: DoEvents: Loop Until .Windows.Count > X:    'gestion d 'attente d'ouverture complete de l'explorateur le count augmente donc de 1
            Lcaption = .Windows(.Windows.Count - 1).locationname    'determine la caption$ de la fenetre
        End With
        'deplacement de la fenetre
        MoveWindow FindWindow(vbNullString, Lcaption), 0, ((GetSystemMetrics(1) / 4 * 3) - 50), GetSystemMetrics(0), GetSystemMetrics(1) / 4, True
    End Function
    '
    Sub test()
        Ouverture_Dossier "C:\Users\polux\DeskTop"
    End Sub
    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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour

    merci pour le code il fonction très bien

    les déclarations d'api elles sont ou ?
    je l'ai pas mis pour les prochaines fois je les métrai

    peut ton récupéré la position et les dimension des fenêtre ouvert par vba et modifier a notre guise ?


    merci d'avance

  6. #6
    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
    re
    oui tu peux recupérer les dimemtions avec l'api getwindowrect par exemple

    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
    Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long,lpRect As RECT) As Long 
     
    Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
     
    sub truc()
    Dim r As RECT
    retour=GetWindowRect(hwnd, r)
    ' Affiche la position Haut/Gauche de la fenêtre
    MsgBox "Gauche : " & r.Left & ", Haut: " & r.Top, vbOK, "Position fenêtre"
    end sub
    le bottom - le top c'est le height
    le rigth-le left c'est le width
    le hwnd c'est le handle
    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

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

Discussions similaires

  1. [AC-2010] Code copie et renomme un dossier Windows avec valeur d'un champ.
    Par doublem93 dans le forum VBA Access
    Réponses: 6
    Dernier message: 19/11/2016, 13h15
  2. [AC-2010] Imprimer formulaire avec code Vba
    Par emilie27 dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/03/2012, 15h06
  3. [AC-2003] Bloquer les données avec code vba
    Par demichoux dans le forum VBA Access
    Réponses: 12
    Dernier message: 01/03/2011, 16h05
  4. [AC-2002] requête de mise à jour avec code VBA
    Par sylvie dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/05/2010, 13h56
  5. Ouverture fichier openoffice avec macro VBA
    Par Christian Lo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/08/2008, 05h48

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