Problème pour enregistrer classeur

zeltron24

XLDnaute Impliqué
Bonsoir le Forum,

J'ai un classeur ouvert "Modèle Factures" je modifie son nom afin d'avoir comme nouveau nom, le nom du client que je mais dans une textbox ensuite la macro récupère dans une variable vClient le nom et dans vChemin le chemin dans lequel le classeur doit etre enregistré.

voici le code :

Code:
Private Sub Btn_Enreg_Click()
Dim vChemin As String, vFichier As String
Dim Reponse As String

' Récupération des variables
    vChemin = [H84]
    vClient = [E14] & " " & [H14]
    vFichier = Txt_Nom

' Enregistrer le classeur
    Reponse = MsgBox("Désirez-vous enregistrer " & Chr(10) & _
    vFichier & "?" & " dans " & Chr(10) & vChemin, vbYesNo + vbQuestion, "Sauvegarde")
    
    If Reponse = vbYes Then
        Set NewBook = Workbooks.Add 'creation
            NewBook.SaveAs vChemin & vFichier
    End If

    If Reponse = vbNo Then
    Exit Sub
    End If
    
End Sub
Lorsque j'appuie sur le bouton enregistrer j'ai ce message :
Capture.jpg

Il doit y avoir une erreur mais je ne trouve pas.


PS: Avec un début de fichier
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    28.3 KB · Affichages: 45
  • Classeur3.xlsm
    27.9 KB · Affichages: 46
  • Classeur3.xlsm
    27.9 KB · Affichages: 52
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Problème pour enregistrer classeur

Bonjour zeltron24, grisan29, ralph45,

Pas tout regardé: un petit mot d'explication sur ce que l'utilisateur peut (ou doit?) faire (ou choisir ou vérifier, etc.) aurait permis de mieux comprendre, de même que les circonstances dans lesquelles le message évoqué apparaît.

Dans la Sub Btn_Modif_Nom_Click la chaine affectée au Txt_Modif_Nom contient un double point (':') ... pour autant qu'il m'en souvienne :rolleyes: voilà un caractère qui est "interdit" dans les noms de fichiers et de dossier, non?

Dans Sub Btn_Enreg_Click, l'instruction NewBook.SaveAs vChemin & vFichier ne fonctionnera qu'avec une extension .xlsx, me semble-t-il. Essaye en précisant le FileFormat comme tu l'as fait dans la Sub Btn_Save_Click
 

zeltron24

XLDnaute Impliqué
Re : Problème pour enregistrer classeur

Bonsoir,

Après de vaines recherches et avec votre aide, je ne parviens pas à trouver la solution.

Explication (Post de Modeste) :

1 - J'ouvre un classeur "Modèle Factures"
2 - Je renseigne les coordonnées clients
3 - Je rempli ma facture
4 - Je sauvegarde ma facture MAIS :
4.1 - Je récupère le nom du client dans une TxtBox Puis dans une variable (ce qui deviendra le nom du classeur)
4-2 - J'ai le choix du chemin pour l'enregistrement du classeur "Nom Client" avec Extension
4-3 - Si le répertoire chemin + (Nom Client) n'existe pas , création du répertoire
5- Fermeture du classeur "Modèle Factures" sans changement
6- Création du classeur "Nom client" et enregistrement de celui-ci

Ou Laisser ouvert le classeur "Modèle Factures" et création du classeur "Nom Client" et l'enregistrer dans le chemin sélectionner dans le formulaire "Save"

J'espère avoir été plus clair sinon demandez moi ce qui vous interpelle, Merci
 

Modeste

XLDnaute Barbatruc
Re : Problème pour enregistrer classeur

Bonsoir,

Je parlais aussi de
les circonstances dans lesquelles le message évoqué apparaît
Il y a 4 boutons "Enregistrer" et un qui permet de changer le nom du fichier ... Ils ont tous le même résultat?

Tu ne dis pas non plus si les modifications suggérées te semblent fondées, si tu les as testées, ni si elles ont eu un quelconque effet :confused:

Je n'ai pas vu, dans le code, une instruction permettant de créer un répertoire qui serait inexistant!?
 

zeltron24

XLDnaute Impliqué
Re : Problème pour enregistrer classeur

Bonsoir à tous et à Modeste
Pour ce qui est des boutons "enregistrer seul le premier est en cours les autres seront transformés dés que j'aurais trouvé la bonne macro sur le premier.
J'ai bien évidemment testé et suivi vos conseils mais MkDir me donne à chaque fois une erreur.
Je parviens à créer le répertoire mais lorsque je veux réenregistre le classeur suite à une modif, j'ai un message d'erreur 75 "chemin et fichier incorrect"
Vos conseils sont testés sur mon fichier d'origine d'ou la non présence de la création de répertoire
 

Modeste

XLDnaute Barbatruc
Re : Problème pour enregistrer classeur

Bonjour zeltron24, le forum,

Tu es "dur en affaires" ;): le message d'erreur n'est plus le même que dans ton premier message et, par ailleurs, tu dis en même temps "MkDir me donne à chaque fois une erreur" et "Je parviens à créer le répertoire " … comment les deux sont-ils compatibles? Le MkDir était de toute manière absent du classeur déposé ici!?
Tu nous parles ensuite de "réenregistrer le classeur suite à une modif" :eek: on n'est plus dans ton UserForm, là? :confused:
J'avoue que je suis largué.

Voici les manips que j'ai testées sous Excel 2013:
  • dans la Sub Initialize, je charge le contenu de H83 dans Txt_Nom, plutôt que H82 (je n'ai donc plus l'extension .xlsm) --> je peux enregistrer le fichier (il est enregistré sous le nom du classeur de départ, avec une extension .xlsx)
  • dans la Sub Btn_Modif_Nom_Click, j'ai supprimé le double point dans le Txt_Modif_Nom ainsi que l'extension .xlsm au bout --> je peux enregistrer le fichier fichier (il est enregistré sous le nom "Aimar Jean N° -suivi du nombre que j'ai ajouté, le cas échéant, dans la zone de texte mais sans le ':'- avec une extension .xlsx)
  • Autre solution fonctionnelle sur ma machine, si je veux enregistrer un fichier avec une extension .xlsm: copier-coller cette instruction qui figure dans ton autre Sub
    Code:
    ActiveWorkbook.SaveAs Filename:= _
    "ton_chemin_d'accès\Mondial 2014.xlsm", _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    … j'obtiens bien l'enregistrement d'un fichier .xlsm, nommé Mondial 2014, à l'emplacement indiqué.


Soit ce qui fonctionne en 2013 diffère de ce qu'il convient de faire sous 2007, soit tu as tellement "le nez dans le guidon" que quelque chose t'échappe. Quoi qu'il en soit, je ne peux rien faire de plus, en ce qui me concerne. :(
 

job75

XLDnaute Barbatruc
Re : Problème pour enregistrer classeur

Bonjour zeltron24, ralph45, grisan29, Modeste, le forum,

Avec une ComboBox pour les chemins c'est assez simple, voyez le fichier joint et le code de l'USF :

Code:
Private Sub Btn_Enreg_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
If Not TextBox1 Like "*.xlsm" Then TextBox1 = TextBox1 & ".xlsm"
If ComboBox1.ListIndex = -1 Then ComboBox1 = "": ComboBox1.DropDown: Exit Sub
With ThisWorkbook
  If ComboBox1 & TextBox1 = .FullName Then .Save: Exit Sub 'enregistrement normal
  On Error Resume Next
  MkDir ComboBox1 'crée les dossiers s'ils n'existent pas
  .SaveCopyAs ComboBox1 & TextBox1 'sauvegarde
  If Dir(ComboBox1 & TextBox1) = "" Then MsgBox "L'enregistrement a échoué..."
End With
End Sub

Private Sub UserForm_Initialize()
TextBox1 = [H82]
Label3 = [H83]
ComboBox1.List = [H83:H86].Value
End Sub
Téléchargez d'abord le fichier, par exemple sur le bureau.

Bonne journée.
 

Pièces jointes

  • Classeur(1).xlsm
    22.9 KB · Affichages: 51
  • Classeur(1).xlsm
    22.9 KB · Affichages: 49

zeltron24

XLDnaute Impliqué
Re : Problème pour enregistrer classeur

Bonsoir à vous tous,

En effet je suis peut être bordélique dans mes demandes.
Je vous ai donnés des infos qui suite à vos réponses, ont été mises en pratique dans mon classeur d'origine, d’où le mal être pour votre compréhension et je m'en excuse sincèrement.

Mais grâce à votre aide, et après bien des talonnements, je suis parvenu à ceci : (Voir fichier joint)

Cliquez sur "New Devis/ Factures Sélections diverses"
Un formulaire s'ouvre cliquez sur "Sauvegarder Documents" (certains boutons ne seront pas opérationnels)
(J'ai pour l'envoi supprimer des feuilles à données perso)
Le formulaire de sélection des différents chemins devant sauvegarder le fichier s'ouvre
J'ai donc plusieurs options de sauvegarde
J'ai testé et recherché sur la toile les formules pouvant me servir et grâce à votre secours je les ai modifiés pour donné ce résultat.
J'ai repris l'idée de job qui est très bonne
Mon souci est que je veux conserver le fichier "Moèle Fac" vierge et créer un nouveau fichier dont le nom du fichier sera le nom du client renseigné dans le classeur (Fichier) "Modèle Fac"
 

Pièces jointes

  • Classeur.xlsm
    205.7 KB · Affichages: 45
  • Classeur.xlsm
    205.7 KB · Affichages: 51
Dernière édition:

Discussions similaires

Réponses
2
Affichages
147

Statistiques des forums

Discussions
312 203
Messages
2 086 191
Membres
103 152
dernier inscrit
Karibu