Compter le nombre de fichiers d'un dossier et declencher une alerte ( fenêtre, m [Résolu]

timadone 3 Messages postés mercredi 16 mai 2007Date d'inscription 13 septembre 2010 Dernière intervention - 9 sept. 2010 à 17:05 - Dernière réponse : timadone 3 Messages postés mercredi 16 mai 2007Date d'inscription 13 septembre 2010 Dernière intervention
- 13 sept. 2010 à 13:13
En utilisant le code ci dessous par exemple, comment peut on compter le nombre de fichiers dans un dossiers et déclencher une alerte ( fenêtre ou mail ou bip sonore) uniquement quand le nombre de fichiers dépasse 10 fichiers par exemple?

Dim Path
Path = "D:\Mes scripts vbs"
MsgBox ShowFolderList(Path),vbmessage,"Fichiers contenus dans le répertoire " & Path
Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe, nbre
Set fso = CreateObject("Scripting.FileSystemObject")

Set Dossiers = fso.GetFolder(strPath)
Set fic = Dossiers.Files
'pour chaque fichier de mon objet files de mon objet fso...:)
For Each fichiers in fic
'le nom du fichier
nbre = nbre + 1
'strListe = strListe & vbcrlf & vbcrlf & fichiers.Name & " Date (jjmmaa) : " & fichiers.DateLastModified & " Taille (octet) : " & fichiers.Size
Next
ShowFolderList = nbre
'ShowFolderList = strListe
End Function
Set fso = Nothing
Afficher la suite 

3 réponses

Répondre au sujet
the_little_big_man 86 Messages postés lundi 22 janvier 2007Date d'inscription 14 février 2011 Dernière intervention - 10 sept. 2010 à 10:58
+3
Utile
Sub fichier()
Dim Path
Path = "C:\Documents and Settings\robert mugabuhamye\Desktop"
Dim nbfich As Integer
    nbfich = ShowFolderList(Path) 'tu recupère le nombre de fichier
    MsgBox nbfich, vbOKOnly, "Fichiers contenus dans le répertoire " & Path 'tu l'affiche
    
    If nbfich > 10 Then 'si supérieur à 10
    
    MsgBox "Attention le nombre de fichiers est > à 10", vbExclamation + vbOKOnly, "Alerte" 'tu le signale
    End If
End Sub

Function ShowFolderList(strPath) As Integer
Dim fso, Dossiers, fic, fichiers, strListe, nbre
Set fso = CreateObject("Scripting.FileSystemObject")

Set Dossiers = fso.GetFolder(strPath)
Set fic = Dossiers.Files
'pour chaque fichier de mon objet files de mon objet fso...:)
For Each fichiers In fic
'le nom du fichier
nbre = nbre + 1
'strListe = strListe & vbcrlf & vbcrlf & fichiers.Name & " Date (jjmmaa) : " & fichiers.DateLastModified & " Taille (octet) : " & fichiers.Size
Next
ShowFolderList = nbre
'ShowFolderList = strListe
Set fso = Nothing
End Function




A good excercise for the Heart is to bend down and help another up...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de the_little_big_man
cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 12 sept. 2010 à 17:09
+3
Utile
 Bonjour,

Pourquoi ne pas utiliser la propriété count

Option Explicit
Const MyFolder = "d:\RECUP"

Dim objFso
Set objFso = CreateObject("Scripting.FileSystemObject")

If objFso.FolderExists(MyFolder) Then
   If objFso.GetFolder(MyFolder).Files.Count > 10 Then MsgBox "alert",vbExclamation
End If
Set objFso = Nothing


jean-marc
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_JMO
timadone 3 Messages postés mercredi 16 mai 2007Date d'inscription 13 septembre 2010 Dernière intervention - 13 sept. 2010 à 13:13
+3
Utile
Merci les gars !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de timadone

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.