Alexandre Neves, boa tarde a si !
Deu erro na rotina que postou.
Ela, está copiando todos os formulários e não o que está ativo na tela.
Fiz o teste apenas com os dados do formulário principal ( testando por partes ).
Adição....
Veja o código meu como ficou...um pouco diferente do que postou...
- Código:
Private Sub bt_exportarPN_Click()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'código criado por Alexandre Neves, do Fórum MaximoAccess '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim RstFrm As DAO.Recordset, RstSubFrm As DAO.Recordset, L As Integer
Dim MeuExcel As Object, Folha
'Passa o local e nome do arquivo para a variável
'Abre arquivo ListaClientes.xls
Set MeuExcel = CreateObject("Excel.Application")
MeuExcel.Visible = False
MeuExcel.Workbooks.Open FileName:=CurrentProject.Path & "\PN.xlsx"
MeuExcel.Visible = True
Set RstFrm = Me.RecordsetClone
RstFrm.MoveFirst
' Dados formulário principal
Do While Not RstFrm.EOF
MeuExcel.Range("H6") = RstFrm("cliente")
MeuExcel.Range("H7") = RstFrm("NomeFantasia")
MeuExcel.Range("H8") = RstFrm("CNPJ")
MeuExcel.Range("N8") = RstFrm("InscrEstadual")
MeuExcel.Range("H9") = RstFrm("endereco") & " ," & RstFrm("Numero")
MeuExcel.Range("N9") = RstFrm("Bairro")
MeuExcel.Range("H10") = RstFrm("Cidade")
MeuExcel.Range("N10") = RstFrm("Estado")
MeuExcel.Range("P10") = RstFrm("CEP")
MeuExcel.Range("H11") = RstFrm("Fone")
MeuExcel.Range("N11") = RstFrm("Celular")
MeuExcel.Range("H12") = RstFrm("EmailNF")
MeuExcel.Range("H13") = RstFrm("Prazoculta")
MeuExcel.Range("N12") = RstFrm("ContatoCliente")
MeuExcel.Range("O5") = RstFrm("DataPed")
MeuExcel.Range("O15") = RstFrm("VendedorOculta")
MeuExcel.Range("H15") = RstFrm("Observacao")
MeuExcel.Range("N14") = RstFrm("DescT")
MeuExcel.Range("H14") = RstFrm("FOculta")
MeuExcel.Range("L5") = RstFrm("NossoPedido")
RstFrm.MoveNext
Loop
' Dados subformulário
Set RstSubFrm = Me!SFrmDpedido.Form.RecordsetClone
RstSubFrm.MoveFirst
L = 18 ' Uma celula(celula onde está o texto)antes da inserção.
Do While Not RstSubFrm.EOF
L = L + 1
MeuExcel.Range("A" & L) = RstSubFrm("441")
MeuExcel.Range("B" & L) = RstSubFrm("462")
MeuExcel.Range("C" & L) = RstSubFrm("483")
MeuExcel.Range("D" & L) = RstSubFrm("504")
MeuExcel.Range("E" & L) = RstSubFrm("526")
MeuExcel.Range("F" & L) = RstSubFrm("568")
MeuExcel.Range("G" & L) = RstSubFrm("2GG10")
MeuExcel.Range("H" & L) = RstSubFrm("3GG12")
MeuExcel.Range("I" & L) = RstSubFrm("4GG14")
MeuExcel.Range("J" & L) = RstSubFrm("16")
MeuExcel.Range("K" & L) = RstSubFrm("18")
MeuExcel.Range("L" & L) = RstSubFrm("Qtd")
RstSubFrm.MoveNext
Loop
'Fecha o arquivo Excel
MeuExcel.ActiveWorkbook.Close SaveChanges:=True
MeuExcel.Visible = True: MeuExcel.Quit: Set MeuExcel = Nothing
Set RstFrm = Nothing
Set RstSubFrm = Nothing
MsgBox "A planilha foi atualizada...", vbInformation, "Aviso"
End Sub
Última edição por Silvio em 30/8/2018, 12:58, editado 1 vez(es) (Motivo da edição : Acréscimo de rotina)