VBA bouton enregistrer sous

Bonjour à tous,

Je me suis entrepreneur et je en train de créer (petit à petit) un Excel qui me permettra de connaitre mon plan de charge sur les années à venir.

Il est toujours en cours de construction, mais je bloque déjà sur un point VBA.

J'aimerais que quand je clique sur le bouton "enregistrer sous", une fenêtre enregistrement s'ouvre avec le nom du ficher pré-rempli grâce aux cellules D2 et D1 (dans le fichier joint cela ferait "2018_07 Affaire affaire"), dans le répertoire C:\Users\jbell\Desktop\Pro. A moi après d'avoir la main pour décider dans quel dossier de "Pro" l'enregistrer.

Est-ce que vous pouvez m'aider ??

Merci !!!

Bonsoir,

A essayer:

Sub EnregFichier()
    Dim chD$, Fich$, ChNomF
    chD = "C:\Users\jbell\Desktop\Pro\"
    Fich = Format(Date, "yyyy_mm") & " " & ActiveSheet.Range("D1")
    ChDrive "C:\"
    ChDir chD
    ChNomF = Application.GetSaveAsFilename(Fich, "Excel files (*.xlsm),*.xlsm")
    If ChNomF <> False Then
        ThisWorkbook.SaveAs ChNomF, xlOpenXMLWorkbookMacroEnabled
    End If
End Sub

NB- La ligne ChDrive... peut être supprimée si ton lecteur courant est toujours C: lorsque tu es susceptible d'utiliser ta macro.

Cordialement.

Merci !!!

Je risque de revenir pour le suite de mon fichier un fois construit ahhah

Bonne soirée !

Merci à toi ! @+

Hello,

Est-il possible d'ajouter un numéro unique (une clé) à chaque fichier enregistré par la macro ? Ce numéro s'écrirais automatiquement en B1 quand le bouton "enregistrer sous" sera cliqué

Merci

Bien sûr ! Sous quelle forme ?

Cela peut etre sous la forme date heure minute ? (AAAAMMJJHHMM) ?

Je sais pas trop comment fonctionnent la génération de clé unique dans cette situation, mais je pense qu'avec ce format c'est bon.

Qu'en pensez vous ?

Pour ça, il suffit juste d'adapter la ligne de constitution du nom du fichier :

    Fich = Format(Now, "yyyymmddhhmm") & " " & ActiveSheet.Range("D1") & ".xlsm"

NB- Je n'avais pas indiqué l'extension dans le nom de fichier précédemment, elle était ciblée par le type de fichier indiqué, mais autant le mettre !

Cordialement.

Merci MFerrand, mais je me suis peutêtre mal exprimé... ce que je voudrais c'est qu'en plus de la macro d"'enregistrer sous" que tu m'a fait plus haut, qu'il y ai une clé (AAAAMMJJHHMM) qui s'écrive automatiquement en B1 dans le fichier enregistré...

Faut-il une autre macro ou tu peux accrémenté la macro déjà présente ?

Cette clé pourrais me servir plus tard comme repère quand je voudrais consolider toutes données en 1 fichier synthèse (1 ligne par clé)

En te remerciant

Ok ! Tu veux ce numéro sous forme numérique ou sous forme texte ?

Sous forme texte stp : )

Récapitulation :

Sub EnregFichier()
    Dim chD$, Fich$, ChNomF
    chD = "C:\Users\jbell\Desktop\Pro\"
    Fich = Format(Date, "yyyy_mm") & " " & ActiveSheet.Range("D1")
    ChDrive "C:\"
    ChDir chD
    ChNomF = Application.GetSaveAsFilename(Fich, "Excel files (*.xlsm),*.xlsm")
    If ChNomF <> False Then
        With ActiveSheet.Range("B1")
            .NumberFormat = "@"
            .Value = Format(Now, "yyyymmddhhmm")
        End With
        ThisWorkbook.SaveAs ChNomF, xlOpenXMLWorkbookMacroEnabled
    End If
End Sub

Cordialement.

Ca marche, merci !!

Jules

Rechercher des sujets similaires à "vba bouton enregistrer"