Feuille excel au format html [Résolu]

Signaler
Messages postés
15
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
12 février 2008
-
Messages postés
15
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
12 février 2008
-
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

Messages postés
15
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
12 février 2008

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
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
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
Messages postés
15
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
12 février 2008

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 ???
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
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)
Messages postés
15
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
12 février 2008

non mais je suis sous VB6 donc je ne pense pas que les macros excel fonctionnent si ????
merci de ton aide en tout cas