Fonction GetAttr

olivier_bahrein

XLDnaute Junior
Bonjour,

Je souhaite tester l'existence ou non d'un répertoire et sinon le créer. J'ai trouvé le bout de code ci-après (Excelabo) mais je ne sais pas s'il convient et s'il est juste:

Code:
 Sub SaveInMyFolder()
      Dim x As String, strPath As String
      On Error
 Resume Next
      strPath = "c:my documentsfinancial toolkit"
      x =
 GetAttr(strPath) And 0
      If Err <> 0 Then
          MkDir strPath
      End If
 
  ActiveWorkbook.SaveAs FileName:=strPath & "" & ActiveWorkbook.Name
  End Sub

1- Ce code est-il juste ?
2- pouvez-vous me l'expliquer ?
3- Quelqu'un connait-il la syntaxe exacte de getAttr ? à quoi correspondent les valeurs VbNormal, VbDirectory, VbAlias,... et comment s'en sert-on ? Je n'ai rien trouvé d'assez précis sur internet.

Merci !

Olivier./.
 

MichelXld

XLDnaute Barbatruc
Re : Fonction GetAttr

bonjour

voici des infos issues de l'aide Excel

Renvoie une valeur de type Integer indiquant les attributs du fichier ou du dossier.

Syntaxe
GetAttr(pathname)

L'argument pathname est une expression de chaîne définissant un nom de fichier. L'argument pathname peut préciser le répertoire ou le dossier et le lecteur.

Valeurs renvoyées
La valeur renvoyée par GetAttr est la somme des valeurs d'attributs ci-dessous :
Constante/ Valeur/ Description
vbNormal 0 Normal
vbReadOnly 1 Lecture seule
vbHidden 2 Caché
vbSystem 4 Système. Non disponible sur le Macintosh.
vbDirectory 16 Répertoire ou dossier
vbArchive 32 Fichier modifié depuis la dernière sauvegarde. Non disponible sur le Macintosh.
vbAlias 64 Le nom du fichier spécifié est un alias. Disponible uniquement sur le Macintosh.

Note Ces constantes sont définies par Visual Basic pour Applications. Vous pouvez les utiliser partout dans votre code pour remplacer des valeurs réelles.

Remarques
Pour déterminer les attributs du fichier, utilisez l'opérateur And pour effectuer une comparaison au niveau du bit de la valeur renvoyée par la fonction GetAttr et de la valeur de l'attribut de fichier concerné. Si le résultat est différent de zéro, le fichier comporte l'attribut indiqué. Par exemple, la valeur renvoyée pour l'expression And ci-dessous est zéro si l'attribut Archive n'est pas défini :

Result = GetAttr(FName) And vbArchive

Une valeur non nulle est renvoyée si le fichier comporte l'attribut Archive.


sinon, pour tester si un repertoire existe:

Code:
'Renvoie une chaine vide si le répertoire n'existe pas 
MsgBox Dir("C:\Ledossier", vbDirectory)


bon apres midi
MichelXld
 

Discussions similaires

Statistiques des forums

Discussions
312 208
Messages
2 086 257
Membres
103 167
dernier inscrit
miriame