Feuille excel au format html

Résolu
kevinou55 Messages postés 15 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 12 février 2008 - 11 juin 2007 à 11:32
kevinou55 Messages postés 15 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 12 février 2008 - 12 juin 2007 à 16:21
bonjour a tous,
je voulais savoir si c'etait possible d'enregistrer une seule feuille d'un fichier excel au format html, j'ai essayé avec saveas mais tout le classeur est enregistré,
en enregistrant la feuille dans un autre classeur puis en enregistrant ce classeur en html cela m'indique une erreur "permission refusée".
je ne sais plus trop par ou prendre le probleme
merci pour votre aide

5 réponses

kevinou55 Messages postés 15 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 12 février 2008
12 juin 2007 à 16:21
J'ai trouvé une solution, pas très propre mais qui marche, la voila :

compt = gExcelClass.Sheets.Count
     If compt > 1 Then
        For numpage = 1 To compt
          'on enregistre chaque page dans un nouveau classeur
          gExcelClass.Sheets(numpage).SaveAs "C:\Feuille" + CStr(numpage) + ".xls", fileformat:=xlExcel4
          Set gExcelApp2 = New EXCEL.Application
          gExcelApp2.Visible = True
          Set gExcelClass2 = gExcelApp2.Workbooks.Open("C:\Feuille" + CStr(numpage) + ".xls")
          Set gExcelFeuil2 = gExcelClass2.Worksheets(1)
          'on enregistre le classeur avec une seule feuille en html
          gExcelClass2.SaveAs "C:\Feuille" + CStr(numpage) + ".htm", fileformat:=xlHtml
          gExcelClass2.Close
          gExcelApp2.Quit
          Set gExcelClass2 = Nothing
          Set gExcelApp2 = Nothing
        Next numpage
      Else
        gExcelClass.SaveAs "C:\classUneSeulePage.htm"
     End If

on obtient ainsi deux fichiers html avec dans chacun une feuille du classeur initial
(on a aussi deux fichiers .xls avec une seule feuille qu'il faut penser a supprimer)

Merci d'avoir tenté de m'aider
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
11 juin 2007 à 13:41
Tu es bien en VB6 ou VBA ?

Dans Excel même, quand tu fais enregistrer sous, tu as l'option Feuille ou classeur pour enregistrer le fichier au format .html
Avec l'éditeur de macro tu vois le code.

En tout état de cause, ce n'est pas la méthode SaveAs qu'il faut utiliser à priori, mais la propriété Publish de l'objet PublishObject.

Molenn
0
kevinou55 Messages postés 15 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 12 février 2008
11 juin 2007 à 15:41
je suis sous vb6, j'avais trouvé une solution mais deux essais plus tard, plus rien en fonctionne... j'ai l'erreur "la methode saveas de l'objet worksheet a echoué".


comment fonctionne la propriété publish ???
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
11 juin 2007 à 16:30
Et bien, j'en sais rien ^^
L'éditeur de Macro d'Excel m'a donné cette méthode et propriété. Clic sur le mot Publish et F1 et ... Lecture pour tenter de comprendre

Un extrait de l'aide :
Publish, méthode

Voir aussiS'applique à[mk:@MSITStore:C:\LOGICIEL\Microsoft%20Office\OFFICE11\1036\VBAXL10.CHM::/html/xlmthPublish.htm#example Exemple]Détails
[mk:@MSITStore:C:\LOGICIEL\Microsoft%20Office\OFFICE11\1036\VBAXL10.CHM::/html/xlmthPublish.htm# Méthode Publish telle qu'elle s'applique à l'objet PublishObject ou à la collection PublishObjects.]

Cette méthode enregistre un élément ou une collection d'éléments contenus dans un document dans une page Web.

expression.Publish(Create)

expression      Expression qui renvoie un objet [mk:@MSITStore:C:\LOGICIEL\Microsoft%20Office\OFFICE11\1036\VBAXL10.CHM::/html/xlobjPublishObject.htm PublishObject] ou une collection [mk:@MSITStore:C:\LOGICIEL\Microsoft%20Office\OFFICE11\1036\VBAXL10.CHM::/html/xlobjPublishObjects.htm PublishObjects].

Create      Donnée de type Variant facultative. Cet argument est utilisé uniquement avec un objet PublishObject. Si le fichier HTML existe et que cet argument a la valeur True, le fichier est remplacé. Si cet argument a la valeur False, un ou des éléments sont insérés à la fin du fichier. Si le fichier n'existe pas, le fichier est créé quelle que soit la valeur de l'argument Create.

Notes
La propriété [mk:@MSITStore:C:\LOGICIEL\Microsoft%20Office\OFFICE11\1036\VBAXL10.CHM::/html/xlproFileName.htm FileName] renvoie ou définit l'emplacement et le nom du fichier HTML.

[mk:@MSITStore:C:\LOGICIEL\Microsoft%20Office\OFFICE11\1036\VBAXL10.CHM::/html/xlmthPublish.htm# Méthode Publish telle qu'elle s'applique à l'objet ListObject.]

Cette méthode publie l'objet ListObject sur un serveur exécutant Microsoft Windows SharePoint Services. Elle renvoie une valeur de type String qui correspond à l'URL de la liste publiée sur le site SharePoint.

expression.Publish(Target, LinkSource)

expression    Obligatoire. Expression qui renvoie un objet ListObject.

Target    Argument de type Variant obligatoire. Contient un tableau de chaînes. Le tableau suivant présente les éléments de ce tableau :

Élément |Contenu |----
0, URL du serveur SharePoint, ----
1, Liste de noms (Nom complet), ----
2, Description de la liste. Facultatif.
LinkSource    Données de type Boolean obligatoire.

Notes
Si l'objet ListObject n'est pas lié à une liste sur un site SharePoint, affectez la valeur True à l'argument LinkSource pour créer une nouvelle liste sur le site SharePoint spécifié. Si l'objet ListObject est lié à un site SharePoint, affectez la valeur True à l'argument LinkSource pour remplacer le lien existant (vous pouvez uniquement lier la liste à un seul site SharePoint). Si l'objet ListObject n'est pas lié, affectez la valeur False à l'argument LinkSource pour le conserver sans liaison. Si l'objet ListObject est lié à un site SharePoint, affectez la valeur False à l'argument LinkSource pour conserver la liaison existante.

Exemple
Cet exemple montre comment enregistrer, dans une page Web intitulée stockreport.htm, la plage de cellules D5:D9 de la feuille de calcul nommée « First Quarter » contenue dans le classeur actif. Le composant Feuille de calcul permet d'ajouter des fonctions interactives à la page Web.

ActiveWorkbook.PublishObjects.Add( _
    SourceType:=  xlSourceRange, _
    Filename:="\\Server2\Q1\stockreport.htm", _
    Sheet:="First Quarter", _
    Source:="D5:D9", _
    HTMLType:=xlHTMLCalc). Publish 


L'exemple suivant définit des éléments de l'argument Target pour publier l'objet ListObject sur le site SharePoint nommé « MyServer ». Il est supposé que l'objet ListObject n'est pas lié à une autre source de liste. Par conséquent, la valeur True affectée à l'argument LinkSource permet de créer une liaison bidirectionnelle entre cette liste et la liste sur le site cible SharePoint.

   
   Dim objWrksht as Worksheet
Dim objListobj as ListObject
Dim strURL as String

Set objWrksht   = ActiveWorkbook.Worksheets("Sheet1")
Set objListObj = objWrksht.ListObjects(1)

strURL = objListObj.Publish(Array("HTTP://MyServer", "MyList", "Description of my list"), True)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kevinou55 Messages postés 15 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 12 février 2008
12 juin 2007 à 08:43
non mais je suis sous VB6 donc je ne pense pas que les macros excel fonctionnent si ????
merci de ton aide en tout cas
0
Rejoignez-nous