Problème avec filtre lors d'une conversion excel en html

Fermé
Cheweee - 22 nov. 2016 à 14:46
 Cheweee - 22 nov. 2016 à 15:52
Bonjour,

Je suis en train de convertir une feuille Excel en HTML via une macro. Ceci fonctionne comme je le souhaite. J'ai la bonne mise en forme, les bonnes valeurs... Je dispose sur ma page de plusieurs tableaux avec un nombre de ligne prédéfinie que ne rempli pas forcément toute. Pour ce faire j'utilise un filtre qui me permet sur Excel d'afficher seulement les lignes remplies des différents tableaux.

C'est là que je ne comprend pas pourquoi lorsque j'applique la même macro pour la conversion en HTML, le contenu de ma page Excel filtré n'apparait plus... Quelqu'un à t-il une idée?

Merci pour attention


A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
22 nov. 2016 à 15:32
Bonjour,

Ta question semble plus relever d'un souci de macro (VBA) que d'un problème HTML.
Je déplace donc ta question dans le forum VBA.

Quoi qu'il en soit.... si tu veux obtenir de l'aide... tu devras commencer par montrer le code en question. ( En utilisant les BALISES DE CODE du forum )

0
Ok merci du conseil.

Pour le coup voici le code en question :

Sub Mail_Sheet_Outlook_Body()
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With
 
    Set rng = Nothing
    'Set rng = Selection.SpecialCells(xlCellTypeVisible)
    Set rng = ActiveSheet.UsedRange
   
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
 
    On Error Resume Next
    With OutMail
        .To = "***@***"
        .CC = ""
        .BCC = ""
        .Subject = "Veille programmation / péremption du " & Date
        .HTMLBody = RangetoHTML(rng)
        .Display

    End With
    On Error GoTo 0
 
    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With
 
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Function RangetoHTML(rng As Range)

    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

       rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

   
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

        Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.readall
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

        TempWB.Close savechanges:=False

        Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function


J'ai donc fait un test ligne 11 pour voir si cela changer quelque chose mais rien j'ai encore une page blanche....

Merci pour votre aide =)
0