Bonjour,
dans ce fil
http://www.developpez.net/forums/d12...-excel-2010-a/
vous expliquez comment enregistrer correctement un fichier avec les nouvelles versions d'Excel.
J'ai pris l'exemple suivant :et l'ai adapté à mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ActiveWorkbook.SaveAs Filename:="C:\Transfert\Test.xlsb", _ FileFormat:=xlExcel12
Tout cela fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWorkbook.SaveAs FileName:=Fichier & ".xlsb", FileFormat:=xlExcel12
Mais si j'utilise le code suivant :j'obtiens l'erreur "argument nommé introuvable" (FileFormat:=).
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWorkbook.SaveCopyAs FileName:=Fichier & ".xlsb", FileFormat:=xlExcel12
La seule différence est le "SaveCopyAs".
J'ai lu, par ailleurs, qu'il n'était pas possible de changer l'extension si l'on utilise le SaveCopyAs, ce qui peut paraître logique de prime abord. Par contre, je peux bien faire un .PDF sans rencontrer les mêmes problèmes. Là je suis coincé, car si je fais un SaveAs tout court, je me retrouve avec un classeur ouvert au nouveau nom, ce qui ne correspond pas à mon objectif. Le nouveau classeur généré par VBA doit porter un autre nom et ne contenir qu'une seule feuille contenant les résultats des opérations (pas de formules).
Si j'utilise le code suivant :j'obtiens bien un fichier Fichier.xlsx ou xlsb, mais il est impossible à ouvrir Excel ne reconnaissant tout simplement pas son extension.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWorkbook.SaveCopyAs FileName:=Fichier & ".xlsb"
En définitive, mon objectif est le suivant :
Partant du classeur A qui contient une base de donnée
- je fais une recherche sur la base d'un fichier .txt importé
- le produit de la recherche est stocké dans la feuil2 du même classeur
- Cette feuil2 doit être sauvegardée sous un nom contenu dans une variable (Fichier) avec l'extension .xls (à voir si c'est encore nécessaire) ou .xlsb
- tout cela en laissant le Classeur A actif
Est-ce possible et si oui comment ? Je précise que je suis novice en VBA.
Merci d'avance de votre aide.
Partager