IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

supprimer un fichier s'il es vide


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut 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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    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

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut supprimer un fichier s'il es vide
    finalement .j'ai décide de faire une fonction séparé du code principale ç'a ma enlever l'erreur précédent mais un autre erreur a du apparaître je ne l'ai pas bien compris mais il a un rapport avec la ligne " If IsEmpty ...."

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Function sms_non_envoyes()
     
    Dim str, LePath As String
    Dim Dl2, x As Long
    Dim fs As Object
     
        ' 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
     
                    End If
                Next x
        End With
    WBsms.Save
    WBsms.Close
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Function supp()
    Dim LePath As String
    Dim fs As Object
    Dim suppr As Variant
     
        LePath = "P:\Mercure\CONTENTIEUX OUTILS\PROG CREATION SMS\SMS NON ENVOYES DU " & Format(Now(), "dd mm yy") & ".xlsx"
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set suppr = fs.GetFile("P:\Mercure\CONTENTIEUX OUTILS\PROG CREATION SMS\SMS NON ENVOYES DU " & Format(Now(), "dd mm yy") & ".xlsx") '= on veut supprimer le fichier
        If IsEmpty(WBsms.Sheets(1).Rows) Then
        suppr.Delete
        End If
     
    End Function

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 107
    Points : 68
    Points
    68
    Par défaut supprimer un fichier s'il est vide
    quelqu'un pourrait m'aider s'il vous plait .
    merci par avance.
    cdlt

Discussions similaires

  1. Supprimer le fichier log s'il est vide
    Par SamSer dans le forum Logging
    Réponses: 1
    Dernier message: 25/01/2011, 16h48
  2. [Batch] Parcourir un répertoire et supprimer les fichiers vides
    Par olivier.x dans le forum Scripts/Batch
    Réponses: 23
    Dernier message: 21/01/2010, 15h36
  3. supprimer des fichiers txt vides
    Par irouni dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 31/12/2007, 09h37
  4. [cvs] supprimer un fichier
    Par ed_hunter dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 27/03/2007, 18h17
  5. Supprimer un fichier par rapport a une date
    Par NewB dans le forum Linux
    Réponses: 2
    Dernier message: 25/06/2003, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo