Transferindo dados do modelo de fatura para um log (Excel) usando o VBA

0

Estou usando o Excel 2013 para criar um código VBA que me permita transferir dados de uma pasta de trabalho (modelo de fatura do Excel) para outra pasta de trabalho (Registro de faturas).

Fatura:

Log:

Precisoquedeterminadascélulasdafaturasejamtransferidasparaumlog.Porexemplo:

L4(includestheinvoicenumber)L13(includesthedateoftheinvoice)L58(includesthetotalamountoftheinvoice)E13(BilledtoNameofSite)E25:E53(includespatientnames).

Nolog,gostariade:

L4=A2L13=B2L58=C2E13=D2E25:E53=E2

equeroqueacontagemdenomesnointervaloE25:E53apareçanacélulaF2dolog.F2comaquantidade.

EuqueroqueointervalodecélulasE25:53(apenasnomesdepacientes)sejacombinadoemumacélulaseparadaporumponto-e-vírgula,porexemplo,"John Doe; Mary Ann; Sam Cook".

Além disso, gostaria de começar uma nova linha toda vez que novos dados forem inseridos na fatura. A primeira linha do log terá os cabeçalhos. Veja o link abaixo para acessar capturas de tela para exemplos.

(Eu não consigo anexar a pasta de trabalho do Excel. Se você conhece uma maneira melhor de fazer isso, por favor me avise).

O código que tenho atualmente é:

Sub Button3_Click()
Dim InvoiceNumber As Integer
Dim InvoiceDate As Date
Dim TotalAmt As Currency
Dim BillTO As String
Dim InmateNames As String
Dim Qty As Integer
    Worksheets("Invoice").Select
    InvoiceNo = Range("L4")
    InvoiceDate = Range("L13")
    TotalAmt = Range("L58")
    BillTO = Range("E13")
    Description = Range("E25:E53")
    Worksheets("Invoice Log").Select
    Worksheets("Invoice Log").Range("A1").Select
    If Worksheets("Invoice Log").Range("A1").Offset(1, 0) <> "" Then
    Worksheets("Invoice Log").Range("A1").End(x1Down).Select
    End If
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = InvoiceNumber
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = InvoiceDate

Por algum motivo, o código está começando com "0" como minha fatura #. As colunas Data da fatura, Total de itens, Faturados e QTD estão funcionando bem. No entanto, os nomes dos pacientes não são preenchidos.

    
por A. Gipson 24.08.2016 / 21:02

2 respostas

0

Você tem invoicenumber declarado e também tenta obter seus dados, mas armazena o valor em invoiceno .

Insira Option Explicit no início do seu módulo, isso ajudará a evitar esses erros.

    
por 26.08.2016 / 06:17
0

Este exemplo pode ser revisado para o exemplo da fatura avançada que fez com excel userform: link

Neste modelo de fatura, as formas de usuário que contêm caixa de texto, caixa de listagem e botões são usadas para inserir rapidamente dados de clientes e produtos. Ago, os dados solicitados podem ser pesquisados na lista através das caixas de texto. Então, quando o item da lista é clicado duas vezes ou quando a tecla enter é pressionada, os dados do item são inseridos na planilha A fatura criada pode ser copiada para a folha de registro selecionada.

    
por 08.03.2017 / 13:06