Menu

Verifier si dossier existe début du nom (Sur MAC) [Résolu]

Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
- - Dernière réponse : Jefekoi
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
- 7 avril 2019 à 20:01
Bonjour,



Je suis Excel 16.16.8 Pour
Configuration: Macintosh


Je voudrais vérifier si un dossier existe en connaissant uniquement le début du nom du dossier

J'ai essayé ceci mais ça ne marche pas sur MAC

if Dir("/Users/eric/Desktop/TestF") & "*" = "" Then
MsgBox "Le répertoire n'existe pas"
Else
MsgBox "Le répertoire existe"
End If


Merci pour votre aide.

Eric
Afficher la suite 

Votre réponse

8 réponses

Messages postés
19825
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
16 avril 2019
5065
0
Merci
Bonjour,

Essaie plutôt cette syntaxe:
  If Dir("Macintosh HD:Users:eric:Desktop:TestF") & "*" = "" Then
    MsgBox "Le répertoire n'existe pas"
  Else
    MsgBox "Le répertoire existe"
  End If

Note: "Macintosh HD" est le nom de mon disque dur : à adapter selon son propre cas

Ritchi
Commenter la réponse de _Ritchi_
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
0
Merci
Merci pour ton aide

CA marche mais si j'indique dans vba le début d'un nom de dossier bidon (qui n'existe pas) il me dit "Le répertoire existe"

:(
Commenter la réponse de Jefekoi
Messages postés
19825
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
16 avril 2019
5065
0
Merci
Bonjour,

Si j'en crois cette page de support Microsoft Office, la fonction DIR sur Mac ne supporte pas les caractères génériques (* et ?) :
Sur Macintosh, ces caractères sont considérées comme des caractères de nom de fichier valide et ne peuvent pas être utilisés comme des caractères génériques pour spécifier plusieurs fichiers


Je t'invite à regarder les indications données par Ron de Bruin ici:
http://www.rondebruin.nl/mac.htm

Regarde notamment cette page où il parle de la macro qu'il a développé pour ressembler à Dir: http://www.rondebruin.nl/mac/mac013.htm

Quand tu auras écrit le code qui marche, j'espère que tu reviendras le donner ici afin qu'il profite aux autres personnes dans le même cas que toi.

Ritchi
Commenter la réponse de _Ritchi_
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
0
Merci
Merci pour ton aide j'ai testé pas mal d'options sur le site de Ron de Bruin mais rien ne fonctionne .. pas facile à trouver.

En fait j'ai un dossier où il y a des PDF

exemple :
A1458 F1PAA.pdf
B8555 RrPRT.pdf
ETC.

Je voudrais simplement récupérer les 5 premiers caractères : A1458 (j'utilise un "MID" pour ça).


Ensuite je voudrais qu'il aille chercher un dossier qui justement commence par la même chose que le PDF

Dossier ==> A1458HgTTY (commence par le même début du PDF mais ne se termine pas forcément par la même chose.
Commenter la réponse de Jefekoi
Messages postés
22667
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
7333
0
Merci
Bonjour,

De plus, si c'est un répertoire que tu cherches il faudrait peut-être indiquer à Dir() que tu veux cet attribut en question : , vbDirectory
Voir l'aide de Dir :
vbNormal 0 (Par défaut) Spécifie les fichiers sans attributs
vbDirectory 16 Spécifie les dossiers ainsi que les fichiers sans attributs.

eric
Commenter la réponse de eriiic
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
0
Merci
Merci , j'ai essayé aussi cette option :(

dossier = "/Users/eric/Desktop/Test" & "*"
If Dir(dossier, vbDirectory) = "" Then
MsgBox "Le répertoire n'existe pas"
Else
MsgBox "Le répertoire existe"
End If
eriiic
Messages postés
22667
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
7333 -
Ben oui, ça ne va pas changer le fait que sur Mac les jokers sont reconnus en tant que caractères uniquement.
Il faut les enlever et que tu testes la partie gauche de la chaine pour voir si elle correspond.
eric
Commenter la réponse de Jefekoi
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
0
Merci
Ce qui est marrant c'est pour un fichier l'asterix fonctionne mais pas pour les dossiers.

J'ai essayé en mettant un vrai nom de dossier et à la fin l'antislash , ça ne marche pas

dossier = "/Users/eric/Desktop/DTes/"
If Dir(dossier, vbDirectory) = "" Then
MsgBox "Le répertoire n'existe pas"
Else
MsgBox "Le répertoire existe"
End If




J'ai essayé en mettant un vrai nom de dossier et pas d'antislash , ça marche

dossier = "/Users/eric/Desktop/DTes"
If Dir(dossier, vbDirectory) = "" Then
MsgBox "Le répertoire n'existe pas"
Else
MsgBox "Le répertoire existe"
End If



J'ai essayé en mettant un vrai nom de dossier et pas d'antislash mais un "*", ça marche pas
dossier = "/Users/eric/Desktop/DT" & "*"
If Dir(dossier, vbDirectory) = "" Then
MsgBox "Le répertoire n'existe pas"
Else
MsgBox "Le répertoire existe"
End If
eriiic
Messages postés
22667
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
7333 -
L'aide est claire : pas de joker pour les Mac
Dans Microsoft Windows, La fonction Dir permet d'utiliser des jokers ou caractères génériques (* ou ?) pour sélectionner plusieurs fichiers. Sur le Macintosh, ces caractères sont considérés comme des caractères de noms de fichiers valides et ne peuvent être utilisés comme caractères génériques pour spécifier des fichiers multiples.
Jefekoi
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
-
Bien dommage je suis repassé au PC et là pas de problème..
eriiic
Messages postés
22667
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 avril 2019
7333 -
Comme déjà dit tu testes la partie gauche de la chaine et c'est réglé.
Commenter la réponse de Jefekoi
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
0
Merci
Bon j'ai fais une petite alternative à améliorer

En gros il affiche en AA les dossiers d'un répertoire donné . et ensuite on lui demande de chercher "D5588*"

Et ça marche :)

Sub TesteSiDossierExiste()
monrepprinc = "/Users/eric/Desktop/Divers/"
mesrepssub = Dir(monrepprinc, vbDirectory)
Do While mesrepssub <> ""
If mesrepssub <> "." And mesrepssub <> ".." Then
If (GetAttr(monrepprinc & mesrepssub) And vbDirectory) = vbDirectory Then
a = a + 1
Range("A" & a).Value = mesrepssub
End If
End If
mesrepssub = Dir
Loop

numero = "D5588*"
Set celluletrouvee = Range("A1:A20").Find(numero, lookat:=xlWhole)

If celluletrouvee Is Nothing Then
MsgBox ("pas trouvé")
Else
ligne = celluletrouvee.Row
col = celluletrouvee.Column
MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col)
End If
End Sub
Commenter la réponse de Jefekoi