Enregistrement VBA automatique

Anonyme
2024-03-18T22:13:07+00:00

Bonjour,

J'ai quelques connaissances et j'ai également trouvé beaucoup de choses sur le net, mais là, j'ai besoin d'aide.

J'ai besoin d'enregistrer le classeur entier dans un dossier élève unique à chaque évaluation et au format "xlsm"

Un dossier pour Damien, un pour Claude, un pour Ginette....

J'ai essayé plusieurs choses, mais à chaque fois, je bloque sur un nouveau problème 😥

Si vous pouvez m'aider ça serait vraiment TOP !

Voici le code :

Sub Sauvegarde()
Eleve= Range("F6")
Numdossier = Range("I3")
FName = Eleve & "_" & Numdossier

ActiveWorkbook.SaveAs Filename:="C:\Users\COET\Desktop\BAC SN\1 NOTE" & FName.xlsm

End Sub

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

Anonyme
2024-03-19T09:35:53+00:00

Ah, ce n'était pas dans ta demande initiale. Effectivement, il va falloir créer un dossier avec le nom de chaque élève au moment de l'enregistrement (ne faudrait-il pas aussi vérifier si le dossier n'existe pas déjà ?)

Avant la ligne qui déclenche l'enregistrement, ajoute une petite boucle (et ajuster la ligne SaveAs en conséquence) :

MonChemin = "C:\Users\COET\Desktop\BAC SN\1 NOTE" & Eleve
If Dir(MonChemin, vbDirectory) = "" Then ' teste l'existence du dossier
MkDir (MonChemin) ' crée éventuellement le dossier
End If

ActiveWorkbook.SaveAs Filename:=MonChemin & "" & FName & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

4 réponses supplémentaires

  1. Anonyme
    2024-03-19T16:24:45+00:00

    Super ! C'est exactement ça !!!

    Désolé, si ma demande principale n'était pas claire.

    Un grand merci !!

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2024-03-19T08:42:40+00:00

    Je vous remercie pour votre aide et surtout votre réactivité !

    Cependant, cela ne règle pas mon problème.
    Le fichier s'enregistre correctement, mais ils vont tous dans le même dossier.

    J'ai besoin qu'Excel créer un dossier au nom de l'élève (Eleve = RANGE "F6") et y intègre le fichier enregistré (Fname)

    Ma demande est peut être impossible.

    En tout cas merci d'avance

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2024-03-18T23:10:05+00:00

    Ta dernière ligne devrait plutôt s'écrire :

    ActiveWorkbook.SaveAs Filename:="C:\Users\COET\Desktop\BAC SN\1 NOTE" & FName & ".xlsm**"**, **** FileFormat:=xlOpenXMLWorkbookMacroEnabled

    D'une part, l'extension .xlsm est une chaîne de texte, il te faut donc la traiter comme telle, d'autre part, il faut préciser le format de fichier.

    -------------- MàJ

    Incorrigibles ce Conseillers "indépendants" avec leur francisation des macros (j'adore le "Sous-marin d’extrémité", en particulier 😂). Mais bon, pour le reste on est d'accord...

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2024-03-18T23:02:18+00:00

    Salut Je suis Saurabh, un Microsoft Consumer, tout comme vous. Je suis heureux de vous aider avec mon expertise et je ferai de mon mieux pour résoudre votre problème.

    Votre code VBA pour stocker le classeur avec un nom de fichier distinct basé sur les noms des élèves et les numéros d’évaluation semble être sur la bonne voie. Cela étant dit, il y a quelques problèmes avec votre code qui doivent être résolus. Il s’agit de la version mise à jour : Sub Backup() FName = Elève & « _ » & Numdossier

    Avec ActiveWorkbook . Enregistrer sous Nom de fichier :="C :\Utilisateurs\COET\Bureau\BAC SN\1 NOTE\ » & FName & « .xlsm », FormatFichier :=52 . Fermer False Terminez par Sous-marin d’extrémité

    Raison des modifications :

    Déclarations combinées pour les variables :

    Original : des déclarations distinctes ont été faites pour FName, Filenumber et High. Mise à jour : FName a été fusionné avec son affectation, et High et Filenumber ont été éliminés car ils n’étaient pas utilisés. Instructions de fermeture et d’enregistrement sous fusionnés :

    Original : Il y avait deux instructions : SaveAs et Close. Mise à jour : Pour rendre le code succinct, les deux sont fusionnés dans un bloc With pour le classeur ActiveWorkbook.

    Commentaire supprimé :

    Original : Il n’y en a pas dans le code qui est donné. Mise à jour : l’extrait de code modifié n’en inclut désormais aucun. Le code modifié est plus concis et simplifié tout en remplissant le même objectif que l’original.

    J’espère que cela vous aidera ; Faites-moi savoir si vous avez besoin de plus d’aide.

    Sinceres salutations Saurabh

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire