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 :

Accès à un dossier partagé sur réseau en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Accès à un dossier partagé sur réseau en VBA
    Bonjour,
    Je n'arrive tout simplement pas à faire fonctionner ce code. Quelqu'un a une idée de ce qui pourrait bien être la cause?

    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
    Public Sub TestNetShareName()
     
        Dim NetworkObject As Object
        Dim FSO As Object
        Dim Directory As Object
        Dim Filename As Object
        Dim ServerShare As String
        Dim UserName As String
        Dim Password As String
     
        ServerShare = "\\corp-server\HostingFolder"
        UserName = "mydomain\myuser"
        Password = "freddie123"
     
        Set NetworkObject = CreateObject("WScript.Network")
        Set FSO = CreateObject("Scripting.FileSystemObject")
     
        NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password
     
        Set Directory = FSO.GetFolder(ServerShare)
        For Each Filename In Directory.Files
            Debug.Print Filename.Name
        Next
     
        Set Filename = Nothing
        Set Directory = Nothing
        Set FSO = Nothing
     
        NetworkObject.RemoveNetworkDrive ServerShare, True, False
     
        Set NetworkObject = Nothing
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Qu'est-ce qui ne fonctionne pas exactement ?
    Est-ce qu'il y a un message d'erreur ? si oui, lequel ?
    Est-ce que c'est vraiment un dossier accessible seulement par mot de passe ?

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 167
    Points
    10 167
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je n'ai pas essayé avec Excel, mais, on dirait un programmeur VB.NET qui s'essaie à la programmation en VBA. En principe, VBA ne connaît pas le type Object. Essaie avec Variant à la place de Object.

    Sinon, les questions de Parmi sont pleines de sens. Également, mentionner à quelle ligne tu ramasse une erreur.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For I = 4 To 26
       If fso.DriveExists(Chr(64 + I) & ":") = False Then l = Chr(64 + I) & ":": Exit For
    Next
    NetworkObject.MapNetworkDrive l, ServerShare, False, UserName, Password
     NetworkObject.RemoveNetworkDrive l, True, False
    Dernière modification par Invité ; 29/04/2015 à 09h13.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci à tous pour avoir pris le temps de me répondre.

    Désolée, j'aurais dû mettre plus de détails. Les voici:
    La ligne qui bloque est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Filename In Directory.Files
    Quand je regarde dans la fenêtre des variables, Directory est vide. Je pense donc que pour une raison ou une autre la ligne précédente de fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Directory = FSO.GetFolder(ServerShare)
    Le message d'erreur sur mon ordinateur est : Erreur d'exécution 70, permission refusée. Pourtant j'ai bel et bien accès à ce dossier: je peux l'ouvrir et enregistrer des fichiers dedans. J'ai aussi demandé à un collègue d'essayer le code de son ordinateur parce que c'est ce que j'essaie de faire: donner accès à un dossier partagé sur un réseau à quelqu'un qui n'a pas accès en utilisant mon nom d'utilisateur et mon mot de passe. J'ai accès au dossier partagé sans utiliser de mot de passe: j'utilise mon nom d'utilisateur et mon mot de passe seulement pour entrer dans mon poste de travail, mais une fois ceci fait, j'ai l'accès direct sans mot de passe au dossier partagé. Par contre, les autres utilisateurs n'ont pas l'accès et on aimerait ne pas leur donner accès au dossier en entier, mais seulement à la base de données en passant par le code. De l'ordinateur de mon collègue, le message d'erreur est : Erreur d'exécution -2147024843 (80070035): The network path was not found.

    clementmarcotte: suite à ton commentaire, j'ai changé le type des variables en variant au lieu de Object.

    rdurupt : j'ai mis ton code dans ma macro et la variable l prend la valeur "E:" dans la fenêtre de variables. Je ne comprends pas parce que la lettre associée à mon dossier est "G:" et je suis sûre d'avoir bien écrit la variable ServerShare.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je recherche la première lettre libre que j'utilise pour créer un lecteur avec le password.
    Ensuite je supprime le lecteur.

    C'est cette lettre (l) qu'il faut utiliser dans ton code!
    Je pense que je me suis trompé NetworkObject.MapNetworkDrive l, ServerShare, true, UserName, Password
    Dernière modification par Invité ; 29/04/2015 à 17h20.

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci, en exécutant ton code, j'ai remarqué que le fichier partagé s'affichait dans mon ordinateur comme suit:
    HostingFolder(\\corp-server) (E:)

    J'ai donc compris que le dossier partagé qui s'affiche dans mon ordinateur comme suit:
    Mis (\\corp-server\HostingFolder) (G:)

    Ne dois pas s'écrire :
    ServerShare = "\\corp-server\HostingFolder"

    Mais bien:
    ServerShare = "\\corp-server\HostingFolder\Mis" en suivant la même logique du résultat de ton code.

    Et ça marche sur mon ordinateur! Mais pas de l'ordinateur de mon collègue.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ton collègue a-t-il le droit de créer des connexion à des lecteurs réseau sur son pc?
    Dernière modification par AlainTech ; 25/05/2015 à 00h25.

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Oui, il a les même droits que moi, mais je ne sais pas s'il peut connecter sur mon dossier partagé avec mon nom d'utilisateur et mot de passe auquel il n'a pas accès avec son nom d'utilisateur et mot de passe. Apparemment que non étant donné que je n'ai pas réussi à le faire connecter. Dommage, ça nous aurait été bien utile.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Dans les partages tu peux gérer les droits qui peut et avec quel mot de passe
    UserName = environ("UserName") même password pour tous!

  11. #11
    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 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Lune1 Voir le message
    Oui, il a les même droits que moi, mais je ne sais pas s'il peut connecter sur mon dossier partagé avec mon nom d'utilisateur et mot de passe auquel il n'a pas accès avec son nom d'utilisateur et mot de passe. Apparemment que non étant donné que je n'ai pas réussi à le faire connecter. Dommage, ça nous aurait été bien utile.
    Bonsoir,

    ton problème semble venir du fait que tu souhaite ouvrir depuis un même session windows 2 connexions vers un serveur avec deux identifiant différent , celui de ton collègue utilisé à l'ouverture de session et le tien ensuite.. ce n'est pas possible il faut d'abords déconnecter "ton collégue" avant ..

    La solution doit-être de modifier les droits d'accès de ton répertoire partagé afin que tes collègues y ait accès ...

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci rdurupt. Je n'avais pas pensé à utilisé "Environ" et c'est vrai que c'est parfois utile, mais dans mon cas, ça n'a pas fonctionné.

    Merci bbil. Je vais demander à notre service informatique de nous faire un nouveau dossier partagé où on pourrait gérer les accès. J'essayais de trouver une autre solution parce qu'il est probable qu'ils refusent : ils préfèrent qu'on utilise Sharepoint, mais parfois Sharepoint ne rencontre pas nos besoins dû à des problèmes de lenteur. Merci pour la clarification. Je sais maintenant à quoi m'en tenir et je pourrai apporter ce point à notre prochaine réunion d'équipe.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/10/2011, 16h10
  2. Réponses: 0
    Dernier message: 31/05/2011, 10h01
  3. Dossier partagé sur le réseau
    Par ziz2005 dans le forum Windows XP
    Réponses: 1
    Dernier message: 30/05/2009, 23h24
  4. A un dossier partagé sur le Serveur 2003 à partir d'un poste Win 98
    Par digital prophecy dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 26/06/2006, 16h15
  5. Sécuriser une application Access partagé sur réseau
    Par hnb2003 dans le forum Sécurité
    Réponses: 2
    Dernier message: 16/03/2006, 18h10

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