Excel- Sauvegarder avec un nom special

Résolu
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -  
mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai 3 questionnaires sous excel, dans 3 classeurs différents, je voudrais savoir comment faire pour les sauvegarder avec pour nom la référence du client donnée dans une cellule particulière [A1] par exemple,
et 3 lettres d'identification du questionnaire (ENT, PLA, DES).

En [A1] est écrit un nombre, référence du client: "rrrr"
le format d'enregistrement doit être: 3 lettres "qqq" se rapportant au questionnaire (ENT, PLA, DES)
et l'année en cours sur 2 chiffres: "yy"
si possible avec séparateur.

ce qui doit donner: yy_rrrr_qqq.xls

en pratique: 10_1234_PLA.xls

quelqu'un a-t-il une idée pour m'aider ? merci.
Configuration: Windows XP
Excel 2002 SP-2

6 réponses

  1. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    C'est bon! j'ai ça trouvé sur le site en passant par "rechercher"

    Private Sub CommandButton1_Click()
    ActiveSheet.SaveAs Filename:=[A1] & ".xls"
    End Sub

    je mettrai en A1 mon nom formaté comme je veux.
    0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    Salut,
    3 classeurs = 3 macros non?
    classeur PLA :
    en A1 la valeur correspondante (ex : "rrrr")
    ActiveWorkbook.SaveAs Right(Year(Date), 2) & " " & [A1] & " PLA"

    A adapter pour les autres classeurs...
    0
  3. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    Bonjour pijaku,

    Ca tombe bien, je ne trouvais pas comment avoir les 2 dernier chiffres pour l'année.

    Merci à vous !
    0
  4. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    J'ai une erreur cependant:
    Voila mon code dans lequel j'ai adapté le format de date que vous m'avez donné, mais l'année n'apparait pas dans le nom du fichier. Seriez-vous dire pourquoi SVP ?

    cherep = "C:\SAUVEGARDE\"
    nom = Right(Year(Date), 2) & "_" & Sheets("questionnaire").Range("A4") & "_PLA"

    ActiveWorkbook.SaveCopyAs Filename:=cherep & nom

    rep = MsgBox("Fichier sauvegardé sous: " & nom, vbYes + vbInformation, "Classeur questionnaire")

    ps: je ne sais ce que font les codes: vbYes et vbInformation car c'est un code que j'ai repris tel quel.

    merci
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Right(Year(Date), 2) renvoie les deux chiffres à droite de l'année "en cours". En l'occurence, renvoie ici "10". Pour obtenir 2010, suffit de mettre : Year(Date).
      Si cela ne fonctionne pas, prodédez "pas à pas" comme suit :
      Dim cherep As String, nom As String
      cherep = "C:\SAUVEGARDE\"
      MsgBox cherep
      nom = Right(Year(Date), 2)
      MsgBox nom
      nom = Right(Year(Date), 2) & "_" & Sheets("questionnaire").Range("A4")
      MsgBox nom
      nom = Right(Year(Date), 2) & "_" & Sheets("questionnaire").Range("A4") & "_PLA"
      MsgBox nom

      Les différentes MsgBox vous indiquent donc pas à pas les noms sous lesquels vous pouvez enregistrer votre fichier. Vous verrez forcément d'où vient l'erreur...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    Merci,
    Ca marche maintenant!
    Vous n'aviez pas d'idée pour ces info "vbYes + vbInformation" ? l'aide me dit qu'il n'y a pas d'info dessus.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      "vbyes + vbinformation" est un type de "format" de msgbox. VbYes nous donne un bouton "OK" sur le MsgBox (comme d'hab quoi...) et vbinformation nous stipule que la MsgBox est une information pour l'utilisateur, avec un beau "i" dans la msgbox.
      En fait, il en existe plusieurs types. Les plus utilisés sont :
      VbYesNo qui permet à l'utilisateur de choisir :
      Dim result as String
      result = MsgBox("Voulez-vous vraiment écrire : toto en cellule A1", VbYesNo)
      If result = vbYes then
      [A1] = "toto"
      Else
      Exit Sub
      vbinformation, vbabortretryignore (comme son nom l'indique...), vbcritical (croix rouge dans la msgbox) etc...
      0
  7. mod77 Messages postés 1320 Date d'inscription   Statut Membre Dernière intervention   53
     
    On ne peut être plus clair, Merci!
    0