Creation d'un classeur excel sous VBA

Signaler
Messages postés
12
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
28 mai 2008
-
Messages postés
12
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
28 mai 2008
-
Bonjour ,

Je dois créer une macro qui me permet d'avoir un nouveau classeur avec un nom demandé auparavant à l utilisateur.

Or, je ne sais pas comment faire pour que le nom de ce classeur puisse être différent à  chaqueappelle de cette macro.

Voici le code :

Dim nom As String


nom = InputBox("Quel est le nom du produits structuré?", "Bonjour")


Workbooks.Add
Application.Run "GetToolbarButtonsStatus"
ChDir "C:\Documents and Settings\crespelam\My Documents"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\crespelam\My Documents\nom.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False

Merci pour votre aide

3 réponses

Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
Salut,

Si je comprends bien, tu veux que le << nom du produit structuré >> proposé l'utilisateur sert de nom pour enregistrer ton classeur.

Pour être plus clair, si l'utilisateur rentre par exemple, Test. La macro devra enregistré le classeur sous le nom de Test.xls c'est bien cà ?

++
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

Deja pour commencer t'es pas dans le bon theme... ben oui ! le bon theme c'est par ici :

[infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_LANGAGES-DERIVES_287.aspx Langages dérivés] / [infomsgt_VBA_244.aspx VBA] /

pour ton probleme c'est pas tres claire... si tu dmandes a l'utilisateur d'entrer un nouveau nom, comme je vient de le dire c'est un nouveau nom donc different !
Par contre peut etre a tu besoin de verifier que le nom donné par l'utilisateur n'est pas un nom deja existant dans le repertoire dans le quel tu veux creer ce nouveau fichier.

Pour cela, vois ce que j'ai ajouté ou modifié en bleu :

Dim nom As String, ChDir As String, TestNom As String
ChDir = "C:\Documents and Settings\crespelam\My Documents"
Do
    nom = InputBox("Quel est le nom du produits structuré?", "Bonjour")
    TestNom = Dir(ChDir & nom)
    if TestNom = "" then 'dans ce cas cela veut dire que le nom n'existe pas
        Workbooks.Add
        Application.Run "GetToolbarButtonsStatus"
        ActiveWorkbook.SaveAs Filename:= ChDir & nom, FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
    Enif If
' on boucle jusqu'a ce que
l'utilisateur ai entré un nom qui n'existe pas dans le repertoire de
destination ou
' que nom = exit pour eviter de rester coincé dans la boucleLoop Until TestNom "" or nom "exit"

Il faut savoir aussi qu'il existe sous VBA une fonction qui permet de recuperer la valeur des variables d'environnement et qu'il existe aussi une variable d'environnemnt sous XP en tout cas, qui contient deja une partie du  chemin du repertoire Mes documents de l'utilisateur loger. Cette variable s'appele : USERPROFILE. et renvoi par exemple pour toi  : C:\Documents and Settings\crespelam . Donc aulieu d'ecrire :

ChDir = "C:\Documents and Settings\crespelam\My Documents"

tu peux remplacer par :

ChDir = Environ("USERPROFILE") & "\My Documents"

ce qui permetra a ta macro de fonctionner quelque soit l'utilisateur

Vala

A+
Messages postés
12
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
28 mai 2008

oui c est ca

merci de ton aide