OVH Cloud OVH Cloud

Supprimer un fichier ?

17 réponses
Avatar
Michel HOLDERITH
Bonjour tout le monde,

Quelqu'un sait-il quelle est la formule en VBA pour supprimer un fichier ?

Merci d'avance.

@+
Michel.

7 réponses

1 2
Avatar
Jacky
Bagarre, ou ça, il n'y a pas de bagarre
Il n'y a que Kill ...er ;o))
Après avoir pris le temps de tester, Pounet95 a tout à fait raison, je
n'arrive pas à la faire fonctionner non plus
Peut-être qu'un maître ici ??????

Salutations
JJ

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:
Coucou,
Eh.... ne vous battez pas.......
Tout va bien....... je prefer juste Kill.... ce n'est pas grave.....
@+
Michel.

"Jacky" wrote in message
news:
Bonjour?pounet95

Oui Kill détruit définitivement.
J'avais donné cette adresse:
http://www.excelabo.net/xl/fichiers.php#poubelle
Bien que non testé, cette fonction devrait permettre de ne pas détruire
définitivement mais de passer par la poubelle de Win.
Mais apparemment Michel, n'en a pas besoin.
Ce n'était qu'une proposition alternative, si besoin.

Bonne journée
JJ

"Pounet95" a écrit dans le message de
news:
Bonjour Jacky,
Bien que ma signature renvoie vers le site Excelabo, je ne le connais
pas


par coeur
( mais faut pas répéter ! ) . Pour visiter, il faut d'abord avoir
besoin,


ensuite du temps,
et puis quand on sait que certains savent, pourquoi se priver ?

En fait, ce que je voulais dire, c'est que je ne suis pas certain que
le



Kill aille mettre
le fichier dans la corbeille. Je viens de faire un test, et je ne vois
pas


le fichier 'killé'
dans la dite corbeille. Est-ce normal ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Jacky" a écrit dans le
message


de news:
que le(s) fichier(s) détruit(s) soi(en)t récupérable(s) dans la
corbeille



Oui..... ici
http://www.excelabo.net/xl/fichiers.php#poubelle

JJ

"Pounet95" a écrit dans le message de
news:
Bonjour,
Dans l'aide VBA voir le mot réservé KILL
Mais attention, comme précisé dans un fil il y a quelques temps, je
ne




suis
pas sûr
que le(s) fichier(s) détruit(s) soi(en)t récupérable(s) dans la
corbeille



ensuite.
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Michel HOLDERITH" <#nospam# a écrit dans le message
de





news:
%
Bonjour tout le monde,

Quelqu'un sait-il quelle est la formule en VBA pour supprimer un
fichier
?



Merci d'avance.

@+
Michel.






















Avatar
Alain CROS
Bonjour

Ceci fonctionne chez moi.

Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type

Private Declare Function SHFileOperation& Lib "shell32" Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT)

Sub EnVoiPoubelle()
Const FOF_ALLOWUNDO& = &H40, FOF_SILENT& = &H4, FO_DELETE& = &H3
Dim SH As SHFILEOPSTRUCT, LeFile$
LeFile = CurDir & Application.PathSeparator & "Fichier.txt"
If Dir(LeFile) = "" Then
MsgBox "Le fichier " & LeFile & " n'existe pas"
Exit Sub
End If
SH.wFunc = FO_DELETE
SH.pFrom = LeFile
SH.fFlags = FOF_ALLOWUNDO ' & FOF_SILENT
'FOF_SILENT permet de ne pas avoir la boite de confirmation
SHFileOperation SH
End Sub

Alain CROS

"Jacky" a écrit dans le message de news:
Bagarre, ou ça, il n'y a pas de bagarre
Il n'y a que Kill ...er ;o))
Après avoir pris le temps de tester, Pounet95 a tout à fait raison, je
n'arrive pas à la faire fonctionner non plus
Peut-être qu'un maître ici ??????

Salutations
JJ



Avatar
Clément Marcotte
Bonjour,

Ceci est peu broche à foin, mais bon:

Sub deplace()
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
fso.MoveFile "c:copieorigine1.txt", "c:recycled"
End Sub

Sauf qu'avec mon Windows 98, le fichier est bien dans la corbeille,
mais il est invisible à partir de Windows et il faut passer par une
fenêtre DOS pour l'éliminer de la corbeille.

Quant à savoir si la restauration est possible en inversant l'ordre
des fichiers, je n'ai pas essayé.


"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:%
Bonjour tout le monde,

Quelqu'un sait-il quelle est la formule en VBA pour supprimer un
fichier ?


Merci d'avance.

@+
Michel.




Avatar
Alain CROS
Bonjour

Avec FSO

Sub EnVoiPoubelle()
TransfertCorbeilleAvecShell _
BrowseRepFile("Choisir le fichier a supprimer", True, CurDir)
End Sub
Function TransfertCorbeilleAvecShell(Choix)
Dim ObjShell, ObjFolderaJeter, ObjFolderItem
Const ssfDRIVES = 17 '(&H11)
If Choix = "" Then
MsgBox "Aucun fichier sélectionné"
Exit Function
End If
On Error Resume Next
Set ObjShell = CreateObject("Shell.Application")
On Error GoTo 0
If ObjShell Is Nothing Then Exit Function
Set ObjFolderaJeter = ObjShell.NameSpace(ssfDRIVES).ParseName(Choix)
For Each ObjFolderItem In ObjFolderaJeter.Parent.Items
If ObjFolderItem = ObjFolderaJeter Then
On Error Resume Next
ObjFolderItem.Verbs.Item(ObjFolderItem.Verbs.Count - 2).DoIt
If Err.Number <> 0 Then
ObjFolderItem.InvokeVerb ("&Supprimer")
ObjFolderItem.InvokeVerb ("&Delete")
End If
On Error GoTo 0
Exit For
End If
Next 'ObjFolderItem
Set ObjFolderItem = Nothing
Set ObjFolderaJeter = Nothing
Set ObjShell = Nothing
End Function
Function BrowseRepFile(Msg, LeType, RepRacine)
Dim ObjShell, objfolder, ObjFolderItem, Param, LeMsg
Const BIF_BROWSEINCLUDEFILES = &H4000
Const BIF_RETURNONLYFSDIRS = &H1
' Ces constantes sont connues de vba mais doivent être déclarées en vbs
Const ssfDESKTOPDIRECTORY = 16 ' (&H10)
Const ssfDESKTOP = 0
On Error Resume Next
Set ObjShell = CreateObject("Shell.Application")
On Error GoTo 0
If Not IsObject(ObjShell) Then Exit Function
Param = BIF_RETURNONLYFSDIRS
If Not IsEmpty(LeType) Then
Param = Param + BIF_BROWSEINCLUDEFILES
End If
If IsEmpty(RepRacine) Then RepRacine = ssfDESKTOP
Set objfolder = ObjShell.BrowseForFolder(&H0&, Msg, Param, RepRacine)
If objfolder Is Nothing Then Exit Function
On Error Resume Next
BrowseRepFile = objfolder.ParentFolder.ParseName(objfolder.Title).Path
On Error GoTo 0
If BrowseRepFile = "" Then
If objfolder = ObjShell.NameSpace(ssfDESKTOP) Then
With ObjShell.NameSpace(ssfDESKTOPDIRECTORY)
BrowseRepFile = .ParentFolder.ParseName(.Title).Path
End With
Else
For Each ObjFolderItem In objfolder.ParentFolder.Items
If ObjFolderItem = objfolder Then
BrowseRepFile = ObjFolderItem.Path
Exit For
End If
Next
End If
End If
Set ObjFolderItem = Nothing
Set objfolder = Nothing
Set ObjShell = Nothing
End Function

Alain CROS

"Clément Marcotte" a écrit dans le message de news:
Bonjour,

Ceci est peu broche à foin, mais bon:

Sub deplace()
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
fso.MoveFile "c:copieorigine1.txt", "c:recycled"
End Sub

Sauf qu'avec mon Windows 98, le fichier est bien dans la corbeille,
mais il est invisible à partir de Windows et il faut passer par une
fenêtre DOS pour l'éliminer de la corbeille.

Quant à savoir si la restauration est possible en inversant l'ordre
des fichiers, je n'ai pas essayé.




Avatar
Jacky
Merci Alain
Cela fonctionne aussi chez moi avec une adaptation de "LeFile="

Bonne soirée
JJ

"Alain CROS" a écrit dans le message de
news:%
Bonjour

Ceci fonctionne chez moi.

Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type

Private Declare Function SHFileOperation& Lib "shell32" Alias
"SHFileOperationA" _

(lpFileOp As SHFILEOPSTRUCT)

Sub EnVoiPoubelle()
Const FOF_ALLOWUNDO& = &H40, FOF_SILENT& = &H4, FO_DELETE& = &H3
Dim SH As SHFILEOPSTRUCT, LeFile$
LeFile = CurDir & Application.PathSeparator & "Fichier.txt"
If Dir(LeFile) = "" Then
MsgBox "Le fichier " & LeFile & " n'existe pas"
Exit Sub
End If
SH.wFunc = FO_DELETE
SH.pFrom = LeFile
SH.fFlags = FOF_ALLOWUNDO ' & FOF_SILENT
'FOF_SILENT permet de ne pas avoir la boite de confirmation
SHFileOperation SH
End Sub

Alain CROS

"Jacky" a écrit dans le message
de news:

Bagarre, ou ça, il n'y a pas de bagarre
Il n'y a que Kill ...er ;o))
Après avoir pris le temps de tester, Pounet95 a tout à fait raison, je
n'arrive pas à la faire fonctionner non plus
Peut-être qu'un maître ici ??????

Salutations
JJ







Avatar
Jacky
Bonsoir Clément

Je confirme
Le code d'Alain fonctionne très bien, et la restauration est possible même
sur 98 + xl97

Bonne soirée
JJ

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Ceci est peu broche à foin, mais bon:

Sub deplace()
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
fso.MoveFile "c:copieorigine1.txt", "c:recycled"
End Sub

Sauf qu'avec mon Windows 98, le fichier est bien dans la corbeille,
mais il est invisible à partir de Windows et il faut passer par une
fenêtre DOS pour l'éliminer de la corbeille.

Quant à savoir si la restauration est possible en inversant l'ordre
des fichiers, je n'ai pas essayé.


"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:%
Bonjour tout le monde,

Quelqu'un sait-il quelle est la formule en VBA pour supprimer un
fichier ?


Merci d'avance.

@+
Michel.







Avatar
Clément Marcotte
Bonjour,

Je viens juste de voir le message d'Alain et j'ai archivé.

J'étais parti de quelque chose que j'avais dans du "vieux stock" et je
n'ai même pas regardé dans l'aide de "l'Environnement des scripts",
s'il y avait quelque chose de civilisé pour le faire.

Moi, quand la corbeille me niaise, repars en mode DOS uniquement et je
fais:

deltree c:recycled
md c:recycled

Mais pour ceux qui ne maîtrisent pas le DOS, c'est un peu dangereux...




"Jacky" a écrit dans le
message de news:
Bonsoir Clément

Je confirme
Le code d'Alain fonctionne très bien, et la restauration est
possible même

sur 98 + xl97

Bonne soirée
JJ

"Clément Marcotte" a écrit dans le
message

de news:
Bonjour,

Ceci est peu broche à foin, mais bon:

Sub deplace()
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
fso.MoveFile "c:copieorigine1.txt", "c:recycled"
End Sub

Sauf qu'avec mon Windows 98, le fichier est bien dans la
corbeille,


mais il est invisible à partir de Windows et il faut passer par
une


fenêtre DOS pour l'éliminer de la corbeille.

Quant à savoir si la restauration est possible en inversant
l'ordre


des fichiers, je n'ai pas essayé.


"Michel HOLDERITH" <#nospam# a écrit dans le message
de


news:%
Bonjour tout le monde,

Quelqu'un sait-il quelle est la formule en VBA pour supprimer un
fichier ?


Merci d'avance.

@+
Michel.











1 2