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éder depuis un PC A à un dossier sur un PC B


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut Accéder depuis un PC A à un dossier sur un PC B
    Bonjour,
    Je ne parviens pas à réaliser ce que je définis dans l'intitulé.
    Avant d'y accéder, je contrôle depuis A, l'existence du dossier sur B (A & B sont sur le même réseau domestique), par ce code :
    (Pour information, le dossier existe bien sur B)

    Sub proc1
    msgbox DossierExiste("\\PC_B\Dossier_B")
    End sub

    Sub DossierExiste(NomDossier as String) as Boolean
    DossierExiste = Dir(NomDossier, vbSystem + vbDirectory + vbHidden)
    end sub

    En retour, j'obtiens une Erreur d'exécution 13 - Incompatibilité de type

    Sauriez vous m'aider ?
    Je vous en remercie par avance
    Kirtap

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    et avec un \ à la fin de la chaîne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox DossierExiste("\\PC_B\Dossier_B\")
    ou alors faire un montage par mklink.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Merci de votre suggestion.
    Concernant la ponctuation, je pense avoir tout essayé ... mais non, même avec un '\' en fin ça ne fonctionne pas ....
    Depuis A, j'ai accédé manuellement au dossier voulu sur B et fait un copier/coller de l'adresse de l'explorateur dans ma procédure.
    Je ne connais pas mklink (?)

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Regarde ici pour savoir comment utiliser mklink.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    merci pour le lien ...
    mais ensuite, je peux utiliser ce lien et le transposer dans ma procédure ?

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    non il faut recréer le lien par mklink sur tous les ordinateurs où il doit être utilisé.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    bonjour,
    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
    Sub proc1()
    MsgBox DossierExiste("\\PC_B\Dossier_B")
    End Sub
    Function DossierExiste(NomDossier As String) As Boolean
        ' Ignorer les erreurs et continuer l'exécution du code en cas d'erreur
        On Error Resume Next
     
        ' Accéder à l'objet FileSystemObject et au dossier spécifié
        With CreateObject("Scripting.FileSystemObject").GetFolder(NomDossier)
            ' Vérifier si une erreur s'est produite lors de l'accès au dossier
            If Err.Number = 0 Then
                ' Si aucune erreur, vérifier les attributs du dossier
                If (.Attributes And (vbSystem + vbDirectory + vbHidden)) = 0 Then
                    ' Si les attributs système, dossier et caché sont absents, le dossier existe
                    DossierExiste = True
                Else
                    ' Sinon, le dossier existe mais il possède des attributs spéciaux (système, caché, etc.)
                    DossierExiste = False
                End If
            Else
                ' Si une erreur s'est produite lors de l'accès au dossier, déclarer que le dossier n'existe pas
                DossierExiste = False
            End If
        End With
     
        ' Rétablir le comportement normal de gestion des erreurs
        On Error GoTo 0
    End Function

  8. #8
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    merci pour votre réponse ..
    c'est effectivement Function() et non pas Sub() comme écrit dans mon msg initial ... mal recopié à la main !!
    j'essaie votre code ....

  9. #9
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    c'est toujours retourné "faux" dans le cas suivant :

    Else
    ' Sinon, le dossier existe mais il possède des attributs spéciaux (système, caché, etc.)
    DossierExiste = false

    J'y accède sans difficulté via l'explorateur ...
    Très cher Windows où rien est simple !!

  10. #10
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Tu clicks sur la ligne 2 de mon code MsgBox DossierExiste, tu appuis plusieurs fois sur la touche [F8] et tu regardes part ou ça passe dans le code.

  11. #11
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    c'est ce que j'ai écrit lorsque j'exécute le code pas à pas ... !

  12. #12
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Dans ton exécution pas à pas donnes le Nº de lignes où DossierExiste = false, 15?

  13. #13
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    c'est aux lignes du code que vous proposez (citées dans msg précédent) :

    If (.Attributes And (vbSystem + vbDirectory + vbHidden)) = 0 Then
    ' Si les attributs système, dossier et caché sont absents, le dossier existe
    DossierExiste = True
    Else
    ' Sinon, le dossier existe mais il possède des attributs spéciaux (système, caché, etc.)
    DossierExiste = False
    End If

  14. #14
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    désolé pour l'inversion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If (.Attributes And (vbSystem + vbDirectory + vbHidden)) <> 0 Then
    ' Si les attributs  dossier   et (système ou caché ) sont pressants , le dossier existe

  15. #15
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut

    Ca retourne Vrai !!
    Je vais intégrer Proc & Func dans mon code principal ... qui devrait fonctionner sans pb !!
    Mais comme je ne vais le faire de suite, je laisse la discussion ouverte et vous tiendrai au courant.
    Merci
    pour votre aide !!

  16. #16
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Cela fonctionne parfaitement ! Merci !!!

  17. #17
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Bonjour,
    A ton service

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/02/2023, 21h00
  2. Accéder à un dossier sur un serveur depuis android
    Par planeurbret dans le forum Windev Mobile
    Réponses: 19
    Dernier message: 28/11/2019, 16h39
  3. Réponses: 2
    Dernier message: 11/09/2018, 08h19
  4. Création dossier sur serveur depuis un autre serveur
    Par smartnouse dans le forum Administration
    Réponses: 0
    Dernier message: 30/08/2013, 12h55
  5. Créer un dossier sur serveur distant
    Par TorÕ02 dans le forum C++
    Réponses: 7
    Dernier message: 11/10/2004, 17h30

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