2016-04-22 1 views
0

J'ai vraiment aimé la solution here qui a fourni VBA que de forcer l'enregistrement en tant que fichier xlsm. En gardant à l'esprit que je connais à peine quoi que ce soit sur VBA, comment pourrais-je modifier ce code pour effectuer les opérations suivantes:Excel Macro VBA- Comment enregistrer comme xlsm avec un nom de fichier basé sur la date et la valeur de la cellule

  • continuent de forcer enregistrer comme xlsm
  • nom de fichier
  • est égale à la valeur de la cellule C1 dans une feuille nommée " RAPPORT "+ le texte" BSC "+ la date au format YYYY.MM.DD

Toute aide serait grandement appréciée.

+1

donc je me sentais généreux aujourd'hui cependant sur cette note, vous devriez vraiment au moins essayer d'apprendre au lieu de vouloir quelqu'un pour le faire pour vous ... encore une fois, je me sentais généreux si tu devrais te sentir chanceux. 'Dim sFileName As String sFileName = Feuilles (" REPORT "). Range (" C1 "). Valeur &" BCS "& Format (DateTime.Now," yyyy.mm.dd ") &" .xlsm " ActiveWorkbook. SaveAs sFileName'' – Sorceri

+0

Je suis d'accord avec Sorceri, et était encore en train d'éditer quand ce commentaire a été posté. Je l'ai juste vu. C'est juste à la frontière de ce qui devrait ou ne devrait pas être répondu. Mais quelque chose à propos de la façon dont vous l'avez demandé m'a semblé aider vous amènerait au niveau suivant. Ma réponse vous en donne un peu, mais vous devrez le reconstituer pour compléter le puzzle. Bonne chance. Tu peux le faire. – peege

Répondre

1

Si vous prenez la ligne où il est dit:

ThisWorkbook.SaveAs Filename:=FileNameVal & ".xlsm", FileFormat:=ThisWorkbook.FileFormat 
     Application.EnableEvents = True 

Vous enregistrez le fichier en tant que quelle que soit la valeur est enregistrée sous FileNameVal

En utilisant certaines variables de base, vous pouvez définir des chaînes et remplacer la valeur de FileNameVal

Dim newFileName As String, nameDate As String, sheet As String, tempVal As String 

    sheet = "REPORT" 
    tempVal = Sheets(sheet).Range("C1").Text 
    nameDate = Format(Date, "yyyy.mm.dd") 
    newFileName = tempVal & "BSC" & nameDate 

Regardez la fenêtre des sections locales et vous pouvez voir les valeurs changent à mesure que vous entrez dans le code en utilisant F8.

Locals Window

REPORT Sheet

+0

Ceci est destiné à vous donner certains des éléments manquants. Vous devriez pouvoir finir d'ici. – peege

+0

Merci pour l'aide, peege et Sorceri. C'est la première fois que j'ai vraiment besoin de m'essayer à tout type de VBA, et je suis loin d'être un codeur dans la majeure partie de ma vie, mais si je reçois quelques conseils très spécifiques liés à un problème, je travaille Sur, j'ai tendance à me rendre assez compétent pour poser de très bonnes questions plus tard sur, par exemple, HTML, CSS ou PHP. Donc, cela aidera. –