Enregistrer chaque feuilles dans un fichier htm séparé

Bonsoir,

J'essaye désespérément de faire marcher un code, j'avais trouvé et adapté quelque chose qui m'enregistrait chaque feuilles d'un classeur dans un xlsx par feuille, j'aimerais la même chose avec une exportation .htm ....

Sub ExempleCopieFeuilles()
For Each Ws In Sheets(Array("yyy", "xxx"))
  Ws.Copy
  Fichier = ThisWorkbook.Path & "\" & Ws. Name & ".htm"
  With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
  Fichier, Ws. Name, "", xlHtmlStatic, "", "")
  .Publish

Next
End Sub

(l'espace après Ws. et avant Name n'existe pas en réalité)

Merci d'avance à quiconque pouvant m'aider !

Bonjour, et bienvenue

Quelques corrections

Sub ExempleCopieFeuilles()
    For Each Ws In Sheets(Array("yyy", "xxx"))
        Ws.Copy
        Fichier = ThisWorkbook.Path & "\" & Ws.Name & ".htm"
        With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, Fichier, Ws.Name, "", xlHtmlStatic, "", "")
            .Publish
        End With
    Next
End Sub
10testhtml.xlsm (15.44 Ko)

Bonjour,

ws.Copy est inutile.b

Cdlt.

Exact !

je me suis contenté de corriger la syntaxe sans réfléchir car je ne connaissais pas PublishObjects

Re,

@Steelson,

Moi itou…

Cdlt.

Bonjour et merci beaucoup

J'ai malheureusement une erreur:

Erreur d'exécution "1004":

erreur définie par l'application ou par l'objet

Le problème vient de la ligne

With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, Fichier, Ws. Name, "", xlHtmlStatic, "", "")

(toujours aucun espace entre Ws. et Name, mais je suis obligé de l'ajouter sinon le message ne passe pas....)

Evidemment je suis largué et ne voit pas pourquoi cela ne fonctionne pas chez moi

Est-ce que le fichier que j'ai posté fonctionne ?

Quelle est ta version d'excel ?

Est-ce que tu es en "mac" ?

Bonjour, et joyeux noël.

Alors oui c'est effectivement Excel pour mac, la dernière version "16,32" office 365.

J'ai téléchargé le fichier avec les deux feuilles xxx et yyy, ajouté le macro et cela me fait également la même erreur que sur mon tableau excel...

Ah, alors désolé, je rends mon tablier ... quoique je pourrais le programmer entièrement si tu ne trouves pas d'autres solutions.

As-tu essayé l’enregistreur de macro ? si oui publie le code généré. On devrait pouvoir partir de là.

Bonsoir, C'est génial ce truc ! Mais..... je déprime. Cela marche quand j'ai fait un test avec 2 ou 3 feuilles, avec l'ensemble cela plante tout. J'ai mis des pauses entres chaque opérations mais cela plante tout de même....

Je vais devoir le faire ne plusieurs fois je crois....

Voici le code généré (version raccourci)

Sub enregistrement_htm_feuilles()
'
' enregistrement_htm_feuilles Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
    Sheets("PERSONNE2").Select
    Sheets("PERSONNE2").Copy
    ChDir "/Users/Ludovic/Desktop/TEST/"
    ActiveWorkbook.SaveAs FileName:= _
        "/Users/Ludovic/Desktop/TEST/xxxx.htm", FileFormat:= _
        xlHtml, ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
    Application.Wait (Now + TimeValue("00:00:01"))
    Sheets("PERSONNE1").Select
    Sheets("PERSONNE1").Copy
    ActiveWorkbook.SaveAs FileName:= _
        "/Users/Ludovic/Desktop/TEST/yyyyyy.htm", FileFormat:= _
        xlHtml, ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
    Application.Wait (Now + TimeValue("00:00:01"))
    End Sub

J'ai 25 feuilles différentes dans mon fichier...

Pour ma part, je démissionne ... n'ayant pas mac je ne peux pas t'aider au-delà. En effet, ton process est logique !

Bonsoir, pas moyen ça plante même avec peu de feuilles....

Comment adapter ce code pour que manuellement en me mettant sur chacune des feuilles et activant la macro à chaque fois, la feuille soit enregistré dans un .htm avec le nom de la feuille comme nom de fichier ....?

J'y réfléchit de mon côté.... J'essaye de proposer quelque chose

Merci

Ma proposition qui ne fonctionne évidemment pas...

Sub FICHIERS_HTM1()
'
' FICHIERS_HTM1 Macro
'

'
ChDir "/Users/Ludovic/Desktop/PLANNING/"
Dim nomfeuille As String
nomfeuille = ActiveSheet. Name
 Fichier = nomfeuille & ".htm"

    ActiveWorkbook.SaveAs FileName:= _
        Fichier, FileFormat:= _
        xlHtml, ReadOnlyRecommended:=False, CreateBackup:=False

End Sub

je vais devenir chèvre

(pas d'espace avant le Name...)

Cela me retourne une erreur :

Erreur d'execution 1004:

Impossible d'accéder au document en lecteur seul ' nomfeuille.htm '.

Erreur incomprehensible pour moi.... Je ne veux pas ouvrir mais enregistrer

Peut-être faut-il d'abord copier la feuille dans un autre fichier excel avec un seul onglet et en faire l'exportation ?

Ou alors ... Est-ce que ta page est complexe ? S'il n'y a que du texte par exemple, tu peux rédiger le tout explicitement en texte dans un fichier html. Néanmoins ce sera très difficile de reprendre tous les détails. S'il y a des tableaux de données, des titres et des couleurs cela peut se faire.

Bonjour,

j'ai une feuille de planning avec toutes les dates à venir sur 3 mois, en face un numéro de téléphone d'un client.

L'idée est que chaque client est une page htm qui reprend automatiquement les dates ou leur numéro est en face.

Ainsi si je met à jour la feuille planning général, chaque dates de chaque clients est mise à jour automatiquement (j'ai plus qu'à exporter les htm.... mon soucis actuel pour le faire rapidement) et envoyer le tout sur mon serveur web....

Je désespère de ne pas arriver à faire cela qui est relativement simple.... mais excel qui se met à planter ne m'aide pas ! Moi qui voulait faire cela pour gagner du temps.... j'y passe des heures dessus alors que j'ai même pas pu prendre de vacances..

as-tu essayé la solution d'exportation en pdf ? cela devrait convenir aux clients/fournisseurs ??

Oui mais certains navigateurs vont vouloir télécharger le fichier, sachant que mes clients sont aussi des personnes âgés j’ai peur que cela bloque pour un nombre d’entrée eux....

Ce soir de retour du boulot j’essayerais de faire fonctionner cette macro que j’activerais pour chaque feuilles pour exporter celle ci en htm portant le nom de la feuille...

Cela en doit quand même pas être trop sorcier..... bonne journée et merci de ton aide

Si en effet les infos sont limitées et sans images (quoique), on peut écrire le fichier html en texte.

Je vais essayer de dégager du temps d'ici demain pour un petit démonstrateur.

Rechercher des sujets similaires à "enregistrer chaque feuilles fichier htm separe"