none
Preencher resultados HTML em pastas de trabalho RRS feed

  • Pergunta

  • Oi pessoal,

    venho trabalhando  com Vba Excel e MSXML, porem sou inexperiente em VBA e tenho dificuldades em um codigo. Bom na verdade ele é resultado de uma comparação entre dois XML, feitos pela XSLT e exibidas em uma pasta de trabalho. O meu problema é, o resultado de m inha transfomacao é em HTML, e não estou conseguindo alocar este resultado em uma pasta. Na verdade tenho cinco rotinas em minha macro, e cada uma delas tem que ser direcionadas a uma pasta diferente.

    Vejam o meu codigo,

    Dim xslDoc As New MSXML2.FreeThreadedDOMDocument30
    Dim xmlDoc As New MSXML2.DOMDocument30
    Dim xslProc As IXSLProcessor
    Dim xmlout As New MSXML2.FreeThreadedDOMDocument30
    Dim oStream As New adodb.Stream
    Dim oRecord As New adodb.Recordset
     Set oStream = New adodb.Stream

       
        oStream.Open
        oStream.Type = 1 'Binary
          
    xslDoc.async = False
    xslDoc.Load "c:\compara.xsl"
     

    If (xslDoc.parseError.errorCode <> 0) Then
       Dim myErr
       Set myErr = xslDoc.parseError
       MsgBox ("you have error " & myErr.reason)
    Else
       Set xslt.stylesheet = xslDoc
       xmlDoc.async = False
       xmlDoc.Load "C:\Instrucional_program.xml"
       If (xmlDoc.parseError.errorCode <> 0) Then
          Set myErr = xmlDoc.parseError
          MsgBox ("You have error " & myErr.reason)
       Else


    'xmlDoc.transformNodeToObject xslDoc, oStream

    'oStream.SaveToFile ("c:\test200.xls")

     Dim sHTML As String
    sHTML = xmlDoc.transformNode(xslDoc)


        oStream.Close

    End If
    End If
     

    Como podem ver já consegui atraves do metodo Adodb (oStream), gerar uma saida para o arquivo test200.xsl, porem não sei como alocar as demais subs  desta macro para as demais pastas, que são plan2, plan 3 e plan 4.

    Tambem não sei como gerar esses resultados neste workbook, ao inves de salva-lo como test200.xsl.


    Qualquer, ajuda será bem recebida.

    Obrigado

    sábado, 12 de agosto de 2006 08:18

Todas as Respostas

  • Não consegui entender bem o que pretende fazer. Este é todo o seu código, ou há outros procedimentos?

    Em linhas gerais, o que pretende fazer (qual resultado esperado)?

    sábado, 12 de agosto de 2006 13:55
    Moderador
  • Oi Luiz Claudio,

    obrigado pela atenção. é o seguinte este é o todo o codigo que exibe um resultado no formato HTML, na verdade quem faz todo o trabalho de exibicao do resultado final é um arquivo XSLT que é aplicado como compara.xsl, este por vez compara dados existentes entre dois arquivos xml, o instrucional_programa.xml referenciado no codigo e outro XML , que e acionado por meio do arquivo XSLT.
    Bom, como disse o VBA faz o trabalho de exibir a transformação dos resultados para o Excel, apliquei o metodo para salvar os resultados como o arquivo test200.xsl (que esta no final do codigo como linha de comentario), e funcionou O.K (neste caso despreze a string sHTML no codigo). Como tenho outros XSLTs para gerar outros resultados desses mesmos documentos XMLs, terei que criar mais de uma "Sub" alterando apenas o arquivo XSLT. Nesse caso estou necessitando de um metodo que me possibilite direcionar cada resultado gerado por cada Sub para uma pasta de trabalho diferente. Lembrando que a saida gerada é em HTML.
    domingo, 13 de agosto de 2006 00:54