S
Sylvain
Guest
Bonjour et bonne année à tous,
Je travaille actuellement sur Mac et je voudrais lister tous les fichiers excel d'un répertoire.
J'ai adapté le code suivant :
Sub liste_répertoire()
mypath = "gestion:essai:" ' Définit le chemin d'accès.
myname = Dir(mypath, vbDirectory) ' Extrait la première entrée.
Do While myname <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If myname <> ":" And myname <> "::" And myname <> "." And myname <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
Call ajoute(myname & Application.PathSeparator, mypath, "répertoires")
Else
If (GetAttr(mypath & myname) And MacID("XLS8")) = MacID("XLS8") Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un classeur excel.
Call ajoute(myname, mypath, "excel") 'met le résultat sur l'onglet fichiers excel
Else
Call ajoute(myname, mypath, "fichiers")
End If ' représente un autre fichier (pas excel).
End If
End If
myname = Dir ' Extrait l'entrée suivante.
Loop
End Sub
Sub ajoute(fichier, répertoire, onglet)
'met le résultat sur le bon onglet
Dim ligne As Integer
ligne = Sheets(onglet).Range("a65530").End(xlUp).Row + 1
Sheets(onglet).Cells(ligne, 1).Value = répertoire ' Affiche l'entrée uniquement si elle
Sheets(onglet).Cells(ligne, 2).Value = fichier ' Affiche l'entrée uniquement si elle
Sheets(onglet).Cells(ligne, 3).Value = répertoire & fichier ' Affiche l'entrée uniquement si elle
End Sub
La ligne de test est celle-ci :
If (GetAttr(mypath & myname) And MacID("XLS8")) = MacID("XLS8") Then
Je me demande si le fait qu'on utilise Excel 2001 implique une autre valeur de MacID ?
Merci de votre intérêt.
A+
Sylvain
Je travaille actuellement sur Mac et je voudrais lister tous les fichiers excel d'un répertoire.
J'ai adapté le code suivant :
Sub liste_répertoire()
mypath = "gestion:essai:" ' Définit le chemin d'accès.
myname = Dir(mypath, vbDirectory) ' Extrait la première entrée.
Do While myname <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If myname <> ":" And myname <> "::" And myname <> "." And myname <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(mypath & myname) And vbDirectory) = vbDirectory Then
Call ajoute(myname & Application.PathSeparator, mypath, "répertoires")
Else
If (GetAttr(mypath & myname) And MacID("XLS8")) = MacID("XLS8") Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un classeur excel.
Call ajoute(myname, mypath, "excel") 'met le résultat sur l'onglet fichiers excel
Else
Call ajoute(myname, mypath, "fichiers")
End If ' représente un autre fichier (pas excel).
End If
End If
myname = Dir ' Extrait l'entrée suivante.
Loop
End Sub
Sub ajoute(fichier, répertoire, onglet)
'met le résultat sur le bon onglet
Dim ligne As Integer
ligne = Sheets(onglet).Range("a65530").End(xlUp).Row + 1
Sheets(onglet).Cells(ligne, 1).Value = répertoire ' Affiche l'entrée uniquement si elle
Sheets(onglet).Cells(ligne, 2).Value = fichier ' Affiche l'entrée uniquement si elle
Sheets(onglet).Cells(ligne, 3).Value = répertoire & fichier ' Affiche l'entrée uniquement si elle
End Sub
La ligne de test est celle-ci :
If (GetAttr(mypath & myname) And MacID("XLS8")) = MacID("XLS8") Then
Je me demande si le fait qu'on utilise Excel 2001 implique une autre valeur de MacID ?
Merci de votre intérêt.
A+
Sylvain