Wenn ich jede Rechnung speichere, werden auch alle leeren Zeilen in der Rechnung angezeigt

350
Amarendra Kumar

Ich erstelle eine Datenbank für einen Freund von mir. Auf 2 Bögen habe ich dann eine Rechnungsliste, die Daten aus der Bestandsliste basierend auf einem Artikelcode (unter Verwendung von Vloolup) aufruft. Ich habe dann eine VBA-Formel, mit der die Daten von jeder Rechnung in ein Rechnungsdatenblatt verschoben werden, das die Daten von jedem Verkauf enthält. Dies ist der Code, den ich verwende, um die Daten von jeder Rechnung in das Datenblatt "Rechnungsdaten" zu übertragen.

Ich habe eine Kopie der Rechnungsseite beigelegt, damit Sie sehen können, woher mein Code kommt

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 

Mein Problem ist, dass beim Speichern jeder Rechnung alle leeren Zeilen in der Rechnung angezeigt werden:

0

0 Antworten auf die Frage