Création d'un nom de classeur à partir du contenu d'une cellule excel [Résolu]

Signaler
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009
-
Saratum
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009
-
Est ce possible de faire la sauvegarde d'un document en créant un nouveau fichier en lui attitrant le contenu d'une variable ou d'une cellule excel comme titre?

Sub sauvegarde()
'
' sauvegarde Macro
'

'
    Dim titre As String
    titre = Range("A3").Value
    ChDir "C:\Documents and Settings\Pat\Desktop\tests"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\Pat\Desktop\tests\????????.xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

11 réponses

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
bonjour

Sub sauvegarde()
'
' sauvegarde Macro
'

'
    Dim titre As String
    titre = Range("A3").Value
    ChDir "C:\Documents and Settings\Pat\Desktop\tests"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\Pat\Desktop\tests" & titre & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
ou plus simplement encore:

Sub sauvegarde()

    ActiveWorkbook.SaveAs Filename:= _

        "C:\Documents and Settings\Pat\Desktop\tests" & Range("A3").Value & ".xlsm", FileFormat:= _

        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
remplace range("B300") par
activesheet.range("B300")

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

Super!, Merci!
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

j'ai encore une erreure... 

    ' Enregistre nouveau nom de fichier
        Sheets("IMMEUBLE").Select
        Range("B300").Activate
        ChDir "C:\Documents and Settings\Pat\My Documents\Remax\commercial"
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\Pat\My Documents\Remax\fiches client\Alain Pierre\Prospects" & Range("B300").Value & ".xlsm" _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

même erreur si je fais
    ' Enregistre nouveau nom de fichier
        Dim titre As String
        Sheets("IMMEUBLE").Select
        Range("B300").Activate
        titre = Range("B300").Value
            ChDir "C:\Documents and Settings\Pat\My Documents\Remax\commercial"
            ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and Settings\Pat\My Documents\Remax\fiches client\Alain Pierre\Prospects" & titre & ".xlsm", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

erreur 1004
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
quelle erreur as tu ?
est ce que le chemin que tu donnes existe bien  ? (pas d'espace en moins ou en trop .... etc)
que contiend B300 ?
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

erreur 1004....

sur cette ligne de commande là...  ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and
Settings\Pat\My Documents\Remax\fiches client\Alain Pierre\Prospects"
& titre & ".xlsm", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

le répertoire existe....

l'idéal pour moi aurait en fait été de créer par la même occasion un répertoire du même nom que le fichier xlsm....  

B300 contient le résultat d'un concaténer   une phrase avec une cote pour placer mes fichier en ordre d'importance d'opportunité, le numéro de fiche technique de la bâtisse et l'adresse...

l'erreur doit venir du fait que la ligne de commande est tronquée j'imagine, mais je ne sais pas comment arranger ça...
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
le texte de l'erreur 1004 quel est il ?
 il te donne une bonne indication sur la connerie à trouver
et quand il t'affiche l'erreur tu as un bouton aide qui te donne également de bonnes pistes

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

erreur d'exécution 1004
La méthode 'saveas' de l'objet '_workbook' a échoué
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

quand j'efface les espaces weird entre les séparations de la ligne de commande ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and
Settings\Pat\My Documents\Remax\fiches client\Alain Pierre\Prospects"
& titre & ".xlsm", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Après ça me donne erreur 13: incompatibilité de type sur la ligne: titre = Range("B300").Value
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

Si je le fais comme ça:

        Sheets("IMMEUBLE").Select

        ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Pat\My Documents\Remax\fiches client\Alain Pierre\Prospects" & Range("B300").Value & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
       
ça me donne encore incompatibilité de type en soulignant toute la ligne saveas
       
Messages postés
21
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
1 avril 2009

finallement! :P  merci! hihi :-)