ma macro corromp mon fichier

pascal_bidouille

XLDnaute Junior
Hello,

J'ai la macro suivante :
Code:
Sub lister_fichier() 
    Dim fichier As String, chemin As String
    Dim FSO As Object
    Dim SourceFolder As Object
    Dim FileItem As Object
       

    Dim jourf As Date

    Dim m As Integer
  

    Dim sh As Worksheet
    fliste="mafeuille"
	
    Set sh = ThisWorkbook.Sheets(fliste)
    sh.Cells.Clear
 

    chemin = "c:\monchemin"

    If Dir(chemin, vbDirectory) = "" Then
        MsgBox ("Répertoire  non existant" & vbNewLine & "Chargement impossible")
        End
    
    End If
    
    m = 1
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = FSO.GetFolder(chemin)
    For Each FileItem In SourceFolder.Files
        fichier = FileItem.Name
        If Len(fichier) > 5 Then
            If UCase(Right(fichier, 5)) = ".XLSM" Then
                jourf = FileItem.DateLastModified
                sh.Cells(m, 2) = jourf
                
                sh.Cells(m, 1) = fichier
                m = m + 1
            End If
        End If
    
    Next
    

    If m > 1 Then
        sh.Sort.SortFields.Clear
        sh.Sort.SortFields.Add Key:=sh.Range(sh.Cells(1, 2), sh.Cells(m, 2)), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With sh.Sort
            .SetRange sh.Range(sh.Cells(1, 1), sh.Cells(m, 2))
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            On Error GoTo error_apply
            .Apply
        End With
 

    
    End If
Exit Sub
error_apply:
    MsgBox ("erreur apply")
    End
End Sub

L'objectif est de mettre dans mafeuille la liste des fichiers présents dans un répertoire puis les trier par ancienneté.
Le souci est que cela fait une corruption de mon fichier. Du coup à l'ouverture suivante j'ai un un message du style :
Des erreurs ont été détectées dans le fichier
Enregistrements réparés: Affichage dans la partie /xl/worksheets/sheet6.xml​

J'ai aussi essayé avec des fonctions style fichier = Dir(chemin & "\*.xlsm")

Parfois la macro fait aussi complétement planter excel qui doit alors redémarrer.

Des idées ?
 
C

Compte Supprimé 979

Guest
Re : ma macro corromp mon fichier

Bonjour Pascal_bidouille

Ton problème ne vient pas du code, celui-ci fonctionne parfaitement (testé)

Si Excel plante, c'est qu'il boucle sans fin et ce n'est pas à cause de ce code

Du coup si Excel plante, ton fichier peut être corrompu, il faut utiliser un autre fichier vierge

A+
 

Discussions similaires