Supprimer un fichier s'il es vide

bonjour tout le monde je reviens vers .si vous pourriez m'aider à résoudre mon problème je serai très reconnaissant

je souhaite supprimer un fichier si il est vide après l'avoir créer . j'ai utilisé "Kill " mais je crois que vu que le ficher se trouve sur un emplacement réseau ou parce avec mon programme il s'ouvre automatiquement après la création du coup l'erreur me dit permission refusé voici le code :

Function sms_non_envoyes()

Dim str, LePath As String
Dim Dl2, x As Long
    ' récupération nombre lignes non vides dans la page DATA pour extraire à partir de la ligne suivante
    With ws
    Dl = ws.Range("T" & ws.Rows.Count).End(xlUp).Row

        Set WBsms = Workbooks.Add
        WBsms.SaveAs Filename:=ThisWorkbook.Path & "\SMS NON ENVOYES DU " & Format(Now(), "dd mm yy") & ".xlsx"
        ' boucle allant de 1 jusqu'à la dernière ligne non vide de la feuille DATA
            For x = Dl To 1 Step -1
                Dl2 = WBsms.Sheets(1).Range("A" & ws.Rows.Count).End(xlUp).Row

                ' si la cellule en T1 ... Tx est vide alors on copie la ligne entière dans le fichier wb_sms_non_envoyes
                str = ws.Range("T" & x)
                If ws.Range("T" & x) = "" Then
                ws.Rows(x).Cut Destination:=WBsms.Sheets(1).Rows(Dl2 + 1)
                ws.Rows(x).Delete
                Else
                    LePath = Dir("P:\PROG CREATION SMS\SMS NON ENVOYES DU " & Format(Now(), "dd mm yy") & ".xlsx")
                    Do While LePath <> ""
                        Kill "P:\PROG CREATION SMS\" & LePath
                        LePath = Dir
                    Loop
                'suppression
                End If
            Next x
    End With
WBsms.Save
WBsms.Close
End Function

merci par avance

cdlt

Bonjour,

Avant de plonger dans ta macro ...

Supprimer un fichier s'il est vide ...

signifie que tu as la possibilité de déterminer qu'un fichier est vide ...

Pourrais-tu expliquer par quel moyen tu identifies tes fichiers vides ...?

Bonjour,

Une proposition à étudier.

Cdlt.

Public Sub SMS_non_envoyes()
Dim wb As Workbook
Dim ws As Worksheet, ws2 As Worksheet
Dim strPath As String, strFilename As String
Dim rw As Long, LastRow As Long, lRow As Long

    Application.ScreenUpdating = False

    Set ws = ActiveSheet
    LastRow = ws.Cells(Rows.Count, 20).End(xlUp).Row
    strPath = ws.Parent.Path
    Set wb = Workbooks.Add(xlWBATWorksheet)
    Set ws2 = wb.Worksheets(1)

    For rw = LastRow To 1 Step -1
        If IsEmpty(ws.Cells(rw, 20)) Then
            lRow = lRow + 1
            With ws
                .Rows(rw).Copy Destination:=ws2.Cells(lRow, 1)
                .Rows(rw).Delete
            End With
        End If
    Next rw

    If lRow > 0 Then
        strFilename = strPath & "\SMS NON ENVOYES DU " & Format(Date, "yyyy-mm-dd") & ".xlsx"
        wb.SaveAs Filename:=strFilename, FileFormat:=51
    Else
        wb.Close savechanges:=False
    End If

End Sub

Bonjour,

Avant de plonger dans ta macro ...

Supprimer un fichier s'il est vide ...

signifie que tu as la possibilité de déterminer qu'un fichier est vide ...

Pourrais-tu expliquer par quel moyen tu identifies tes fichiers vides ...?

bonjour. James ,merci d'abord pour ta réactivité . un fichier vide c'est qu'il ne contient aucune donnée ( feuilles vides )

cdlt

bonjour. James ,merci d'abord pour ta réactivité . un fichier vide c'est qu'il ne contient aucune donnée ( feuilles vides )

cdlt

Bonjour,

Merci beaucoup pour ton aide ...

Pour supprimer ton fichier ... il doit être fermé ...

Donc ... au risque de me répéter ...

Pourrais-tu expliquer par quel moyen tu identifies tes fichiers vides ...???

Bonjour,

Pas de retour sur ma proposition ?

On enregistre le nouveau classeur s'il comporte des données, sinon on le ferme sans l'enregistrer.

On a donc pas à le supprimer.

Cdlt.

bonjour. James ,merci d'abord pour ta réactivité . un fichier vide c'est qu'il ne contient aucune donnée ( feuilles vides )

cdlt

Bonjour,

Merci beaucoup pour ton aide ...

Pour supprimer ton fichier ... il doit être fermé ...

Donc ... au risque de me répéter ...

Pourrais-tu expliquer par quel moyen tu identifies tes fichiers vides ...???

Désolé j'ai pas bien compris votre question .en fait je retire l'idée de supprimer le fichier .c'est mieux que si il ne me trouve pas des cellules vides sur la feuille DATA c'est pas la peine de le créer . voici une partie du code

' si la cellule en T1 ... Tx est vide alors on copie la ligne entière dans le fichier wb_sms_non_envoyes
                str = ws.Range("T" & x)
                If ws.Range("T" & x) = "" Then
                ws.Rows(x).Cut Destination:=WBsms.Sheets(1).Rows(Dl2 + 1)
                ws.Rows(x).Delete 
                'suppression
                End If

mais je ne sais pas comment ne pas créer le fichier dans ce cas.

Bonjour,

Pas de retour sur ma proposition ?

On enregistre le nouveau classeur s'il comporte des données, sinon on le ferme sans l'enregistrer.

On a donc pas à le supprimer.

Cdlt.

merci Jean Eric pour ta proposition . j'ai testé ton code il n'efface pas le fichier même s'il est vide

pic

Re,

Salut Jean-Eric

@slakhdin

Je vois que tu as une idée bien précise du chemin à suivre ...

Bonjour,

J'ai pourtant l'impression que la proposition répond à tes attentes.

A tester !...

Cdlt.

5slakhdin.xlsm (16.26 Ko)

Re,

Salut Jean-Eric

@slakhdin

Je vois que tu as une idée bien précise du chemin à suivre ...

oui j’espère que je réussirai .merci en tout cas

sinon est ce que t'as une idée de comment ne pas créer le fichier dans le cas où il ne me trouve pas de cellules vides ?

merci par avance.

Bonjour,

J'ai pourtant l'impression que la proposition répond à tes attentes.

A tester !...

Cdlt.

slakhdin.xlsm

merci jean Eric .je vais adapter la macro à mes besoins merci infiniment .

Rechercher des sujets similaires à "supprimer fichier vide"