(vba) compter des classeurs ...

Le
j-pascal
Bonsoir,

Mon classeur s'enregistre comme ceci :

'
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
()
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " " &
.Name
Else
Cancel = True
End If
End With
'

c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour connaître
le nombre de classeurs contenus dans ledit répertoire et la taille totale de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4983021
Bonsoir,

repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JB
http://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"
Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " " &
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour conna ître
le nombre de classeurs contenus dans ledit répertoire et la taille tota le de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP


j-pascal
Le #4981991
Bonsoir Jacques,

Merci.
J'ai mis le code dans le module d'un classeur situé dans le répertoire que
je dois "évaluer" ...
(Si je fais "Msgbox repertoire", j'ai bien ledit répertoire ...)
Pour chaque Msgbox, j'obtiens "zéro" ! J'en déduis, qu'il y a qqch qui
m'échappe !
Je ne comprends pas le "Form*" ! Dois-je le remplacer par le début des noms
de classeurs à "évaluer" ?? Quoiqu'il en soit, dans le répertoire, je n'ai
que des classeurs *.xls et je veux tous les compter !

@+ ?

JP


repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JB
http://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"
Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " " &
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour
connaître
le nombre de classeurs contenus dans ledit répertoire et la taille totale
de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP


dunkelzahn
Le #5002371
Bonjour,

M'est avis qu'il y a peut être une erreur et qu'il faut remplacer nf =
Dir(masque) par nf = Dir(repertoire & "" & masque)

le premier élément de dir indique le type de fichier que tu veux voir.
C'est soit un nom de fichier complet soit un masque comportant et/ou
une étoile (ou plusieurs) ou un point d'interrogation (ou même
plusieurs). Dans son exemple c'était des fichiers commençant par form.
Mais il semble qu'il faille que le dossier soit inclus dans le chemin.


On 20 oct, 18:50, "j-pascal"
Bonsoir Jacques,

Merci.
J'ai mis le code dans le module d'un classeur situé dans le répertoir e que
je dois "évaluer" ...
(Si je fais "Msgbox repertoire", j'ai bien ledit répertoire ...)
Pour chaque Msgbox, j'obtiens "zéro" ! J'en déduis, qu'il y a qqch qui
m'échappe !
Je ne comprends pas le "Form*" ! Dois-je le remplacer par le début des noms
de classeurs à "évaluer" ?? Quoiqu'il en soit, dans le répertoire, je n'ai
que des classeurs *.xls et je veux tous les compter !

@+ ?

JP

repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JBhttp://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"
Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " " &
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour
connaître
le nombre de classeurs contenus dans ledit répertoire et la taille to tale
de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP




JB
Le #5002361
Bonjour,

Sub essai()
repertoire = ThisWorkbook.Path
masque = "*.xls"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox n
MsgBox taille
End Sub

JB
On 20 oct, 18:50, "j-pascal"
Bonsoir Jacques,

Merci.
J'ai mis le code dans le module d'un classeur situé dans le répertoir e que
je dois "évaluer" ...
(Si je fais "Msgbox repertoire", j'ai bien ledit répertoire ...)
Pour chaque Msgbox, j'obtiens "zéro" ! J'en déduis, qu'il y a qqch qui
m'échappe !
Je ne comprends pas le "Form*" ! Dois-je le remplacer par le début des noms
de classeurs à "évaluer" ?? Quoiqu'il en soit, dans le répertoire, je n'ai
que des classeurs *.xls et je veux tous les compter !

@+ ?

JP

repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JBhttp://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"


Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " " &
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour
connaître
le nombre de classeurs contenus dans ledit répertoire et la taille to tale
de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



j-pascal
Le #5002091
Bonsoir Jacques,

Merci, c'est génial !
Par contre, la première fois ça n'a pas marché car j'avais appelé mon
classeur "CompteClasseurs.xls" et ton "fc" doit être "classeur1" (par défaut
sans doute ?). J'ai failli reposter ... trop tôt ;-)

Je n'aime pas trop le format 98545115 ... Comment pourrais-je afficher le
résulat en MB ? J'imagine qu'il faut en plus convertir les octets ... (?)

@+ ?

Merci encore,

JP

"JB"
Bonjour,

Sub essai()
repertoire = ThisWorkbook.Path
masque = "*.xls"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox n
MsgBox taille
End Sub

JB
On 20 oct, 18:50, "j-pascal"
Bonsoir Jacques,

Merci.
J'ai mis le code dans le module d'un classeur situé dans le répertoire que
je dois "évaluer" ...
(Si je fais "Msgbox repertoire", j'ai bien ledit répertoire ...)
Pour chaque Msgbox, j'obtiens "zéro" ! J'en déduis, qu'il y a qqch qui
m'échappe !
Je ne comprends pas le "Form*" ! Dois-je le remplacer par le début des
noms
de classeurs à "évaluer" ?? Quoiqu'il en soit, dans le répertoire, je n'ai
que des classeurs *.xls et je veux tous les compter !

@+ ?

JP

repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JBhttp://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"


Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " "
&
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour
connaître
le nombre de classeurs contenus dans ledit répertoire et la taille
totale
de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



j-pascal
Le #5002081
Re,

PS : pourrais-tu me dire comment je dois déclarer les variables suivantes :

Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n

?

Merci !

JP

"JB"
Bonjour,

Sub essai()
repertoire = ThisWorkbook.Path
masque = "*.xls"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox n
MsgBox taille
End Sub

JB
On 20 oct, 18:50, "j-pascal"
Bonsoir Jacques,

Merci.
J'ai mis le code dans le module d'un classeur situé dans le répertoire que
je dois "évaluer" ...
(Si je fais "Msgbox repertoire", j'ai bien ledit répertoire ...)
Pour chaque Msgbox, j'obtiens "zéro" ! J'en déduis, qu'il y a qqch qui
m'échappe !
Je ne comprends pas le "Form*" ! Dois-je le remplacer par le début des
noms
de classeurs à "évaluer" ?? Quoiqu'il en soit, dans le répertoire, je n'ai
que des classeurs *.xls et je veux tous les compter !

@+ ?

JP

repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JBhttp://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"


Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " "
&
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour
connaître
le nombre de classeurs contenus dans ledit répertoire et la taille
totale
de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



j-pascal
Le #5002071
Bonsoir,

J'ai essayé ta proposition ; ça marche aussi !

(J'avais fait un essai avec *.xls, mais je crois qu'hier je me suis laissé
"abusé" par le bogue sur le "fc" dû au renommage de mon classeur ... !!)

Merci

JP

"dunkelzahn" news:
Bonjour,

M'est avis qu'il y a peut être une erreur et qu'il faut remplacer nf Dir(masque) par nf = Dir(repertoire & "" & masque)

le premier élément de dir indique le type de fichier que tu veux voir.
C'est soit un nom de fichier complet soit un masque comportant et/ou
une étoile (ou plusieurs) ou un point d'interrogation (ou même
plusieurs). Dans son exemple c'était des fichiers commençant par form.
Mais il semble qu'il faille que le dossier soit inclus dans le chemin.


On 20 oct, 18:50, "j-pascal"
Bonsoir Jacques,

Merci.
J'ai mis le code dans le module d'un classeur situé dans le répertoire que
je dois "évaluer" ...
(Si je fais "Msgbox repertoire", j'ai bien ledit répertoire ...)
Pour chaque Msgbox, j'obtiens "zéro" ! J'en déduis, qu'il y a qqch qui
m'échappe !
Je ne comprends pas le "Form*" ! Dois-je le remplacer par le début des
noms
de classeurs à "évaluer" ?? Quoiqu'il en soit, dans le répertoire, je n'ai
que des classeurs *.xls et je veux tous les compter !

@+ ?

JP

repertoire = ThisWorkbook.Path
masque = "Form*"
nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox taille
MsgBox n

JBhttp://boisgontierjacques.free.fr

On 19 oct, 18:51, "j-pascal"
Bonsoir,

Mon classeur s'enregistre comme ceci :

'------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
(...)
With ThisWorkbook
ChDrive "C"
ChDir .Path
If réponse = vbYes Then '6
.SaveCopyAs Format(Now, "yyyymmmdd-hh""h""nn") & " "
&
.Name
Else
Cancel = True
End If
End With
'------------------------------------------

... c'est à dire dans le répertoire où il se situe lui-même.

Est-il possible de lancer une macro depuis le classeur ouvert pour
connaître
le nombre de classeurs contenus dans ledit répertoire et la taille
totale
de
ces derniers ?

Merci d'avance pour vos lumières,

Cordialement,

JP




Publicité
Poster une réponse
Anonyme