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.
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.