Compter le nombre de dossier

Bonjour,

Je cherche un code en vba qui compte le nombre de dossier dans un dossier.

Après plusieurs recherches sur le net, j'ai trouvé un code mais il m'affiche 0, je suppose que ce dernier doit compter les sous dossier et non les dossiers.

Je me tourne donc vers vous pour m'aider a résoudre ce problème.

En vous remerciant par avance.

Private Sub CommandButton2_Click()
Dim Fichier As String, NbFic As Integer

NbFic = 0

Fichier = Dir("S:\")

Do While Fichier <> ""

  NbFic = NbFic + 1

  Fichier = Dir

Loop

MsgBox NbFic
End Sub

bonjour,

Non, l'ensemble est correct j'ai juste modifié le nom de la cible et mis mon répertoire de travail...

En l'occurence ton "S" n'est pas un répertoire de travail mais un lecteur et de fait très souvent il n'y a aucun fichier à la racine des lecteurs...

A+

Merci Galopin de ta réponse.

Effectivement mes dossiers se trouve sur un serveur, y a t'il un moyen pour pouvoir comptabiliser les dossiers ?

Bien cordialement

Bonjour Sandrine13, Galopin01

Apparemment, vu ton code, ta recherche porte sur le nombre de fichiers présents dans un Répertoire.

J'emploie apparemment car pour moi Dossier ou Sous-Dossier est synonyme de Répertoire ou Sous-Répertoire.

Donc si c'est plus fichiers... il faut ajouter dans le code cité.

Private Sub CommandButton2_Click()
Dim Fichier As String, NbFic As Integer

NbFic = 0

'Répertoire de travail. Ne pas oublier d'ouvrir le fichier xlsm de ce répertoire 
'comportant cette macro à éxécuter.
Chemin = ActiveWorkbook.Path

'Recherche de tous les fichiers xlsx et xlsm par exemple
'Ou sinon recherche plus large par "\*xl*"
Fichier = Dir(Chemin & "\*xls*")

Do While Fichier <> ""

  NbFic = NbFic + 1

  Fichier = Dir

Loop

MsgBox NbFic
End Sub

Bons tests, bonne continuation.

...Désolé j'avais lu un peu rapidement !

Il faut dire à notre décharge qu'avec des variables baptisées "Fichier" et "NbFic" il y a de quoi en attraper plus d'un !

Pour les dossier le paramètre est 16 :

Private Sub CommandButton2_Click()
Dim Fichier As String, NbFic As Integer
NbFic = 0
Fichier = Dir("S:\",16)
Do While Fichier <> ""
  NbFic = NbFic + 1
  Fichier = Dir
Loop
MsgBox NbFic
End Sub

A+

bonjour,

@galopin01: pour la compréhension tu aurais du remplcer fichier par répertoire vue que l'attribut 16 veut dire vbDirectory!

Bonjour Galopin,

J'ai rajouté 16 est c'est toujours pareil , cela m'affiche 0.

Ce n'est que les dossiers fichiers que j'aimerai comptabiliser donc pas besoin d'extension.

Dans l'attente de ton retour.

Bien cordialement

Bonjour Sandrine13,

Il faudrait lire l'ensemble des réponses. La solution fichier est indiquée.

Bonjour,

Ce qui se conçoit bien s'énonce clairement :

Nous n'avons pas les mêmes valeurs ! Dossiers ou Fichiers il faut choisir mais...

Ce n'est que les dossiers fichiers que j'aimerai comptabiliser

En informatique on distingue habituellement les

- Dossiers = Répertoires = Directory

- Fichiers = Classeurs = Documents

Mais les Dossier Fichiers connais pas...

A+

Effectivement se sont les dossiers.

J'ai repris exactement le code mais toujours 0

faut il rajouter quelque chose d'autre dans le code pour que cela marche ?

Non la syntaxe est bonne mais avec ce Disque "S" je soupçonne que ce puisse être un disque auquel tu n'as pas de droits administrateur ?

Peut-être un serveur ou un disque virtuel ? Je ne suis pas un professionnel mais peut-être certains disques n'ont-ils aucun dossiers et sont-ils directement partitionnés... Peut-être un pro pourra-t-il nous en dire plus sur ce disque récalcitrant...

A+

Bonjour Galopin,

Ça y est, cela marche, j'ai rajouté un slache dans le chemin d'accès.

Par contre cela comptabilise tout les dossiers et non dans celui demandé, y a t'il quelque chose a rajouter.

Bien cordialement

Désolé, je ne peux pas t'en dire plus. Peut-être la fonction renvoie-t-elle des dossiers cachés, système ou autres. J'ai remarqué également chez moi que ce décompte est insolite. Chez moi il recense également les bibliothèques.

Peut être essayer de lister tous les résultats sur une feuille vide pour essayer de comprendre :

Private Sub CommandButton2_Click()
Dim Fichier As String, NbFic As Integer
NbFic = 0
Fichier = Dir("S:\", 16)
Do While Fichier <> ""
Cells(NbFic + 1, 1).Value = Fichier
  NbFic = NbFic + 1
  Fichier = Dir
Loop
MsgBox NbFic
Cells(NbFic + 1, 1).Text = Fichier
End Sub

A+

Rechercher des sujets similaires à "compter nombre dossier"