2016-03-22 21 views
0

Bu yüzden çalışmam için bir Excel VBA fatura arşivi/izleyici formu için kod çalışıyorum ve vba excel için çok yeni. Herhangi bir yardım çok takdir edilecektir. Esasen, kullanıcı formumun alt tablodaki faturalama tarihini girmesini, ardından seçilen parçaların toplamını (A1-A19) almasını ve toplamı giriş faturalama tarihinin solundaki en yakın, boş hücreye girmesini istiyorum. İlk faturalandırma döngüsü ise, o zaman Büyük Toplam Katılımda dolar tutarını aramak ve bu değeri giriş faturalama tarihinin sağına koymak istiyorum. Ekli, Excel sayfasının ve kullanıcı formunun snippit'leridir. Çok teşekkürler topluluk!Excel VBA Faturalama Userform giriş verileri soruları

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 

cevap

0

1) Sen userform onay kutularını sonra doğru veya yanlış ve ayarlı olup olmadığını denetler herhangi mantığı yok) bu 2 için bir döngü gerekmez Doğru/yanlış ise ne yapmalı? 3) Ofset Mülkiyetin, bir sonraki müsait satırda lowe tablosuna bilgi vermesi gerekecektir. Ofset, ölçütlerinize uygun olarak sol veya sağa göre ayarlanabilecektir, ki bu büyük olasılıkla IF'nin 4) ilk faturalandırma döngüsünde girişi alt alanda ilk konuma yönlendirebilirsiniz. 5) bunları bir e-tabloya nasıl döktüğünüzle ilgili olarak, kullanıcı formlarındaki metin kutularından değişkenleri bildirmek zorunda kalmamak gerekir. Ancak bundan bahsederim, çünkü bu bilgiyi VBA'da işlemeye ihtiyacınız varsa, bunun yapılması gerekebilir. Ve bu basit matematik ihtiyaçları gibi görünüyor, bu yüzden sorun olabilir sorunları içine girerseniz.

Bu, yukarıda örnek kodda benim cep bazı yönlerin

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

not yanlıştır doğru yerde başlamak gerekir. Buna göre ayarlamak –