2016-03-22 9 views
0

So versuche ich für eine Excel-VBA-Billing-Archiv/Tracker-Formular für meine Arbeit, und ich bin sehr neu zu Excel VBA. Jede Hilfe würde sehr geschätzt werden. Im Wesentlichen möchte ich, dass mein Benutzerformular das Rechnungsdatum in der unteren Tabelle eingibt, dann die Summe der ausgewählten Teile (A1-A19) nimmt und die Summe in die nächste, leere Zelle links neben dem eingegebenen Rechnungsdatum eingibt. Wenn es der erste Abrechnungszyklus ist, möchte ich nur den Dollarbetrag im Grand Total Engagement aufrufen und diesen Wert rechts neben dem Eingabeabrechnungsdatum setzen. Beigefügt sind meine Snippits der Excel-Tabelle und Benutzerformular. Vielen Dank für die Community!Excel VBA Billing Userform Eingabedaten Fragen

Excel Sheet

BillingArchiveUserform

'Creates "LastRow" variable 
If Range("D47").Value = "" Then 
LastRow = 47 
Else 
Main.Range("D46").Select 
LastRow = Selection.End(xlDown).Row 
End If 

i = 47 
Do While i <= LastRow 
If BillingDate.Value = Range("D" & i).Value Then 
If CmBBill.Value = "Yes" Then 
'Range("D" & i).Offset('resume from here and figure it out, but I want to choose the nearest empty cell to the right of date 
'Input project specific information (i.e. the sum of the parts that need to be billed) 
Else 
i = i + 1 
End If 
Loop 

Cells(LastRow + 1, 4).Value = BillingDate.Value 'Inputs Billing Date 

'2. Choose column of ProjectToBill based on value in textbox 
Main.Range("E5").Select 
LastCol = Selection.End(xlToRight).Column 

Antwort

0

1) Sie brauchen nicht eine Schleife für diese 2) Sie haben keine Logik, wenn die Userform Kontrollkästchen überprüft werden, um wahr oder falsch gesetzt und dann was tun, wenn sie wahr/falsch sind. 3) Offset-Eigenschaft wird benötigt, um Informationen in der unteren Tabelle in der nächsten verfügbaren Zeile zu setzen. Der Offset kann verrechnet werden, um links oder rechts basierend auf Ihren Kriterien, die höchstwahrscheinlich IF's sein werden, anzupassen. 4) wenn der erste Abrechnungszyklus die Eingabe an die erste Stelle im unteren Bereich richten kann. 5) Sehen Sie, wie Sie diese in eine Kalkulationstabelle speichern, indem Sie Variablen aus Textfeldern in Benutzerformularen deklarieren müssen. Ich erwähne es jedoch, denn wenn Sie diese Informationen jemals in VBA manipulieren müssen, müssen Sie dies möglicherweise tun. Und es sieht so aus, als ob diese einfache Mathematik nicht erledigt werden muss, wenn Sie auf Probleme stoßen, die das Problem sein könnten.

Dies sollten Sie an der richtigen Stelle

Private Sub commandbutton_click() 

    If CheckBox1.Value = True Then Sheet1.Range("E4").Value = "Wherever you hid the predetermined value" 
    If Sheet1.Range("d47").Value = vbNullString Then 
     Sheet1.Range("d47").Value = BillingDateTextBox.Value 
    Else 
     Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = BillingDateTextBox.Value 
     Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = "Wherever you hid the predetermined value" 
    End If 
End Sub 
+0

note einige meiner Zelle Richtungen in dem obigen Beispielcode ist falsch loszulegen. Dementsprechend anpassen –

Verwandte Themen