Excel vba : forcer la création d'un classeur format xlsx
Résolu
XLfan
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
m@rina Messages postés 23911 Date d'inscription Statut Contributeur Dernière intervention -
m@rina Messages postés 23911 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
dans 2013, je crée un nouveau classeur avec ?Workbooks.Add (xlWBATWorksheet)?, mais quand excel est configuré pour créer un classeur ?Classeur Excel 97-2003? (Fichier / Options / Options Excel / Enregistrement), je ne peux disposer que de 65.536 lignes alors qu'il m'arrive d'en avoir besoin de plus...
Donc ma question est la suivante :
Comment forcer la création d'un classeur directement en xlsx ou xlsm ou xlsb ?
Merci d'avance.
XLfan
dans 2013, je crée un nouveau classeur avec ?Workbooks.Add (xlWBATWorksheet)?, mais quand excel est configuré pour créer un classeur ?Classeur Excel 97-2003? (Fichier / Options / Options Excel / Enregistrement), je ne peux disposer que de 65.536 lignes alors qu'il m'arrive d'en avoir besoin de plus...
Donc ma question est la suivante :
Comment forcer la création d'un classeur directement en xlsx ou xlsm ou xlsb ?
Merci d'avance.
XLfan
A voir également:
- Créer un nouveau fichier excel vba
- Fichier bin - Guide
- Creer un fichier .bat - Guide
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
5 réponses
Bonjour,
Voilà ce que tu peux faire :
- Tu crées un classeur modèle version 2013 et tu l'enregistres dans le dossier Templates avec l'extension xltx.
- Tu modifies ton code en mettant le nom de ce modèle 2013 à la place de la constante :
Le nouveau classeur créé sera automatiquement au format du modèle.
m@rina
Voilà ce que tu peux faire :
- Tu crées un classeur modèle version 2013 et tu l'enregistres dans le dossier Templates avec l'extension xltx.
- Tu modifies ton code en mettant le nom de ce modèle 2013 à la place de la constante :
Workbooks.Add ("classeur2013.xltx")
Le nouveau classeur créé sera automatiquement au format du modèle.
m@rina
Re,
chez moi j'ai modifie: option, enregistrement: Classeur Excel 97-2003
avec le code VBA creation classeur et sauvegarde: c'est un classeur xlsx
chez moi j'ai modifie: option, enregistrement: Classeur Excel 97-2003
avec le code VBA creation classeur et sauvegarde: c'est un classeur xlsx
... je suis d'accord avec tout ce que vous dites, mais quand je crée un nouveau classeur, si la config est "Classeur Excel 97-2003" je n'ai que 65.536 lignes alors qu'il m'en faut parfois plus.
Ma macro doit pouvoir tourner sur n'importe quelle config d'Excel >= 2007.
Bien sûr que quand je l'enregistre, j'ai le choix du format, mais si la macro s'arrête en me disant qu'il n'y a pas assez de lignes, ce n'est pas la peine de chercher à l'enregistrer.
Je ne veux pas non plus commencer par enregistrer le fichier afin que l'utilisateur puisse en faire ce qu'il veut.
Ma macro doit pouvoir tourner sur n'importe quelle config d'Excel >= 2007.
Bien sûr que quand je l'enregistre, j'ai le choix du format, mais si la macro s'arrête en me disant qu'il n'y a pas assez de lignes, ce n'est pas la peine de chercher à l'enregistrer.
Je ne veux pas non plus commencer par enregistrer le fichier afin que l'utilisateur puisse en faire ce qu'il veut.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
m@arina, ... ta solution fonctionne, bien sûr, mais elle m'obligerait à enregistrer un fichier xltx sur la machine de l'utilisateur et ça, je n'aime pas trop. Bien sûr, je peux le créer et l'effacer après. Mais parfois les répertoires cible habituels sont protégés... C'est pour cela que je laisse l'initiative à l'utilisateur d'enregistrer où il veut. C'est à lui de savoir où il peut le mettre. Ça peut aussi l'aider à le retrouver (parfois).
Je vais utiliser ce que propose f894009 de la façon suivante :
FORMAT_ORIGINE = Application.DefaultSaveFormat
Application.DefaultSaveFormat = xlOpenXMLWorkbook
Workbooks.Add
Application.DefaultSaveFormat = FORMAT_ORIGINE
afin de ne pas modifier le réglage par défaut de l'utilisateur.
J'ai déjà vu des macros qui masquaient la barre de formules et qui ne la ré-affichait pas à la fin. Résultat : en Excel 2003, les utilisateurs ne sont pas forcément des habitués à se promener dans les options. Dans les versions plus récentes, tout le monde peut le trouver dans l'onglet Affichage.
Donc j'ai pris l'habitude de ne pas modifier la configuration par défaut des utilisateurs afin d'éviter les doléances.
Merci encore à tous de m'avoir lu et d'avoir pris le temps de me répondre.
Je vais utiliser ce que propose f894009 de la façon suivante :
FORMAT_ORIGINE = Application.DefaultSaveFormat
Application.DefaultSaveFormat = xlOpenXMLWorkbook
Workbooks.Add
Application.DefaultSaveFormat = FORMAT_ORIGINE
afin de ne pas modifier le réglage par défaut de l'utilisateur.
J'ai déjà vu des macros qui masquaient la barre de formules et qui ne la ré-affichait pas à la fin. Résultat : en Excel 2003, les utilisateurs ne sont pas forcément des habitués à se promener dans les options. Dans les versions plus récentes, tout le monde peut le trouver dans l'onglet Affichage.
Donc j'ai pris l'habitude de ne pas modifier la configuration par défaut des utilisateurs afin d'éviter les doléances.
Merci encore à tous de m'avoir lu et d'avoir pris le temps de me répondre.