listwiew de her görüntülenen satırın üstüne bir satır eklemek

Katılım
12 Şubat 2007
Mesajlar
144
Excel Vers. ve Dili
2003
merhaba arkadaşlar listwiewde görüntülemeden sonra verileri veritabanına kayıt yapıyorum.veritabanına yazdırırken görüntülenen yani yazdırılan her satırın üstüne otomatik olarak bir satır eklemek istiyorum.kısacası aşağıya doğru kayacak.Saygılar.







Private Sub CommandButton5_Click()
Workbooks.Open ("C:\VERİTABANLARI\VERİTABANI1.xls")
Workbooks("VERİTABANI1.xls").Activate
Set rapor = Sheets("sayfa2")
Range("sayfa2!A2:H5000").ClearContents
With ListView1
For i = 1 To 9
rapor.Cells(1, i) = .ColumnHeaders(i)
Next i
End With
With ListView1
For i = 1 To .ListItems.Count
rapor.Cells(i + 1, 1) = .ListItems(i)
rapor.Cells(i + 1, 2) = .ListItems(i).SubItems(1)
rapor.Cells(i + 1, 3) = .ListItems(i).SubItems(2)
rapor.Cells(i + 1, 4) = .ListItems(i).SubItems(3)
rapor.Cells(i + 1, 5) = .ListItems(i).SubItems(4)
rapor.Cells(i + 1, 6) = .ListItems(i).SubItems(5)
rapor.Cells(i + 1, 7) = .ListItems(i).SubItems(6)
rapor.Cells(i + 1, 8) = .ListItems(i).SubItems(7)
Next i
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Eğer yukarıdaki kodlarınız sorunsuz çalışıyorsa, aşağıdaki gibi revize ediniz.

Kod:
Private Sub CommandButton5_Click()
Dim rapor As Worksheet
Dim y As Integer, i As Integer
Workbooks.Open ("C:\VERİTABANLARI\VERİTABANI1.xls")
Workbooks("VERİTABANI1.xls").Activate
Set rapor = ActiveWorkbook.Sheets("sayfa2")
rapor.Range("A2:H5000").ClearContents
With ListView1
      For i = 1 To 9
            rapor.Cells(1, i) = .ColumnHeaders(i)
      Next i
      For i = 1 To .ListItems.Count
          y = y + 2
          rapor.Cells(y, 1) = .ListItems(i)
          rapor.Cells(y, 2) = .ListItems(i).SubItems(1)
          rapor.Cells(y, 3) = .ListItems(i).SubItems(2)
          rapor.Cells(y, 4) = .ListItems(i).SubItems(3)
          rapor.Cells(y, 5) = .ListItems(i).SubItems(4)
          rapor.Cells(y, 6) = .ListItems(i).SubItems(5)
          rapor.Cells(y, 7) = .ListItems(i).SubItems(6)
          rapor.Cells(y, 8) = .ListItems(i).SubItems(7)
      Next i
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
Set rapor = Nothing
End Sub
 
Katılım
12 Şubat 2007
Mesajlar
144
Excel Vers. ve Dili
2003
tekrar selam

Ferhat bey listwiewde 6 satıra kadar görüntüleme yapıyorum ancak bazen tek satır bazende altı satırın tamamı görüntülenip aşağıdaki kodla başka bir çalışma kitabına yazdırıyorum.kısacası listwiewde kaç satır varsa önce o kadar satır veritabanında açılacak ve açılan satıra veriler arka arkaya kaydedilecek.her seferinde aynı yere yani a2 satırından başlayacak.ilginiz için tekrar teşekkür ediyorum.ve her veri kaydedilişte kaydedilen satır kadar veritabanında satırlar aşağıya doğru kayacaktır.selamlar.
rapor.Range("A2:H5000").ClearContents bu komuta gerek yok .bunu yok farzedin.
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Anlamadım...

Yani siz, kaydedeceğiniz veriyi; sayfada bulunan diğer verilerin en altına değil de en üstüne mi koymak istiyorsunuz?
 
Katılım
12 Şubat 2007
Mesajlar
144
Excel Vers. ve Dili
2003
selam

Evet ferhat bey her seferinde listwievde kaç satır var ise o kadar satırı diğer çalışma sayfasında açıp en üste yazacak diğerlerini alta kaydıracak.Aslında satır eklemek kolay ama listwiewde her görüntülemede kaç satır görüntüleyeceğim belli olmadığından ve bunu diğer çalışma kitabına her defasında nasıl kaydedeceğim bana zor geldi.maksimum listwievde 6 satır görüntüleniyor.Aslında bu bir vardiya raporu gibi bişey bunuda veritabanına gönderiyorum.Fakat her defasında 6 satır birden veritabanına gidince ağırlaşıyor.Bu nedenle bende kaç satır veri girişi yapılmış ise önce listwievde görüntülüyorum buraya kadar sorun yok ancak bundan sonra eğer 3 satır veri görüntüleniyor ise bunları her seferinde a8 hücresinden başlayarak a10 kadar yazdıracak.4 satır ise a8-a11 arasına gibi.doğrusu bana zor gibi geldi.
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Belirli bir konuma, listviewdeki eleman sayısı kadar satır açmak için aşağıdaki gibi bir yapı tasarlanabilir.

Kod:
For i = 1 To ListView1.ListItems.Count
    Range("A6").EntireRow.Insert
Next
Yukarıdaki kod, 6 satırdan itibaren listview'deki satır sayısı kadar boş satır açar. Siz kendinize uyarlayınız.

Açılan bu boş satırlara da daha önceki kodlarınızdaki for next döngüsüyle, listview'e aktarabilirsiniz.
 
Katılım
12 Şubat 2007
Mesajlar
144
Excel Vers. ve Dili
2003
tşkler

Sanırım bundan sonrasını kendim yaparım.
 
Üst