[VBA] Pb: comment "enregistrer sous" un spreadsheet dans un userform?

ducrocq

XLDnaute Nouveau
Bonjour,

je souhaiterai "enregistrer sous", par l'intermédiarie d'une boite de dialogue, un spreadsheet qui se trouve sur un userform.

Je n'ai pas de problème pour lancer la boite de dialogue mais je n'arrive pas à appliquer la méthode SaveAs au Spreadsheet ^^

Voici mon code (Excel 2003):

Private Sub CommandButton3_Click()
'Bouton d'exportation
Dim nomEnr$

On Error Resume Next

nomEnr = Application.GetSaveAsFilename("", filefilter:="Fichiers Excel (*.xlsm), *.xlsm")
Spreadsheet1.SaveAs nomEnr

End Sub​

Merci de bien vouloir me venir en aide :)
 

ducrocq

XLDnaute Nouveau
Re : [VBA] Pb: comment "enregistrer sous" un spreadsheet dans un userform?

J'ai réussi à régler mon problème en remplaçant la méthode SaveAs par la méthode Export.

Cependant, celle_ci me crée un fichier de type inconnu du nom donné. Et je n'arrive pas à trouver les informations concernant cette méthode appliqué à un spreadsheet. Les paramètres qu'il me propose en autocomplétion n'existe pas dans l'aide VB et je ne vois pas de renseignements sur le net.

Une âme charitable pour m'expliquer comment utiliser cette méthode Export svp???

Merci
 

ducrocq

XLDnaute Nouveau
Re : [VBA] Pb: comment "enregistrer sous" un spreadsheet dans un userform?

J'avais déjà mis mon code dans le premier message mais pas de problème voilà la modification.

Private Sub CommandButton3_Click()
'Bouton d'exportation
On Error Resume Next
'nomExp = Application.GetSaveAsFilename("", "Fichiers Excel (*.xlsm),*.xslm")
Spreadsheet1.Export ("Export OTEF")

End Sub

Et apparamment il existe des paramètres supplémentaires à la méthode export que je n'arrive pas à utiliser.
A l'heure actuelle, si je ne passe pas par la boite de dialogue, il m'ouvre un fichier excel Export OTEF (parfait) mais il me crée dans le dossier où se trouve mon fichier initial avec ma macro un fichier "Export OTEF" de type inconnu (ce que je souhaiterai supprimer).

J'espère que c'est plus clair comme ça :)
 

tototiti2008

XLDnaute Barbatruc
Re : [VBA] Pb: comment "enregistrer sous" un spreadsheet dans un userform?

Bonjour ducrocq,

Pas un spécialiste des spreadsheets, mais si j'en insère une dans un userform, chez moi l'aide VBA me donne des infos

Méthode Export telle qu'elle s'applique à l'objet Spreadsheet.
expression.Export(Filename, Action, Format)
expression Expression qui renvoie un objet Spreadsheet.
Filename Argument de type String facultatif. Spécifie le nom de fichier du fichier enregistré. Si vous ne spécifiez pas cet argument, un fichier temporaire est créé dans le dossier temporaire de l'utilisateur (l'emplacement du dossier temporaire varie selon les systèmes d'exploitation).Vous devez spécifier cet argument si l'argument Action se voit affecter la valeur ssExportActionNone.
Action Argument de type SheetExportActionEnum facultatif. Spécifie si la feuille de calcul est enregistrée ou non dans un fichier. Si vous ne spécifiez pas cet argument, la feuille de calcul est ouverte dans Microsoft Excel. Si Excel n'est pas installé sur l'ordinateur de l'utilisateur, une alerte est affichée.
SheetExportActionEnum peut être l'une des constantes SheetExportActionEnum suivantes : ssExportActionNone ssExportActionOpenInExcel par défaut

Format Argument de type SheetExportFormat facultatif. Spécifie le format à utiliser lors de l'exportation de la feuille de calcul.
SheetExportActionEnum peut être l'une des constantes SheetExportActionEnum suivantes : ssExportAsAppropriate default ssExportHTMLssExportXMLSpreadsheet

par exemple

Code:
Spreadsheet1.Export "c:\toto.xls", ssExportActionNone, ssExportAsAppropriate

me donne un fichier excel
 

ducrocq

XLDnaute Nouveau
Re : [VBA] Pb: comment "enregistrer sous" un spreadsheet dans un userform?

AAA cool ça marche :)

Merci tototiti2008! Je ne sais pas pourquoi je n'ai pas accès à cette doc sur VBA enfin bref...
Et mon erreur était que j'avais mis des parenthèses et il n'acceptait pas les paramètres supplémentaires.

Je sens que je vais encore avoir besoin de vous d'ici peu lol!

D'ailleurs au passage, depuis que j'utilise un spreadsheet j'ai un message d'avertissement sur l'activation des contrôles ActiveX dès que je lance mon workbook. Y a-t-il un moyen pour ne pas afficher ce message? J'ai essayé application.displayalerts un peu partout mais ça ne marche pas.
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 082
Membres
103 113
dernier inscrit
jlaussenac