Comment faire un "Enregistrer sous" dans le code vba, en sauvegardant mon classeur Excel actuel avec horodatage?
J'ai un Classeur Excel sur le formulaire cliquez sur le bouton je veux enregistrer une copie du classeur contenant le nom de fichier étant la date du jour.
Je continue à essayer les suivantes
ActiveWorkbook.SaveAs ("\\filePath\FormFlow To MSExcel\" & Left(Now(), 10))
mais je reçois Run-time error '1004': Method 'SaveAs' of object'_Workbook' failed.
Quelqu'un peut m'aider avec ça? Je suis encore très nouveau pour le développement pour Excel.
source d'informationauteur Analytic Lunatic
Vous devez vous connecter pour publier un commentaire.
Plus probable le chemin que vous tentez d'accéder n'existe pas. Il semble que vous essayez d'enregistrer à un emplacement relatif et vous n'avez pas une extension de fichier dans une chaîne. Si vous avez besoin d'utiliser des chemins relatifs, vous pouvez analyser le chemin de
ActiveWorkbook.FullName
EDIT:
Mieux syntaxe serait également
Façon la plus simple de l'utilisation de cette fonction est de commencer par "enregistrer une Macro". Une fois que vous commencez à enregistrer, enregistrer le fichier à l'emplacement que vous souhaitez, avec le nom que vous voulez, et puis, bien sûr, définir le type de fichier, le plus probable 'Excel Macro Activé Classeur' ~ 'XLSM'
Arrêter l'enregistrement et vous pouvez commencer à examiner votre code.
J'ai écrit le code ci-dessous qui vous permet d'enregistrer un classeur en utilisant le chemin où le fichier a été à l'origine, en le nommant comme "l'Événement le [date dans la cellule "A1"]"
Copier le code dans un nouveau module, puis d'écrire la date dans la cellule "A1" par exemple 01-01-2016 -> affecter les sous à un bouton et l'exécuter. [Note] vous avez besoin de faire une sauvegarde du fichier avant de ce script fonctionne, car un nouveau classeur est enregistré dans le défaut d'enregistrement automatique de l'emplacement!
Il se peut que votre format par défaut ne correspond pas à l'extension de fichier. Vous devez spécifier le format de fichier ainsi que le nom de fichier, s'assurer que le format correspond à l'extension:
Otoh, que, je ne vois pas une extension sur votre .SaveAs filename. Peut-être que vous devez fournir lors de ce programme. Qui fait sens--ne pas avoir à fournir une extension de l'interface GUI est pratique, mais nous, programmeurs, sont attendus à écrire sans ambiguïté code. Je suggère d'ajouter l'extension et le format. Voir cette page msdn pour une liste des formats de fichier. Pour être honnête, je ne reconnais pas beaucoup o la descripions.
xlExcel8 = 56 est la .xls format
xlExcel12 = 50 est le .xlsb format
xlOpenXMLWorkbook = 51 est la .format xlsx
xlOpenXMLWorkbookMacroEnabled = 52 est la .xlsm format
xlWorkbookDefault est aussi avec une valeur de 51 ans, qui énigmes de moi, car je pensais que le format par défaut peut être modifié.
Je sais que c'est un vieux post, mais je cherchais quelque chose de similaire...
Je pense que votre problème est que lorsque vous utilisez Maintenant(), la sortie sera "6/20/2014"... - Ce un problème pour un nom de fichier comme elle l'a "/". Comme vous le savez, vous ne pouvez pas utiliser certains symboles dans un nom de fichier.
Acclamations
J'ai réussi à utiliser la méthode suivante dans un fichier,
Mais venir avec exactement la même erreur à nouveau...
Seule la dernière ligne viennent avec erreur