Enregistrer en html

fifounet

XLDnaute Occasionnel
Bonjour le forum.
J'ai un classeur avec une vingtaine de feuilles différentes,
j'utilise la macro suivante pour enregistrer une plage identique de chaque feuille en une page html correspondante,
le pb c'est que j'ai pas toujours la même zone dans chaque feuille ("$A$1:$J$44" dans la macro).
Comment enregistrer une zone qui irait de "A1" à "J dernière cellule remplie" pour chaque feuille?

macro:
Workbooks("TOTO.xls").Activate
For Each ws In ActiveWorkbook.Worksheets
Fichier = ThisWorkbook.Path & "/" & ws.Name & ".htm"
Set wb = ActiveWorkbook
With wb.PublishObjects.Add _
(xlSourceRange, Fichier, ws.Name, "$A$1:$J$44", xlHtmlStatic, "", "").Publish(True)
End With
Next

Merci
 

Raja

XLDnaute Accro
Re : Enregistrer en html

Bonjour,

Essaye ce code :

Code:
  Workbooks("TOTO.xls").Activate
  For Each ws In ActiveWorkbook.Worksheets
    Fichier = ThisWorkbook.Path & "/" & ws.Name & ".htm"
    Set wb = ActiveWorkbook
    wb.PublishObjects.Add(xlSourceRange, Fichier, ws.Name, "A1:J" & Range("J65536").End(xlUp).Row, xlHtmlStatic, "", "").Publish (True)
  Next
 
Dernière édition:

fifounet

XLDnaute Occasionnel
Re : Enregistrer en html

Merci de ton aide Raja
y'a un pb en effet ton code boucle sur la valeur J de la 1ere feuille enregistrée pour toutes les autres.
exemple si dans la 1ere feuille enregistrée la dernière valeur est en "J53" toutes les autres feuilles seront enregistrées de "A1 à J53" et je me rends compte d'un autre bug, c'est que je peux avoir des feuilles ou j'ai des lignes incomplètes (rien en J) donc il faudrait enregistrer de A1 à Jxx avec dernière ligne trouvée avec valeur en Axx (la colonne A est toujours renseignée).
Je sais pas si vous me suivez?
merci de voir si il existe une solution.
fifounet
 

kjin

XLDnaute Barbatruc
Re : Enregistrer en html

Bonsoir,
Code:
  'Workbooks("TOTO.xls").Activate
  For Each ws In ActiveWorkbook.Worksheets
  Set Plage = ActiveSheet.Range("A1:J" & Range("A65536").End(xlUp).Row)
    Fichier = ThisWorkbook.Path & "\" & ws.Name & ".htm"
    Set wb = ActiveWorkbook
    wb.PublishObjects.Add(xlSourceRange, Fichier, ws.Name, Plage.Address, xlHtmlStatic, "", "").Publish (True)
  Next
A+
kjin
 

fifounet

XLDnaute Occasionnel
Re : Enregistrer en html

Bonsoir kjin et merci de t'intéresser a mon pb
Ça marche maintenant pour les lignes vides en "J"
par contre je comprends pas pourquoi le code boucle sur la valeur A de la 1ere feuille enregistrée pour toutes les autres.Si dans la 1ere feuille enregistrée la dernière valeur est en "A55" toutes les autres feuilles seront enregistrées de "A1 à J55"
et là je bloque.... je vais me coucher !!
à vot'bon coeur ...
 

kjin

XLDnaute Barbatruc
Re : Enregistrer en html

Re,
Code:
'Workbooks("TOTO.xls").Activate
For Each ws In ActiveWorkbook.Sheets
    With ws
        Set plage = .Range("A1:J" & .Range("A65536").End(xlUp).Row)
    End With
        Fichier = ThisWorkbook.Path & "\" & ws.Name & ".htm"
        ActiveWorkbook.PublishObjects.Add(xlSourceRange, Fichier, ws.Name, plage.Address, xlHtmlStatic, "", "").Publish (True)
Next
Désolé :eek:
A+
kjin
 

Discussions similaires

Réponses
7
Affichages
327

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35