Enregistrement et destination ?

Bonsoir, j'ai cette macro :

ThisWorkbook.SaveAs "L:\path\bla bla\" & "Nom de mon fichier " & Format(Date, "dd-mm-yyyy") & ".xls"

Mais j'aimerais lui donner la destination avec ce que j'ai écris en cellule A1, merci pour votre aide.

Bonjour,

Voici le code :

Sub sauvegarder()
    Dim extension As String
    Dim chemin As String 
    Dim nomfichier As String

    extension = ".xlsm"
    chemin = "C:\Users\Greg\Documents\"
    nomfichier = ActiveSheet.Range("A1") & extension

    With ActiveWorkbook

        .SaveAs Filename:=chemin & nomfichier, FileFormat:= xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    End With

    End Sub

Tu enregistreras en fichier compatible Macro (si jamais tu en as).

Le nom du fichier dépendra de celui mis en A1

Le chemin est à définir par toi même ! N'efface pas les "".

Voilà !

Merci mais j'aimerais plutôt un code du genre:

ThisWorkbook.SaveAs.range "A1" & "TableauDJ FA" & Format(Date, "dd-mm-yyyy") & ".xls"

Dans ma celulle A1, est inscrit : C:\Users\DJ FA\Desktop\

Et si A1 est vide, alors ne pas sauver.

Est-ce possible ?

J'avais mal lu ce que tu demandai....

Est comme ceci ?

Sub sauvegarder()
    Dim extension As String
    Dim chemin As String
    Dim nomfichier As String

    extension = ".xlsm"
    chemin = ActiveSheet.Range("A1") & "\"
'Le chemin sera celui inscrit dans la celulle A1
    nomfichier = ActiveSheet.Range("A2") & extension
'Le nom du fichier sera celui inscrit dans la celulle A2

    With ActiveWorkbook

        .SaveAs Filename:=chemin & nomfichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    End With

    End Sub

Pour ta condition "Si rien écris en A1" alors ne pas sauver, est ce qu'elle est obligatoire ? (Je sais comment réaliser des conditions mais je ne sais pas traduire "alors ne pas sauver" en VBA^^")

Merci à toi, obligatoire oui ça serait mieux, je testerai ta macro demain, au cas ou si quelqu'un à d'autres solutions... merci d'avance.

Bonsoir

Greg.leo a écrit :

Pour ta condition "Si rien écris en A1" alors ne pas sauver, est ce qu'elle est obligatoire ? (Je sais comment réaliser des conditions mais je ne sais pas traduire "alors ne pas sauver" en VBA^^")

Ne pas sauver peut se traduire ne fais rien

Pas besoin de compliquer

 If ActiveSheet.Range("A1") = "" Then Exit Sub
    extension = ".xlsm"
    chemin = ActiveSheet.Range("A1") & "\"
'Le chemin sera celui inscrit dans la celulle A1
'.
'.

Au top, merci pour l'info je retiendrai !

DJ FA n'oublie pas de notifier le topic comme résolu

Cela ne fonctionne pas comme je souhaite :

Il n’y a pas la date comme sur ma macro de départ, et en ce qui concerne le nom du fichier il est imposé, je veux juste que le dossier de destination soit en donné en A1.Merci à vous.

Lorsque tu dis que le nom du fichier est imposé tu sous entends que tu ne souhaites pas le nommer en A2 ?

Sinon voici le code avec date :

Sub sauvegarder()
    Dim extension As String
    Dim chemin As String
    Dim nomfichier As String

    extension = ".xlsm"
    chemin = ActiveSheet.Range("A1") & "\"
'Le chemin sera celui inscrit dans la celulle A1
   nomfichier = ActiveSheet.Range("A2")
'Le nom du fichier sera celui inscrit dans la celulle A2
 If ActiveSheet.Range("A1") = "" Then Exit Sub
    extension = ".xlsm"
    chemin = ActiveSheet.Range("A1") & "\"
    With ActiveWorkbook

        .SaveAs Filename:=chemin & nomfichier & Format(Date, "dd-mm-yyyy") & extension, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    End With

    End Sub

J’ai omis de signaler (comme d’habitude) que cette macro agit sur un autre fichier excel qui travaille en arrière plan. D’où ma macro d’origine, en ce qui concerne la valeur A2, j’ai le nom du fichier sur le fichier excel à coté de la destination en A1. Mais maintenant le soucis est que comme la macro doit agir sur le fichier qui est en second plan, elle me renomme le fichier ou se trouve la macro. Suis-je clair ?

Récapitulons :

=> Tu as deux fichiers Excel : un "maitre" et un second qui s'automatise selon le maitre.

=> tu souhaites sauvegarder le second fichier a partir du bouton "Sauvegarder" du fichier maitre

=> Pour le nom du fichier : a coté de A1 ? C'est B1 pour toi ? Du coup la macro doit prendre la valeur de B1 comme nom ?

=> Pour finir : Les valeur A1 (Destination du fichier) et B1 ( en supposant que ce soit la bonne cellule pour le nom) se trouvent dans le fichier maitre ou le second ?

Lorsque tu auras répondu a toutes ces questions on pourra te réaliser le code ^^

=> Tu as deux fichiers Excel : un "maitre" et un second qui s'automatise selon le maitre. "Oui"

=> tu souhaites sauvegarder le second fichier a partir du bouton "Sauvegarder" du fichier maitre "oui"

=> Pour le nom du fichier : a coté de A1 ? C'est B1 pour toi ? Du coup la macro doit prendre la valeur de B1 comme nom ? "je mettrais la valeur en A2 pour le nom du fichier"

=> Pour finir : Les valeur A1 (Destination du fichier) et B1 ( en supposant que ce soit la bonne cellule pour le nom) se trouvent dans le fichier maitre ou le second ? "A1 et A2 se trouvent sur le fichier Maitre"

Il n'y a pas de macro sur le fichier esclave.

Essaye avec ça

en A1 fichier maitre : destination

en A2 : nom du fichier

Sub sauvegarder()
    Dim extension As String
    Dim chemin As String
    Dim nomfichier As String

    extension = ".xlsm"
    chemin = ActiveSheet.Range("A1") & "\"
'Le chemin sera celui inscrit dans la celulle A1
  nomfichier = ActiveSheet.Range("A2")
'Le nom du fichier sera celui inscrit dans la celulle A2
If ActiveSheet.Range("A1") = "" Then Exit Sub
    extension = ".xlsm"
    chemin = ActiveSheet.Range("A1") & "\"
    With Workbook("Le_nom_de_ton_second_classeur.xlsx").Sheets("Nom_de_la_feuille_en_question")

        .SaveAs Filename:=chemin & nomfichier & Format(Date, "dd-mm-yyyy") & extension, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    End With

    End Sub
 

Je teste ce soir,

Fonctionne très bien, merci de ta patience, j'ai un soucis mineur pour finir; à la fin de ma macro, j'ai besoin que le dossier (escalve) sans macro, soit au premier plan. Mais j'ai une erreur d'éxécution 9, l'indice n'appartient pas à la sélection

Workbooks("escalve.xls").Activate

J'ai trouvé une autre solution, ne te dérange pas plus, merci encore.

Rechercher des sujets similaires à "enregistrement destination"