XL 2010 Suppression d'un fichier par Vba (Résolu)

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous, le Forum,

J'ai besoin de votre aide car, à la suite des instructions ci-dessous, je souhaite supprimer le Fichier2 mais je ne trouve pas comment faire.
Je me permets donc de faire à nouveau appel à vous pour savoir quel code je dois ajouter après la fermeture du fichier 1 'origine" et du fichier 2 "destination" pour supprimer ce dernier.

VB:
FichiersAOuvrir = Application.GetOpenFilename(, , , , True)

           If IsArray(FichiersAOuvrir) Then

           For i = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)

            Set oFSO = New Scripting.FileSystemObject

            Set Fichier1 = oFSO.GetFile(FichiersAOuvrir(i))

            Set oF0 = oFSO.CreateTextFile("mandat_" & Now & ".txt")
            oF0.Close

            Set oF2 = oFSO.GetFile("mandat_" & Now & ".txt")
            Set Fichier2 = oF2.OpenAsTextStream(ForAppending)
            
            Set Fichier1 = oFSO.OpenTextFile(FichiersAOuvrir(i), 1)

            While Not Fichier1.AtEndOfStream
                   StrLigne = Fichier1.ReadLine
                   Fichier2.WriteLine StrLigne
            Wend

           next (i)

           end if

            Close Fichier1.Close
            Close Fichier2.Close

Merci par avance à tous pour l'aide que vous pourrez m'apporter.
Bonne journée à tous.

Scoobidoo.
 

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Une et deux suggestions parmi moults
VB:
Sub a()
Dim strFilePathAndname$
strFilePathAndname = "C:\DOSSIER\Fichier.txt"
With CreateObject("Scripting.FileSystemObject")
    If .FileExists(strFilePathAndname) Then
        .DeleteFile strFilePathAndname
    End If
End With
End Sub
VB:
Sub b()
Dim strFilePathAndname$, X$
strFilePathAndname = "C:\DOSSIER\Fichier.txt"
X = Dir(strFilePathAndname)
If Not X = "" Then
Kill strFilePathAndname
End If
End Sub
 

Scoobidoo

XLDnaute Occasionnel
Bonjour Staple1600, le Forum,

Merci pour ta proposition qui doit pouvoir s'adapter à ce que je recherche car je sens que je ne suis pas loin.

En effet, mon problème est que le chemin
VB:
strFilePathAndname = "C:\DOSSIER\Fichier.txt"
est variable !

N'y a t-il pas moyen de le récuperer lors de la création et à l'ouverture

VB:
Set oF0 = oFSO.CreateTextFile("mandat_" & Now & ".txt")
            oF0.Close

           Set oF2 = oFSO.GetFile("mandat_" & Now & ".txt")
           Set Fichier2 = oF2.OpenAsTextStream(ForAppending)

C'est bien là que je bloque.

Merci pour ton aide.

Scoobidoo.
 

Staple1600

XLDnaute Barbatruc
Re à tous

Inspires-toi ce ceci qui fonctionne sur mon Excel 2013
VB:
Sub testOK()
Dim objFSO, strPath$, Fichier2 As Object
strPath = "C:\DOSSIER\SOUSDOSSIER\"
Set oFSO = CreateObject("Scripting.FileSystemObject")
NomFic = "mandat_" & Format(VBA.Now, "ddmmyyyy_hhmmss.txt")
'ligne pour test
MsgBox NomFic
Set Fichier2 = oFSO.CreateTextFile(strPath & NomFic, True)
Fichier2.Close
Kill oFSO.GetAbsolutePathName(strPath & NomFic)
End Sub
 

Scoobidoo

XLDnaute Occasionnel
rebonjour Staple1600, le forum,

En m'inspirant de tes propositions, j'ai enfin trouvé le moyen d'arriver à mon bur en inserant les lignes précédées et suivies de ***.

VB:
FichiersAOuvrir = Application.GetOpenFilename(, , , , True)

           If IsArray(FichiersAOuvrir) Then

           For i = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)

            Set oFSO = New Scripting.FileSystemObject

            Set Fichier1 = oFSO.GetFile(FichiersAOuvrir(i))

            Set oF0 = oFSO.CreateTextFile("mandat_" & Now & ".txt")
            oF0.Close

            Set oF2 = oFSO.GetFile("mandat_" & Now & ".txt")
         ***NomFic2 = = oFSO.GetFile("mandat_" & Now & ".txt")***
            Set Fichier2 = oF2.OpenAsTextStream(ForAppending)
           
            Set Fichier1 = oFSO.OpenTextFile(FichiersAOuvrir(i), 1)

            While Not Fichier1.AtEndOfStream
                   StrLigne = Fichier1.ReadLine
                   Fichier2.WriteLine StrLigne
            Wend

           next (i)

           end if

            Close Fichier1.Close
            Close Fichier2.Close
           
           ***Kill NomFic2***

Cela fonctionne très bien.
Un grand merci Satple1600 pour m'avoir guidé et inspiré.
Bonne fin de journée à tous.

Scoobidoo.
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 443
Membres
103 211
dernier inscrit
pierrecharbs