Enregistrer sous répertoire et nom_fichier variables

Bonjour à tous et ravie de rejoindre la communauté

Voilà mon problème : J'essaye désespéramment de faire fonctionner une macro qui enregistre la feuille d'un classeur dans un répertoire définit par une cellule et le nom du fichier par une autre cellule.

Option Explicit

Sub CopieFeuille()
Dim Chemin As String, NomFichier As String

Application.ScreenUpdating = False
Chemin = "C:\Users\Karine\Documents\bon_commande" & Range("F12").Value & "\"

On Error Resume Next
MkDir Chemin
On Error GoTo 0
NomFichier = Range("H10") & ".xls"
Sheets(Range("F12").Value).Copy
With ActiveWorkbook
.SaveAs Filename:=Chemin & NomFichier
.Close
End With

End Sub

J'espère vraiment que quelqu'un pourra m'aider car je galère depuis des jours..

Merci d'avance aux experts

Fichier excel joint

14bon-commande.xlsm (41.09 Ko)

Bonjour,

Dans l'exemple joint pourriez vous nous préciser quel serait le chemin sous lequel vous souhaitez enregistrer votre fichier ?

Le dossier bon_commandeS00003 existe-t-il déjà ? Qu'est ce qui ne fonctionne pas ? Quel est le message d'erreur ? Sur quelle ligne ?

Cdlt,

Edit : Je me rend compte qu'il y a une erreur ici Sheets(Range("F12").Value).Copy. Que souhaitez vous faire par l'intermédiaire de cette instruction ? Copier la feuille active ? Si c'est le cas ce n'est pas la bonne méthode.

Bonjour et merci beaucoup d'avoir pris le temps de me répondre

Le chemin d'enregistrement est un sous dossier du fichier d'origine portant le numéro de chantier (Bon_commande /sous dossier S00003)

Le dossier S00003 n'existe pas lors de la création du premier bon de commande mais sera existant lors de la création des prochains bdc.

Je souhaiterais enregistrer la feuille dans ce dossier avec pour nom de fichier le numéro du bon de commande.

Effectivement la macro ne s'exécute pas et le debogage s'éffectue sur un arrêt de la ligne "Sheets(Range("F12").Value).Copy

Merci encore pour votre aide...

Très belle journée à vous

Karine

Bonjour,

En partant du principe que votre dossier existe. Sinon merci de nous préciser le comportement que vous souhaitez que le fichier ai :

Sub ENR()
Application.ScreenUpdating = False
With ActiveSheet
    .Copy
    ActiveWorkbook.SaveAs "C:\Users\Karine\Documents\bon_commande" & .Range("F12") & "\" & .Range("H10")
End With
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

Cdlt,

21classeur1.xlsm (32.61 Ko)

Merci pour votre travail..

Quand j'exécute la macro, elle ne peut s'effectuer.

Elle bugge à :

erreur execution

ActiveWorkbook.SaveAs "C:\Users\Karine\Documents\bon_commande" & .Range("F12") & "\" & .Range("H10")

debogage

Une nouvelle feuille nommée "classeur" se créait .

Aussi à l'ouverture du fichier l'incrémentation automatique du numéro de commande ne s'effectue plus

Merci encore pour votre aide

Karine

Bonjour,

Avez-vous lu correctement mon message ? Le dossier bon_commandeS00003 existe-t-il ? Si non alors impossible d’exécuter la macro car le lien n'est pas trouvé vous ne nous avez pas donné le comportement à avoir au cas où le dossier n'existe pas malgré mon interrogation dans mon précédent post.

L'incrémentation ? Quelle incrémentation ? Je n'ai jamais vu ce mot dans ce sujet.

Je suis désolé mais je ne comprend rien, sans plus de précisions sur le besoin, les comportements à adopter, etc ... Bon courage.

Cdlt,

Rechercher des sujets similaires à "enregistrer repertoire nom fichier variables"