Erreur lors d'un enregistrement d'un fichier .csv sous .xlsx

Bonjour,

J'exécute le code ci-dessous avec (F5) et ça me donne les messages de blocage suivants :

  • Erreur d'écriture dans le fichier Test.csv. : Le disque est probablement plein or ce n'est pas le cas.
  • WinRAR : Message de diagnostique : Le processus ne peut pas accéder au fichier car un autre processus en a verrouillé une partie.

J'ai même marqué une pause de 5 secondes entre l'ouverture du fichier Test.csv et sa conversion vers Test.xlsx.

A savoir qu'à la fin j'ai mon fichier Test.xlsx mais avec une taille de 9Ko au lieu de 2200 Ko que je devais normalement avoir.

A noter que lorsque je l'exécute avec (F8) ligne par ligne ça marche sans aucun souci???!!!

Sub Test

'Code...

'Extraire le fichier Test.csv compressé en .rar
    WinRarPath = "C:\Program Files (x86)\WinRar\"
    Source = CheminPC & "Test.rar"
    Desti = CheminPC

    RarIt = Shell(Chr(34) & WinRarPath & "WinRar.exe" & Chr(34) & " e " & Chr(34) & Source & Chr(34) & " " & Chr(34) & Desti & Chr(34), vbNormalFocus)

    'Ouverture fichier format .csv et conversion .xlsx
    Workbooks.OpenText Filename:=CheminPC & "Test.csv", Origin:=xlWindows, _
                    StartRow:=1, DataType:=xlDelimited, Semicolon:=True, Comma:=False, local:=True

    'Marquer une pause de macro
    Application.Wait (Now + TimeValue("00:00:05"))

    'Sauvegarde au format .xlsx et fermeture
    ActiveWorkbook.SaveAs Filename:= _
        CheminPC & "Test.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    ActiveWorkbook.Close

End Sub

Merci par avance pour votre aide.

Bonjour Dev007

Je mettrais la ligne suivante (à voir le délai, mais 10s me paraissent amplement suffisantes)

Application.Wait(Now + TimeValue("0:00:10"))

Entre la ligne RarIT et Workbooks.OpenText

Je pense que le fichier n'est pas encore libéré avant la suite

A tester

Bonjour BrunoM45,

Oui c'est bonnnnnnnnnnnnnnnnnnnnnnn

Merci beaucoup pour ton aide précieuse

Rechercher des sujets similaires à "erreur lors enregistrement fichier csv xlsx"