Estou criando um banco de dados para um amigo meu. em 2 folhas, então eu tenho uma lista de faturas que chama dados da lista de inventário com base em um código de item (usando Vloolup). Então eu tenho uma fórmula de VBA que move os dados de cada fatura para uma folha de dados de fatura que contém os dados de cada venda. Este é o código que estou usando para transferir os dados de cada fatura para a planilha "Invoice dataq".
Incluí uma cópia da página da fatura para que você possa ver onde meu código está sendo extraído
Option Explicit
Sub Button2_Click()
Dim rng As Range
Dim i As Long
Dim a As Long
Dim rng_dest As Range
Application.ScreenUpdating = False
'Check if invoice # is found on sheet "Invoice data"
i = 1
Do Until Sheets("Invoice data").Range("A" & i).Value = ""
If Sheets("Invoice data").Range("A" & i).Value = Sheets("Invoice").Range("F4").Value Then
'Ask overwrite invoice #?
If MsgBox("Overwrite invoice data?", vbYesNo) = vbNo Then
Exit Sub
Else
Exit Do
End If
End If
i = i + 1
Loop
i = 1
Set rng_dest = Sheets("Invoice data").Range("G:K")
'Delete rows if invoice # is found
Do Until Sheets("Invoice data").Range("A" & i).Value = ""
If Sheets("Invoice data").Range("A" & i).Value = Sheets("Invoice").Range("F4").Value Then
Sheets("Invoice data").Range("A" & i).EntireRow.Delete
i = 1
End If
i = i + 1
Loop
' Find first empty row in columns G:K on sheet Invoice data
Do Until WorksheetFunction.CountA(rng_dest.Rows(i)) = 0
i = i + 1
Loop
'Copy range B13:I38 on sheet Invoice
Set rng = Sheets("Invoice").Range("B13:F32")
' Copy rows containing values to sheet Invoice data
For a = 1 To rng.Rows.Count
If WorksheetFunction.CountA(rng.Rows(a)) <> 0 Then
rng_dest.Rows(i).Value = rng.Rows(a).Value
'Copy Invoice number
Sheets("Invoice data").Range("A" & i).Value = Sheets("Invoice").Range("F4").Value
'Copy Date
Sheets("Invoice data").Range("B" & i).Value = Sheets("Invoice").Range("F3").Value
'Copy Company name
Sheets("Invoice data").Range("C" & i).Value = Sheets("Invoice").Range("C7").Value
'Copy Add
Sheets("Invoice data").Range("D" & i).Value = Sheets("Invoice").Range("C8").Value
'Copy PIN
Sheets("Invoice data").Range("E" & i).Value = Sheets("Invoice").Range("C9").Value
'Copy Phone
Sheets("Invoice data").Range("F" & i).Value = Sheets("Invoice").Range("C10").Value
i = i + 1
End If
Next a
MsgBox ("Invoice saved!")
Application.ScreenUpdating = True
Sheets("Invoice").Range("F4").Value = _
Sheets("Invoice").Range("F4").Value + 1
End Sub
Sub Button1_Click()
UserForm1.Show
End Sub
Meu problema é que, quando salvo cada fatura, todas as linhas em branco da fatura também são exibidas: