listview sütun toplama

Katılım
11 Kasım 2007
Mesajlar
35
Excel Vers. ve Dili
2003 İngilizce
merhabalar

Private Sub oListProduct()
Dim iLine, iCount, toplam, j
ListView01.ListItems.Clear
iCount = 1
For iLine = 1 To ThisWorkbook.Sheets("iT212").Cells(4, 2).Value
iStatus = ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 7 + ThisWorkbook.Sheets("Data").Cells(3, 9)) And _
((ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 11 + ThisWorkbook.Sheets("Data").Cells(4, 9)) And _
ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 13 + ThisWorkbook.Sheets("Data").Cells(5, 9)) And _
ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 15 + ThisWorkbook.Sheets("Data").Cells(6, 9)) And _
ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 17 + ThisWorkbook.Sheets("Data").Cells(7, 9))) Or _
(ThisWorkbook.Sheets("Data").Cells(3, 9) <> 1))
If iStatus Then
ListView01.ListItems.Add
ListView01.ListItems(iCount).Text = Val(InputBoxTR09.Value) * Val(ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 3).Value)
ListView01.ListItems(iCount).SubItems(1) = ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 4).Value
ListView01.ListItems(iCount).SubItems(2) = ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 5).Value
ListView01.ListItems(iCount).SubItems(3) = ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 6).Value & " $"
ListView01.ListItems(iCount).SubItems(4) = Val(ListView01.ListItems(iCount).Text) * Val(ListView01.ListItems(iCount).SubItems(3)) & " $"
If Val(ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 7)) <> 0 Then
ListView01.ListItems(iCount).SubItems(5) = ThisWorkbook.Sheets("iT212").Cells(iLine + 3, 7) & " $"
ListView01.ListItems(iCount).SubItems(6) = Val(ListView01.ListItems(iCount).Text) * Val(ListView01.ListItems(iCount).SubItems(5)) & " $"
Else
ListView01.ListItems(iCount).SubItems(5) = " "
ListView01.ListItems(iCount).SubItems(6) = " "
End If
iCount = iCount + 1
End If
Next
iMaxLineNo = iCount - 1
ListView01.ListItems.Add
ListView01.ListItems(iCount).SubItems(4) = Val(ListView01.ListItems(iCount - 1).SubItems(4)) + Val(ListView01.ListItems(iCount - 2).SubItems(4))End Sub

Kodlarda başka sheetlerden alınan veriler listview içine yerleşiyor ve bazı hesaplamalar var . listviewdeki 4. sütuna fiyat bilgileri gelio . ben aşağıya bi satır daha açıp bu sütunu toplamak istiorum . gerekli for döngüsünü yazamadım . yardım edebilirmisiniz ?
en alttaki son satır tek tek toplama yapıyor . ama sütüne gelebilecek eleman sayısı değişken bu yüzden tek tek toplama yapamam
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

A&#351;a&#287;&#305;daki &#246;rnek kodu kendinize uyarlay&#305;n&#305;z. Toplam adl&#305; de&#287;i&#351;ken'e Listview01'in 4.s&#252;tun toplam&#305; atanmaktad&#305;r.


Kod:
Sub Toplam()
Dim [B]Toplam[/B] As Long

[LEFT]Dim i As Integer
[LEFT]With ListView01
 For i = 1 To .ListItems.Count - 1
     If IsNumeric(.ListItems(i).SubItems(4)) Then
        [B]Toplam[/B] = [B]Toplam[/B] + .ListItems(i).SubItems(7) * 1
     End If
 Next i
End With[/LEFT]
 
[LEFT]End Sub[/LEFT]

[/LEFT]


 
Katılım
11 Kasım 2007
Mesajlar
35
Excel Vers. ve Dili
2003 İngilizce
Private Sub Toplam()
Dim Toplam As Long

Dim i As Integer
With ListView01
For i = 1 To .ListItems.Count - 1
If IsNumeric(.ListItems(i).SubItems(4)) Then
Toplam = Toplam + .ListItems(i).SubItems(4) * 1
End If
Next i
End With
ListView01.ListItems.Add
ListView01.ListItems(iCount).SubItems(4) = Toplam
End Sub

son iki satırı şeklinde yaptım.
"Toplam" kendi yarattığım procedure ün altına ekleyebiliyormuyum ?
expected sub , function or property hatası veriyor
 
Katılım
11 Kasım 2007
Mesajlar
35
Excel Vers. ve Dili
2003 İngilizce
icount kadar sat&#305;r olu&#351;turluyor mesela 3. tabi icount eklenen par&#231;aya g&#246;re de&#287;i&#351;ebilir .
4. sat&#305;r&#305;n 4. s&#252;tununda g&#246;stermek istiorum .
ListView01.ListItems.Add
ListView01.ListItems(iCount).SubItems(4) = Toplam
burda yani son sat&#305;r&#305;n 4. s&#252;t&#252;n&#252;nde sizin i&#351;leminizi yapt&#305;rmak istiorum gibi
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
O halde kodu aşağıdaki gibi revize etmemiz gerekir. Size daha önce "4" olarak bildirdiğim kolon index'ini "3" olarak değiştirdim.

Kod:
Sub Toplam()
Dim Toplam As Long
Dim i As Integer
With ListView01
 For i = 1 To .ListItems.Count - 1
     If IsNumeric(.ListItems(i).SubItems(3)) Then
        Toplam = Toplam + .ListItems(i).SubItems(7) * 1
     End If
 Next i
 .ListItems.Add , , ""
 .ListItems(.ListItems.Count).SubItems(3) = Toplam
End With
End Sub
 
Katılım
11 Kasım 2007
Mesajlar
35
Excel Vers. ve Dili
2003 İngilizce
fpc &#231;ok te&#351;ekk&#252;r ederim bi yerde dolar i&#351;areti koyuyordum o i&#351;i bozuyormu&#351; :D
kodun &#231;ok g&#252;zel &#231;al&#305;&#351;t&#305; . tekrar saol
 
Katılım
16 Haziran 2007
Mesajlar
163
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhaba;
ListView toplam&#305;n&#305; Listboxta g&#246;rmek i&#231;in nas&#305;lbir de&#287;i&#351;iklik yapmam&#305;z laz&#305;m ben u&#287;ra&#351;t&#305;m ama bir t&#252;rl&#252; yapamad&#305;m yard&#305;mc&#305; olabilirseniz &#231;ok memnun olurum &#351;imdiden te&#351;ekk&#252;rler...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba;
ListView toplamını Listboxta görmek için nasılbir değişiklik yapmamız lazım ben uğraştım ama bir türlü yapamadım yardımcı olabilirseniz çok memnun olurum şimdiden teşekkürler...
Nasıl yani?
Labelde veya textbox'tada görebilirsiniz.
illaki niye listbox'ta görmek istiyorsunuz?
 
Katılım
16 Haziran 2007
Mesajlar
163
Excel Vers. ve Dili
Excel 2003 - Türkçe
&#246;nemli de&#287;il hocam listbox nesnelerini daha &#246;nceden eklemi&#351;tim ama textboxa da alabiliriz.. te&#351;ekk&#252;rler..
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
önemli değil hocam listbox nesnelerini daha önceden eklemiştim ama textboxa da alabiliriz.. teşekkürler..
Aşağıdaki kod listview'in 2nci sütunundaki sayısal değerleri toplar.:cool:
Kırmzı olan yeri siz istediğiniz sütunu yazın.
Not:2nci sütun 1den başlaryarak devam eder.
Kod:
Dim topla As Double
On Error Resume Next
For i = 1 To ListView1.ListItems.Count
    toplam = toplam + CDbl(ListView1.ListItems(i).SubItems([B][COLOR="Red"]1[/COLOR][/B]))
Next
TextBox1.Text = Format(toplam, "#,##0.00")
 
Üst