Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts (copyrights
JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
" _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko et
1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et
1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et
1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et
1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts (copyrights
JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
" _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko et
1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et
1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et
1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et
1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts (copyrights
JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
" _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko et
1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et
1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et
1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et
1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
" _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
" _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
" _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu Txt
des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu Txt
des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
u4LfspqHIHA.4476@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu Txt
des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Voici une approche un peu plus simple. Elle te permet
de choisir le répertoire à partir duquel tu désires
visionner son contenu (seulement les sous-répertoires
sans les fichiers) et de sélectionner le répertoire de ton
choix :
'--------------------------------------------
Sub test()
Dim Chemin As String
Dim Message As String
Dim RepAOuvrir As String
'Ce qui s'affichera dans la fenêtre
Message = "Sélectionner un des répertoires affichés"
'Répertoire à ouvrir : à définir
RepAOuvrir = "c:Atravail"
If Dir(RepAOuvrir, vbDirectory) <> "" Then
'ouverture du répertoire
FolderWindowBrowser RepAOuvrir, Message, Chemin
If Chemin = "" Then
MsgBox "Vous avez annulé votre choix."
Else
MsgBox Chemin
End If
Else
MsgBox "Chemin ou répertoire inexistant."
End If
End Sub
'--------------------------------------------
Sub FolderWindowBrowser(Rep As String, Message As String, _
Chemin As String)
Dim objShell As Object, ObjFolder As Object
Set objShell = CreateObject("Shell.Application")
Set ObjFolder = objShell.BrowseForFolder(0, Message, 0, "" & Rep & "")
If Not ObjFolder Is Nothing Then
Chemin = ObjFolder.parentfolder.ParseName(ObjFolder.Title).path
Else
Chemin = ""
End If
End Sub
'--------------------------------------------
"j-pascal" a écrit dans le message de news:
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela
me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains
?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts (copyrights
JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
"
_
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
&
Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko et
1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et
1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et
1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et
1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Voici une approche un peu plus simple. Elle te permet
de choisir le répertoire à partir duquel tu désires
visionner son contenu (seulement les sous-répertoires
sans les fichiers) et de sélectionner le répertoire de ton
choix :
'--------------------------------------------
Sub test()
Dim Chemin As String
Dim Message As String
Dim RepAOuvrir As String
'Ce qui s'affichera dans la fenêtre
Message = "Sélectionner un des répertoires affichés"
'Répertoire à ouvrir : à définir
RepAOuvrir = "c:Atravail"
If Dir(RepAOuvrir, vbDirectory) <> "" Then
'ouverture du répertoire
FolderWindowBrowser RepAOuvrir, Message, Chemin
If Chemin = "" Then
MsgBox "Vous avez annulé votre choix."
Else
MsgBox Chemin
End If
Else
MsgBox "Chemin ou répertoire inexistant."
End If
End Sub
'--------------------------------------------
Sub FolderWindowBrowser(Rep As String, Message As String, _
Chemin As String)
Dim objShell As Object, ObjFolder As Object
Set objShell = CreateObject("Shell.Application")
Set ObjFolder = objShell.BrowseForFolder(0, Message, 0, "" & Rep & "")
If Not ObjFolder Is Nothing Then
Chemin = ObjFolder.parentfolder.ParseName(ObjFolder.Title).path
Else
Chemin = ""
End If
End Sub
'--------------------------------------------
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela
me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains
?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts (copyrights
JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
"
_
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
&
Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko et
1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et
1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et
1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et
1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Voici une approche un peu plus simple. Elle te permet
de choisir le répertoire à partir duquel tu désires
visionner son contenu (seulement les sous-répertoires
sans les fichiers) et de sélectionner le répertoire de ton
choix :
'--------------------------------------------
Sub test()
Dim Chemin As String
Dim Message As String
Dim RepAOuvrir As String
'Ce qui s'affichera dans la fenêtre
Message = "Sélectionner un des répertoires affichés"
'Répertoire à ouvrir : à définir
RepAOuvrir = "c:Atravail"
If Dir(RepAOuvrir, vbDirectory) <> "" Then
'ouverture du répertoire
FolderWindowBrowser RepAOuvrir, Message, Chemin
If Chemin = "" Then
MsgBox "Vous avez annulé votre choix."
Else
MsgBox Chemin
End If
Else
MsgBox "Chemin ou répertoire inexistant."
End If
End Sub
'--------------------------------------------
Sub FolderWindowBrowser(Rep As String, Message As String, _
Chemin As String)
Dim objShell As Object, ObjFolder As Object
Set objShell = CreateObject("Shell.Application")
Set ObjFolder = objShell.BrowseForFolder(0, Message, 0, "" & Rep & "")
If Not ObjFolder Is Nothing Then
Chemin = ObjFolder.parentfolder.ParseName(ObjFolder.Title).path
Else
Chemin = ""
End If
End Sub
'--------------------------------------------
"j-pascal" a écrit dans le message de news:
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela
me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les classeurs
(sans proposer de les ouvrir) et qui me permettrait d'en supprimer
certains
?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts (copyrights
JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & " fichiers
"
_
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
&
Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui pose
problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko et
1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo et
1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go et
1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To et
1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables, je
suis preneur :o)
JP
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de dialogue
:
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de dialogue
:
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:%23ZJSxArHIHA.5360@TK2MSFTNGP03.phx.gbl...
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news: u4LfspqHIHA.4476@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de dialogue
:
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de dialogue
:
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de dialogue
:
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:%23ZJSxArHIHA.5360@TK2MSFTNGP03.phx.gbl...
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news: u4LfspqHIHA.4476@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de dialogue
:
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son contenu
;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse "manuellement"
supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1 Ko
et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1 Mo
et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & " Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1 Go
et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & " Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1 To
et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & " To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Bonsoir Philippe,
En fait, j'ai trouvé ça :
http://www.info-3000.com/vbvba/boitedialogueintegree.php
(dont le contenu est à peu près à ma portée ;-) )
... et j'ai chargé le classeur joint. Ouhahh que de boites !!
Ensuite, j'ai créé un bouton pour ouvrir une macro toute bête du genre :
Sub essai ()
Application.Dialogs(xlDialog[CTRL ESP]).show
End Sub
Et j'ai essayé tout un tas de truc proposé par VBA jusqu'à ce que je tombe
sur :
"Application.Dialogs(xlDialogFileDelete).Show"
... C'est à dire, ce que je cherchais !
En résumé :
'----------------------
If taille > 5000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogFileDelete).Show repertoire
'----------------------
Avec repertoire = ThisWorkbook.Path
Ce qui est (presque dommage, c'est que je ne puisse pas utiliser CTRL pour
sélectionner plusieurs classeurs en même temps, mais bon ...
Ma question était sans doute peu claire, mais la solution est a priori bcp
plus simple que le code de JW (auquel je ne comprends rien !).
Merci pour ton aide et peut-être à bientôt ...
JP
PS : la journée a été dure et cette petite ligne de code me donne un peu
de baume au coeur ;-)
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de
dialogue :
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son
contenu ;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse
"manuellement" supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1
Ko et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1
Mo et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & "
Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1
Go et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & "
Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1
To et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & "
To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Bonsoir Philippe,
En fait, j'ai trouvé ça :
http://www.info-3000.com/vbvba/boitedialogueintegree.php
(dont le contenu est à peu près à ma portée ;-) )
... et j'ai chargé le classeur joint. Ouhahh que de boites !!
Ensuite, j'ai créé un bouton pour ouvrir une macro toute bête du genre :
Sub essai ()
Application.Dialogs(xlDialog[CTRL ESP]).show
End Sub
Et j'ai essayé tout un tas de truc proposé par VBA jusqu'à ce que je tombe
sur :
"Application.Dialogs(xlDialogFileDelete).Show"
... C'est à dire, ce que je cherchais !
En résumé :
'----------------------
If taille > 5000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogFileDelete).Show repertoire
'----------------------
Avec repertoire = ThisWorkbook.Path
Ce qui est (presque dommage, c'est que je ne puisse pas utiliser CTRL pour
sélectionner plusieurs classeurs en même temps, mais bon ...
Ma question était sans doute peu claire, mais la solution est a priori bcp
plus simple que le code de JW (auquel je ne comprends rien !).
Merci pour ton aide et peut-être à bientôt ...
JP
PS : la journée a été dure et cette petite ligne de code me donne un peu
de baume au coeur ;-)
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
e2AAjTrHIHA.4584@TK2MSFTNGP03.phx.gbl...
Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de
dialogue :
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:%23ZJSxArHIHA.5360@TK2MSFTNGP03.phx.gbl...
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son
contenu ;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news: u4LfspqHIHA.4476@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse
"manuellement" supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1
Ko et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1
Mo et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & "
Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1
Go et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & "
Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1
To et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & "
To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Bonsoir Philippe,
En fait, j'ai trouvé ça :
http://www.info-3000.com/vbvba/boitedialogueintegree.php
(dont le contenu est à peu près à ma portée ;-) )
... et j'ai chargé le classeur joint. Ouhahh que de boites !!
Ensuite, j'ai créé un bouton pour ouvrir une macro toute bête du genre :
Sub essai ()
Application.Dialogs(xlDialog[CTRL ESP]).show
End Sub
Et j'ai essayé tout un tas de truc proposé par VBA jusqu'à ce que je tombe
sur :
"Application.Dialogs(xlDialogFileDelete).Show"
... C'est à dire, ce que je cherchais !
En résumé :
'----------------------
If taille > 5000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogFileDelete).Show repertoire
'----------------------
Avec repertoire = ThisWorkbook.Path
Ce qui est (presque dommage, c'est que je ne puisse pas utiliser CTRL pour
sélectionner plusieurs classeurs en même temps, mais bon ...
Ma question était sans doute peu claire, mais la solution est a priori bcp
plus simple que le code de JW (auquel je ne comprends rien !).
Merci pour ton aide et peut-être à bientôt ...
JP
PS : la journée a été dure et cette petite ligne de code me donne un peu
de baume au coeur ;-)
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de
dialogue :
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce qui
devrait donc améliorer la portabilité vers Mac par exemple), dont la 1ère
devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes que
je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son
contenu ;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse
"manuellement" supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je suis
contraint de cliquer sur "Annuler" pour fermer la boite de dialogue et
cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les classeurs
contenus dans ledit répertoire s'affichent par ordre chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1
Ko et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1
Mo et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & "
Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1
Go et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & "
Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1
To et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & "
To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des variables,
je suis preneur :o)
JP
Bonsoir,
Merci du retour d'information.
Je retiens l'existence de cette boîte de dialogue.
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonsoir Philippe,
En fait, j'ai trouvé ça :
http://www.info-3000.com/vbvba/boitedialogueintegree.php
(dont le contenu est à peu près à ma portée ;-) )
... et j'ai chargé le classeur joint. Ouhahh que de boites !!
Ensuite, j'ai créé un bouton pour ouvrir une macro toute bête du genre :
Sub essai ()
Application.Dialogs(xlDialog[CTRL ESP]).show
End Sub
Et j'ai essayé tout un tas de truc proposé par VBA jusqu'à ce que je
tombe sur :
"Application.Dialogs(xlDialogFileDelete).Show"
... C'est à dire, ce que je cherchais !
En résumé :
'----------------------
If taille > 5000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogFileDelete).Show repertoire
'----------------------
Avec repertoire = ThisWorkbook.Path
Ce qui est (presque dommage, c'est que je ne puisse pas utiliser CTRL
pour sélectionner plusieurs classeurs en même temps, mais bon ...
Ma question était sans doute peu claire, mais la solution est a priori
bcp plus simple que le code de JW (auquel je ne comprends rien !).
Merci pour ton aide et peut-être à bientôt ...
JP
PS : la journée a été dure et cette petite ligne de code me donne un peu
de baume au coeur ;-)
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de
dialogue :
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce
qui devrait donc améliorer la portabilité vers Mac par exemple), dont la
1ère devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes
que je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son
contenu ;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse
"manuellement" supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je
suis contraint de cliquer sur "Annuler" pour fermer la boite de
dialogue et cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les
classeurs contenus dans ledit répertoire s'affichent par ordre
chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1
Ko et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1
Mo et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & "
Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1
Go et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & "
Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1
To et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & "
To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des
variables, je suis preneur :o)
JP
Bonsoir,
Merci du retour d'information.
Je retiens l'existence de cette boîte de dialogue.
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:%23V4g8yyHIHA.4684@TK2MSFTNGP06.phx.gbl...
Bonsoir Philippe,
En fait, j'ai trouvé ça :
http://www.info-3000.com/vbvba/boitedialogueintegree.php
(dont le contenu est à peu près à ma portée ;-) )
... et j'ai chargé le classeur joint. Ouhahh que de boites !!
Ensuite, j'ai créé un bouton pour ouvrir une macro toute bête du genre :
Sub essai ()
Application.Dialogs(xlDialog[CTRL ESP]).show
End Sub
Et j'ai essayé tout un tas de truc proposé par VBA jusqu'à ce que je
tombe sur :
"Application.Dialogs(xlDialogFileDelete).Show"
... C'est à dire, ce que je cherchais !
En résumé :
'----------------------
If taille > 5000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogFileDelete).Show repertoire
'----------------------
Avec repertoire = ThisWorkbook.Path
Ce qui est (presque dommage, c'est que je ne puisse pas utiliser CTRL
pour sélectionner plusieurs classeurs en même temps, mais bon ...
Ma question était sans doute peu claire, mais la solution est a priori
bcp plus simple que le code de JW (auquel je ne comprends rien !).
Merci pour ton aide et peut-être à bientôt ...
JP
PS : la journée a été dure et cette petite ligne de code me donne un peu
de baume au coeur ;-)
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news: e2AAjTrHIHA.4584@TK2MSFTNGP03.phx.gbl...
Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de
dialogue :
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce
qui devrait donc améliorer la portabilité vers Mac par exemple), dont la
1ère devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:%23ZJSxArHIHA.5360@TK2MSFTNGP03.phx.gbl...
Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes
que je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son
contenu ;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news: u4LfspqHIHA.4476@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de
news:uoz2HLkHIHA.4196@TK2MSFTNGP04.phx.gbl...
Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse
"manuellement" supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je
suis contraint de cliquer sur "Annuler" pour fermer la boite de
dialogue et cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les
classeurs contenus dans ledit répertoire s'affichent par ordre
chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1
Ko et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1
Mo et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & "
Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1
Go et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & "
Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1
To et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & "
To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des
variables, je suis preneur :o)
JP
Bonsoir,
Merci du retour d'information.
Je retiens l'existence de cette boîte de dialogue.
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonsoir Philippe,
En fait, j'ai trouvé ça :
http://www.info-3000.com/vbvba/boitedialogueintegree.php
(dont le contenu est à peu près à ma portée ;-) )
... et j'ai chargé le classeur joint. Ouhahh que de boites !!
Ensuite, j'ai créé un bouton pour ouvrir une macro toute bête du genre :
Sub essai ()
Application.Dialogs(xlDialog[CTRL ESP]).show
End Sub
Et j'ai essayé tout un tas de truc proposé par VBA jusqu'à ce que je
tombe sur :
"Application.Dialogs(xlDialogFileDelete).Show"
... C'est à dire, ce que je cherchais !
En résumé :
'----------------------
If taille > 5000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage autorisé"
& Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogFileDelete).Show repertoire
'----------------------
Avec repertoire = ThisWorkbook.Path
Ce qui est (presque dommage, c'est que je ne puisse pas utiliser CTRL
pour sélectionner plusieurs classeurs en même temps, mais bon ...
Ma question était sans doute peu claire, mais la solution est a priori
bcp plus simple que le code de JW (auquel je ne comprends rien !).
Merci pour ton aide et peut-être à bientôt ...
JP
PS : la journée a été dure et cette petite ligne de code me donne un peu
de baume au coeur ;-)
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Re,
Dans cette solution :
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFile.txt
J. Walkenbach (l'auteur cité par Frédéric) utilise cette boîte de
dialogue :
SHBrowseForFolder(bInfo)
issue des API de Windows et qui permet de récupérer le chemin du fichier
que tu veux traiter
Dans la procédure, tu peux adapter le répertoire de départ, comme le
traitement appliqué au résultat (ici un message).
Tu remarqueras qu'il y en a 3 autres au choix, sans appel aux API (ce
qui devrait donc améliorer la portabilité vers Mac par exemple), dont la
1ère devrait être assez facile à adapter
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI2.txt
http://frederic.sigonneau.free.fr/code/Fichiers/BrowseForFolderOrFileSansAPI3.txt
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:%Bonjour Philippe,
Merci pour ta réponse.
Je viens de parcourir rapidement (je dois aller bosser ...) le contenu
Txt des ex. de fréd. s.
C'est très compliqué pour moi - Il y a dans le code, plein de termes
que je ne comprends absoument pas !
J'ai toujours à coeur d'essayer de comprendre ce que j'utilise dans mes
procédures, ne serait-ce que pour pouvoir expliquer ce que je fais à
l'utilisateur, si d'aventure il me posait la question !!
Je réétudie ça ce soir ...
PS : j'ai simplement besoin d'ouvrir un répertoire et de voir son
contenu ;-)
@+
JP
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:Bonjour j-pascal,
Fais un tour chez Frédéric :
http://frederic.sigonneau.free.fr/Fichiers.htm
tu y trouveras au moins de quoi t'aider
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"j-pascal" a écrit dans le message de
news:Bonsoir,
Dans le code qui suit, je souhaite que le répertoire dans lequel est
enregistré le classeur ouvert s'ouvre afin que je puisse
"manuellement" supprimer certains classeurs. Si j'utilise
"Application.Dialogs(xlDialogOpen).Show", on me propose d'ouvrir les
classeurs ! Pb, même si je peux supprimer tel ou tel classeur, je
suis contraint de cliquer sur "Annuler" pour fermer la boite de
dialogue et cela me prive de la fin de ma procédure !
Questions :
1 - Comment ouvrir une boite de dialogue qui n'affiche que les
classeurs (sans proposer de les ouvrir) et qui me permettrait d'en
supprimer certains ?
2 - Comment "paramètrer" (via le code) l'affichage du répertoire avec
l'affichage "Détails" (des classeurs) par défaut ?
3 - Est-il possible d'ajouter qqch dans le code pour que les
classeurs contenus dans ledit répertoire s'affichent par ordre
chronologique ?
Le code (avec copyrights à JB et VbFrance ...), et les défauts
(copyrights JP ;-) ) :
'--------------------------------------
Private Sub Nettoyer_Click()
Dim repertoire
Dim masque
Dim nf
Dim taille
Dim n
Dim ChDir
Unload Menu
repertoire = ThisWorkbook.Path 'cible
masque = "*.xls" 'masque = "Form*"
nf = Dir(repertoire & "" & masque) 'nf = Dir(masque)
taille = 0
n = 0
Do While nf <> ""
taille = taille + FileLen(repertoire & "" & nf)
n = n + 1
nf = Dir()
Loop
MsgBox repertoire & Chr(10) & Chr(10) & "Contient : " & n & "
fichiers " _
& "(soit " & OctetsToKoMoGo(taille) & ")"
If taille > 50000000 Then 'à ajuster !
MsgBox "Vous avez atteint votre capacité de stockage
autorisé" & Chr(10) & Chr(10) & _
"Vous devez nettoyer votre répertoire !", vbCritical +
vbOKOnly, "Attention !"
Application.Dialogs(xlDialogOpen).Show repertoire 'Ce qui
pose problème !
Call Test_Mémoire
Else
MsgBox "Capacité de stockage autorisée non atteinte"
End If
End Sub
'------------------------------------------------
'------------------------------------------------
Public Function OctetsToKoMoGo(DATA) As String
Dim Décimales
Décimales = 2
Debug.Print DATA
If DATA < 1024 Then ' - d'1 Ko
OctetsToKoMoGo = DATA & " Octets"
ElseIf DATA >= 1024 And DATA < (1024 ^ 2) Then 'Entre 1
Ko et 1023Ko
OctetsToKoMoGo = (Round((DATA / 1024), Décimales)) & " Ko"
ElseIf DATA >= (1024 ^ 2) And DATA < (1024 ^ 3) Then 'Entre 1
Mo et 1023 Mo
OctetsToKoMoGo = (Round((DATA / (1024 ^ 2)), Décimales)) & "
Mo"
ElseIf DATA >= (1024 ^ 3) And DATA < (1024 ^ 4) Then 'Entre 1
Go et 1023 Go')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 3)), Décimales)) & "
Go"
ElseIf DATA >= (1024 ^ 4) And DATA < (1024 ^ 5) Then 'Entre 1
To et 1023 To')
OctetsToKoMoGo = (Round((DATA / (1024 ^ 4)), Décimales)) & "
To"
End If
End Function
'-----------------------------------------------
Un grand merci d'avance pour vos lumières !
PS : si qq'un a une suggestion concernant la définition des
variables, je suis preneur :o)
JP