Verifier si dossier existe début du nom (Sur MAC)

Résolu/Fermé
Jefekoi Messages postés 52 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 7 avril 2019 - 6 avril 2019 à 09:58
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
A voir également:

8 réponses

_Ritchi_ Messages postés 21209 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 7 avril 2024 6 058
Modifié le 6 avril 2019 à 10:49
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
0
Jefekoi Messages postés 52 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 7 avril 2019
6 avril 2019 à 11:25
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"

:(
0
_Ritchi_ Messages postés 21209 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 7 avril 2024 6 058
Modifié le 6 avril 2019 à 18:25
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:
https://www.rondebruin.nl/mac.htm

Regarde notamment cette page où il parle de la macro qu'il a développé pour ressembler à Dir: https://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
0
Jefekoi Messages postés 52 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 7 avril 2019
6 avril 2019 à 19:44
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
6 avril 2019 à 23:29
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
0
Jefekoi Messages postés 52 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 7 avril 2019
Modifié le 7 avril 2019 à 05:15
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
7 avril 2019 à 10:06
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
0
Jefekoi Messages postés 52 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 7 avril 2019
7 avril 2019 à 10:21
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
Modifié le 7 avril 2019 à 12:05
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.
0
Jefekoi Messages postés 52 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 7 avril 2019
7 avril 2019 à 12:56
Bien dommage je suis repassé au PC et là pas de problème..
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
7 avril 2019 à 13:28
Comme déjà dit tu testes la partie gauche de la chaine et c'est réglé.
0
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
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
0