Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
 
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.
 
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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…