MAJ Excel : Macro d'enregistrement dans un chemin spécifique bloqué

Bonjour,

Je sollicite votre aide car depuis une MAJ récente Excel, j'ai une de mes macros qui ne fonctionne plus.

En effet lors de la phase d'enregistrement, j'ai maintenant une fenêtre Excel qui s'ouvre me demandant "Enregistrer vos modifications dans ce fichier ?" La macro ne s'exécute donc pas jusqu'au bout.

image


Mon code est le suivant. Il me permet via un bouton de contrôle de formulaire dans l'onglet "Stock". Je rends visible l'onglet "Copy_Stock" et je copie de l'onglet "Stock" dans l'onglet "Copy_Stock". Je crée ensuite une copie de l'onglet "Copy_Stock" que je renomme et que j'enregistre dans un dossier prédéfini.

A la fin je re-masque mon onglet "Copy_Stock" et je reviens sur mon onglet"Stock".

Sub Copy_Stock()
'
Cells.Select
Selection.Copy
Sheets("Copy_Stock").Visible = True
Sheets("Copy_Stock").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("H:I").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft

' Stock Macro
'
Dim NewWk, FromWk, k, Nomfichier

FromWk = ActiveWorkbook.Name
Workbooks.Add
NewWk = ActiveWorkbook.Name
Application.DisplayAlerts = False
Workbooks(FromWk).Sheets("Copy_Stock").Copy before:=Workbooks(NewWk).Worksheets(1)
For k = Workbooks(NewWk).Sheets.Count To 2 Step -1
Workbooks(NewWk).Sheets(k).Delete
Next k
Nomfichier = Workbooks(FromWk).Path
If Right(Nomfichier, 1) <> "\" Then Nomfichier = Nomfichier & "\"
Nomfichier = Format(Sheets("Copy_Stock").Cells(2, 1), "_yyyymmdd")
Chemin = "C:\Entrepôt1\"
Application.DisplayAlerts = True
ChDir "C:\Entrepôt1\"
ActiveWorkbook.SaveAs Filename:=Chemin + ActiveSheet.Name + Nomfichier + ".csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True

ActiveWorkbook.Close
ActiveWindow.SelectedSheets.Visible = False
Sheets("Stock").Select
Range("A1").Select

End Sub

Un grand merci par avance pour votre aide !

Cordialement

Bonjour,

ActiveWorkbook.SaveAs Filename:=Chemin + ActiveSheet.Name + Nomfichier + ".csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True

Pourquoi mettez vous des + dans cette ligne ??

ce serait plutôt comme ceci je pense

ActiveWorkbook.SaveAs Filename:=Chemin & ActiveSheet.Name & "\" & Nomfichier & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True

Autre question, Activeworkbook est celui qui contient la macro ou NewWk ?
Le code pourrait être amélioré je pense

Cordialement

NB : Lorsque vous postez un code, veillez à utiliser les balises de code en cliquant sur l'icone </> dans la barre de menu et en collant le code dans la fenetre.

Bonjour,

Merci pour votre retour.

J'avais récupéré cette ligne de code en ligne. Les "+" étaient déjà présents.

Activeworkbook est celui qui contient les macros.

Je ne doute pas qu'il puisse être amélioré :)

Encore merci.

Cordialement

Activeworkbook est celui qui contient les macros.

Edit : non je ne pense pas car c'est celui que vous sauvegardez en CSV après copie des infos
De ce que je comprends : FromWK est le fichier qui contient les macros, NewWK est le fichier que vous sauvez en CSV

Sinon vous ne dites pas si cela fonctionne ?

@Dan,

Cela ne fonctionne pas non plus en switchant les + par & et en rajoutant "\".

Par ailleurs, je pense que vous avez raison car le Activeworkbook se ferme pour ensuite retourner sur ma classeur surlequel les macros sont présentes afin de re-masquer l'onglet "Copy_Stock" pour ensuite revenir sur l'onglet "Stock".

Cordialement

Cela ne fonctionne pas non plus en switchant les + par & et en rajoutant "\".

Quel est votre chemin de sauvegarde exact car je doute de ceci --> Chemin = "C:\Entrepôt1\"

Je ne pense pas que qu'il y ait un accent circonflexe sur le O de Entrepot...

Dan,

Non ce n'est pas le chemin réel. Je l'ai changé pour le forum.

Chemin = "C:\Dépôt_Quimperlé\"

Il en va de même pour "Stock_Quimperlé" et "Copy_Stock_Quimperlé".

J'ai autant de d'onglet que de dépôt et de dossier dans C:\ que de dépôt. Chaque onglet dans lequel j'exécute la macro est propre à un dépôt.

Cordialement

De base, vous devriez absolument éviter les accents de toutes sortes. Il ne faut pas oublier que l'informatique fonctionne en anglais et qu'en anglais il n'y a pas d'accents. Avec VBA cela peut toujours être source d'erreur

Sinon sans voir votre fichier essayez en remplaçant

Nomfichier = Workbooks(FromWk).Path
If Right(Nomfichier, 1) <> "\" Then Nomfichier = Nomfichier & "\"
Nomfichier = Format(Sheets("Copy_Stock").Cells(2, 1), "_yyyymmdd")
Chemin = "C:\Entrepôt1\"
Application.DisplayAlerts = True
ChDir "C:\Entrepôt1\"
ActiveWorkbook.SaveAs Filename:=Chemin + ActiveSheet.Name + Nomfichier + ".csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True
ActiveWorkbook.SaveAs Filename:=Chemin & ActiveSheet.Name & "\" & Nomfichier & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True

par ceci

Nomfichier = Format(Workbooks(FromWk).Sheets("Copy_Stock_Quimperlé").Cells(2, 1), "_yyyymmdd")
Chemin = "C:\Dépôt_Quimperlé\"
Workbooks(NewWk).SaveAs Filename:=Chemin & ActiveSheet.Name & "-" & Nomfichier & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False, Local:=True

Crdlt

Bonjour Dan,

J'ai implémenté votre code à la place. La macro se déroule bien mais le fichier ne se crée pas dans le dossier.

J'ai essayé ce matin de faire une macro simple de création de classeur, d'enregistrement (chemin et nom prédéfini) et de fermeture. ça ne marche pas...

J'ai également essayer de faire une macro simple,en mode enregistreur de macro, de création de classeur, d'enregistrement (chemin et nom prédéfini) et de fermeture. Ca ne marche pas...

J'essaie sur un autre PC les 3 macros (la macro modifiée par vos soins ainsi que les deux autres en test). Ca marche !

Cordialement

Bonjour

- Cela bloque sur quelle ligne dans le code ?
- Vous avez toujours le message placé dans votre premier post qui s'affiche ?
- Pourquoi sauvez-vous en fichier CSV ?

Crdlt

Bonjour,

Ca bloque à : ActiveWindow.SelectedSheets.Visible = False

ActiveWorkbook.Close
ActiveWindow.SelectedSheets.Visible = False
Sheets("Stock").Select
Range("A1").Select

End Sub

Non je n'ai plus le message qui s'affiche mais le fichier ne s'enregistre pas.

Pas de raison particulière pour le csv.

Cordialement

Ca bloque à : ActiveWindow.SelectedSheets.Visible = False

Vous pouvez désactiver cette ligne

Pas de raison particulière pour le csv.

Mais un fichier CSV ou XLSX, ce n'est pas la même chose. Si votre sauvegarde est destinée à être ouverte uniquement avec Excel, choisissez l'extension xlsx.

Rechercher des sujets similaires à "maj macro enregistrement chemin specifique bloque"