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 d'un répertoire via VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut Ouverture d'un répertoire via VBA
    Bonjour à tous,

    Je rencontre un problème avec un code VBA.

    Je souhaite ouvrir un dossier via un bouton sur Excel. Le dossier en question est sur un lecteur réseau.

    J'ai utilisé plusieurs codes dont les deux ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub ouvrirdossier1()
    ChDir "\\nomserveur\dossier_a_ouvrir\"
    Application.GetOpenFilename
    End Sub
    ou celui-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub ouvrirdossier2()
    Dim Rep As String
    Rep = "\\nomseveur\dossier_a_ouvrir" 'Chemin et répertoire à ouvrir
    If Dir(Rep, vbDirectory) <> "" Then
    Application.Dialogs(xlDialogOpen).Show Rep
    Else
    MsgBox "Chemin introuvable"
    End If
    End Sub
    Le code ne trouve pas le dossier cité.

    Quelqu'un aurait il la solution pour ce cas?

    Par avance merci.

    Zielite

  2. #2
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    pour exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
     
    Const SW_SHOWNORMAL = 1
    Sub OuvrirDossiers()
    Dim Chemin As String
     
        Chemin = "\\nomserveur\dossier_a_ouvrir\"
        ShellExecute 0, "explore", Chemin, "", "", 10
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut
    Merci pour la réponse mais un message d'erreur apparait:

    Erreur de compilation

    Seuls des commentaires peuvent apparaitre après End Sub, End fonction, ou End property.

    Je suis un newbie mais je pense qu'il faut que j'appelle la procédure "Declare function"

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    l'idée de lucasgaetan est de voir si le système à accès au dossier,
    le plus serait de tester la valeur retournée en cas de succès avec un dossier sur un disque dur local (42 de mon côté)
    puis de tester le dossier réseau, code à copier dans un nouveau module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Declare Function ShellExecuteA& Lib "shell32.dll" (ByVal hwnd&, ByVal lpOperation$, _
                       ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&)
     
    Sub Explorer()
        Dossier$ = "\\nomserveur\dossier\"
     
        If ShellExecuteA(0, "explore", Dossier, "", "", 10) <> 42 Then _
            MsgBox "Pas d'accès à " & Dossier, vbCritical
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut
    Merci Marc

    VBA me renvoi toujours le même message d'erreur:

    Erreur de compilation
    "Seuls des commentaires peuvent apparaitre après End Sub, End fonction, ou End property."

    Il n'arrive pas à lire la fonction Private Declare function

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Le code initial comme le mien fonctionnant sans souci de mon côté sur plusieurs ordinateurs et différentes versions d'Excel,
    j'en déduis ma directive quant à la copie du code n'a pas été suivie !

    Et le message d'erreur est pourtant clair !

  7. #7
    Membre confirmé
    Homme Profil pro
    Chef d'exploitation
    Inscrit en
    Juillet 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 57
    Par défaut
    J'ai compris mon erreur, j'ai mis les paramètres Function en début de macro et cela fonctionne maintentant.

    Merci à tous les deux.
    A+
    Zi

  8. #8
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    pour vérifier ton chemin tu peux bidouiller comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chemin = ThisWorkbook.Path
    MsgBox Chemin , vbOk

  9. #9
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Citation Envoyé par zielite Voir le message
    Merci pour la réponse mais un message d'erreur apparait:

    Erreur de compilation

    Seuls des commentaires peuvent apparaitre après End Sub, End fonction, ou End property.

    Je suis un newbie mais je pense qu'il faut que j'appelle la procédure "Declare function"
    Bonjour,

    Tout ce qui est Declare Function à mettre en tête de module, pas à copier à la suite d'un code !

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

Discussions similaires

  1. [XL-2013] Ouverture d'un dossier via vba
    Par Patouillou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/05/2015, 11h56
  2. [Toutes versions] Ouverture et recupere information de pages web Via VBA Excel
    Par kocipia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/01/2011, 12h36
  3. [AC-2000] ouverture d'un fichier PDF via VBA
    Par etoileetoile dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/10/2009, 21h06
  4. Import d'une table temp et ouverture formulaire via VBA
    Par Access_ible dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/09/2009, 11h44
  5. [AC-2007] Ouverture d'une requête via VBA
    Par Oliv'83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/06/2009, 14h50

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