Problème d'exécution 1004 Methode SaveAs a échoué
Bonjour,
Je ne parviens pas a débuguer ma macro.
Pour information, elle a fonctionné pendant plusieurs années et depuis peu j'ai des instructions qui plantent.
Ici la méthode SaveAs qui échoue.
ActiveWorkbook.SaveAs Filename:=chemin, FileFormat:=xlCSV, Local:=TrueMa fonction complète ci-dessous.
Sub Generer_fichier()
If Not IsEmpty(ActiveWorkbook.Worksheets("Configuration").Range("D9")) And Not IsEmpty(ActiveWorkbook.Worksheets("INPUT_DEVIS").Range("C2")) And Not IsEmpty(ActiveWorkbook.Worksheets("INPUT_RAMES").Range("B8")) Then
ActiveWorkbook.Save
ActiveWorkbook.RefreshAll
If IsEmpty(ActiveWorkbook.Worksheets("CSV_LIGNES_DEVIS_RAMES").Range("A2")) Then
MsgBox "Les prestations n'ont pas été ventilées par type de rame"
Else
Dim dossier$, fichier$, chemin$
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show <> 0 Then dossier = .SelectedItems(1) & "\" Else Exit Sub
End With
'---------------Debut export rames----------------------
fichier = "1 - Export_rames_" & ActiveWorkbook.Worksheets("Configuration").Range("D9").Value & "_" & ActiveWorkbook.Worksheets("Configuration").Range("D11").Value & "_" & Format(Now, "yyyymmdd")
chemin = dossier & fichier
If Dir(chemin) <> "" Then
If MsgBox("Le fichier existe déjà ! Voulez-vous le remplacer ?", vbYesNo + vbExclamation, "Demande de confirmation") <> vbYes Then Exit Sub
End If
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("CSV_RAMES").Visible = True
ThisWorkbook.Worksheets("CSV_RAMES").Copy
ActiveWorkbook.SaveAs Filename:=chemin, FileFormat:=xlCSV, Local:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
ThisWorkbook.Worksheets("CSV_RAMES").Visible = False
Application.ScreenUpdating = True
MsgBox "Votre fichier a été exporté " + fichier, , "EXPORT RAMES"
'---------------Fin export rames----------------------
End If
Else
If IsEmpty(ActiveWorkbook.Worksheets("Configuration").Range("D9")) Then
MsgBox "L'affaire n'a pas été sélectionnée"
Else
If IsEmpty(ActiveWorkbook.Worksheets("INPUT_DEVIS").Range("C2")) Then
MsgBox "Le devis n'a pas été importé"
Else
MsgBox "Les rames n'ont pas été saisies"
End If
End If
End If
End SubJ'utilise actuellement Excel Microsoft 365 Version 2406.
Merci d'avance pour votre aide.
Bien cordialement
Bonjour, quelques pistes :
Je vois que votre macro essaie d'exporter un workbook, donc un classeur avec potentiellement plusieurs feuilles, en CSV = fichier texte ne pouvant contenir les valeurs que d'une feuille maximum. Avez-vous essayé de lancer la macro avec une feuille unique ?
Pourquoi exécutez-vous cette commande sans définir de collage derrière ?
ThisWorkbook.Worksheets("CSV_RAMES").Copy
Etes-vous sur que votre variable "chemin" est définie correctement dans la fenetre espion ?
Pourquoi votre macro mélange activeworkbook et thisworkbook ? C'est difficile à suivre, peut etre que vous exportez le mauvais fichier.
Bonjour saboh12617,
Etes-vous sur que votre variable "chemin" est définie correctement dans la fenetre espion ?
Il y avait un problème de '/' ajouté à tort dans la chaine de caractères...
Merci pour l'aide.