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 :

Validation d'un chemin correct sous Excel Pro 2021


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Utilisateur occasionnel de MySQL
    Inscrit en
    Décembre 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Utilisateur occasionnel de MySQL

    Informations forums :
    Inscription : Décembre 2017
    Messages : 49
    Par défaut Validation d'un chemin correct sous Excel Pro 2021
    Bonjour,

    Je viens de créer une macro Excel pour écrire et enregistrer une macro dans un format texte interprétable par ImageJ (logiciel de traitements photos) où les utilisateurs doivent renseigner divers chemins sur leurs disques de stockage, dont un premier qui indique le dossier des photos à traiter, puis un deuxième chemin où seront stockés les photos une fois le traitement réalisé.

    En amont du lancement de la macro Excel, je désire vérifier la validité des deux chemins renseignés avec ces lignes de code. Par exemple, le chemin d'enregistrement est renseigné dans la cellule H4 de la feuille Choix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim fDir$
     
    Sheets("Choix").Range("H4").Value = fDir
     
    If Not (Len(Dir(fDir)) > 0) Then
     
    MsgBox "Le chemin des photos traitées est incorrect"
     
    Exit Sub
     
    End If
    Dans le dossier des photos à traiter avec présence de fichiers, ces mêmes lignes de code alertent avec le message si le chemin renseigné n'aboutit pas (erreur de saisie) et ne renvoient pas de message si le chemin est correct.

    Par contre ce n'est pas le cas pour le dossier d'enregistrement. Quand celui-ci ne contient aucun fichier, le message d'erreur sort quand bien même le chemin soit correct, par contre s'il y a présence d'un fichier dans le dossier, le chemin est validé.

    Existe t-il une autre façon de contrôler qu'un chemin est valide quand le dossier cible est vide ?, sachant que les noms de ces dossiers sont différents suivant les organisations de stockage des utilisateurs. Par exemple la syntaxe des chemins ressemble à cette forme : D:\Traitements\traites\

    Avec mes remerciements

    Bernard

  2. #2
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 509
    Par défaut
    Salut,
    C'est le contraire que tu dois faire..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Dim fDir As String
        fDir = ThisWorkbook.Worksheets.Item("Choix").Range("H4").Value
     
        If Dir(fDir, vbNormal) = vbNullString Then
            ThisWorkbook.Worksheets.Item("Choix").Range("H4").Select
            MsgBox "Le chemin des photos traitées est incorrect"
        End If
    Je t'invite à lire la documentation de Microsoft sur la fonction Dir : Fonction Dir (Visual Basic pour Applications) | Microsoft Learn

  3. #3
    Membre averti
    Homme Profil pro
    Utilisateur occasionnel de MySQL
    Inscrit en
    Décembre 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Utilisateur occasionnel de MySQL

    Informations forums :
    Inscription : Décembre 2017
    Messages : 49
    Par défaut
    Bonjour Valtrase,

    Je te remercie de ta réponse, je viens de tester les lignes de code que tu me proposes dans cette macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test()
     
    Dim fDir As String
        fDir = ThisWorkbook.Worksheets.Item("Choix").Range("H4").Value
     
        If Dir(fDir, vbNormal) = vbNullString Then
            ThisWorkbook.Worksheets.Item("Choix").Range("H4").Select
            MsgBox "Le chemin des photos traitées est incorrect"
        End If
     
    End Sub
    Quand je la lance, j'ai le message d'erreur qui sort alors que le chemin est correct, le dossier cible est vide

    J'ai regardé la page Microsoft indiquée en lien, en remplaçant vbNormal par vbDirectory le test de la présence d'un chemin correct fonctionne avec un dossier cible vide

    Bernard

  4. #4
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 509
    Par défaut
    Re,
    Vous avez du lire entre les lignes. désolé pour la pique...
    Edit: il est vrai que j'ai repris votre code et qu'il était question de répertoire.

    on ne teste pas la présence d'un fichier dans un répertoire de la même façon que l'on teste l'existence d'un répertoire lui même.
    Si l'on veux tester la presence d'un fichier c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dir ("C:\toto\toto.png",vbNormal)
    et si l'on veux tester la présence d'un répertoire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dir ("C:\toto",vbDirectory)

  5. #5
    Membre averti
    Homme Profil pro
    Utilisateur occasionnel de MySQL
    Inscrit en
    Décembre 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Utilisateur occasionnel de MySQL

    Informations forums :
    Inscription : Décembre 2017
    Messages : 49
    Par défaut
    Bonjour Valtrase,

    Après ma première réponse, en reprenant les attributs de ce code, je me suis effectivement rendu compte qu'il y avait vbDirectory qui validait ce chemin sans fichier cible, j'ai modifié ma réponse trois minutes avant la tienne .

    Encore merci et bon week-end

    Bernard

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/05/2019, 16h20
  2. Réponses: 0
    Dernier message: 13/05/2013, 16h21
  3. [WD-2010] Prob liaison Word Excel 2010 sous W7 pro
    Par daniel 82 dans le forum Word
    Réponses: 4
    Dernier message: 30/01/2011, 20h50
  4. [XL-2007] Création de macro "validation" sous Excel
    Par gams64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/11/2009, 22h35
  5. [AC-2007] Export PivotTable vers Excel sous XP Pro 64
    Par TTAFR dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 10/08/2009, 15h39

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