Kapalı dosyadan listbox'a veri aktarımı hakkında

Katılım
22 Nisan 2006
Mesajlar
28
Excel Vers. ve Dili
2003 türkçe
Sub Test()
Dim NewXL As Excel.Application
Dim NewBook As Workbook
Dim Kayit As Long

Set NewXL = New Excel.Application
NewXL.Visible = False
Set NewBook = NewXL.Workbooks.Open("C:\Temp\Test.xls")
Kayit = NewXL.WorksheetFunction.CountA(NewBook.Sheets("Sayfa1").Range("A:A"))

MsgBox Kayit

NewBook.Close SaveChanges:=True
Set NewBook = Nothing
Set NewXL = Nothing
End Sub
Sayın Haluk üstadım; yukarıdaki verdiğiniz kodlarla kapalı dosya satırlarıyla işlem yapıyordum. Fakat satırlar çok olunca veri aldığım textboxların sayısı arttı başa çıkılmaz bir hale geldi. Onun yerine listbox kullanmayı denedim ama başaramadım
Kod:
Private Sub UserForm_Initialize()
listbox1.columncount = 12
End Sub
Private Sub CommandButton1_Click()
listbox1.rowsource ="xxxxxxxxxxxxx" & NewXL.WorksheetFunction.CountA(NewBook.Sheets("Sayfa1").Range("A:A")) 
..........
End Sub
gibi birşeyler denedim sonuç alamadım. "xxxxxxxx" ler yerine ne gelebilir yada böyle birşey yapılabilirmi? Nedersiniz. Hem sizin hem de diğer dostlarımın görüşlerinizi bekliyorum. Saygılar..
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,648
Excel Vers. ve Dili
Pro Plus 2021
Rowsource değilde additemle aktarılsa olmazmı?
[vb:1:e3dd8cae9f]Sub Test()
Dim NewXL As Excel.Application
Dim NewBook As Workbook
Dim Kayit As Long

Set NewXL = New Excel.Application
NewXL.Visible = False
Set NewBook = NewXL.Workbooks.Open("C:\Temp\Test.xls")
Kayit = NewXL.WorksheetFunction.CountA(NewBook.Sheets("Sayfa1").Range("A:A"))

For x = 1 To Kayit
ListBox1.AddItem (NewBook.Sheets("Sayfa1").Cells(x, 1))
Next
NewBook.Close SaveChanges:=True
Set NewBook = Nothing
Set NewXL = Nothing
End Sub[/vb:1:e3dd8cae9f]
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
veyselemre' Alıntı:
Rowsource değilde additemle aktarılsa olmazmı?
Bu tip durumlarda döngüyle veri almak, fazla miktarda verilerin olduğu durumlarda hafiften yavaşlamaya sebep olur.

Benim önerim ise;

Kod:
'....
'...
'..
MyArr = NewBook.Sheets("Sayfa1").Range("A1:A" & Kayit)
ListBox1.List = MyArr
'....
'...
'..
 
Katılım
22 Nisan 2006
Mesajlar
28
Excel Vers. ve Dili
2003 türkçe
İlginiz için teşekkürler sayın veyselemre ve haluk bey. Bilgisayarlar bakımda olduğu için kodları ancak deneyebildim. Verdiğiniz iki kod da düzgün çalışıyor fakat listbox satır olarak aktarmak mümkün müdür?
For Sayaç5 = 1 To kayıt
ListBox1.AddItem (NewBook.Sheets(1).Rows(sayaç5 & ":" & sayaç5))
Next
gibi bir şey denedim. Çünkü ".cells" ile hücresel aktarım yapılabiliyor. Satır olarak aktarmak mümkün müdür? Çünkü hücrelerin açıklamaları var. Yukarıdaki kod çalışmıyor. Yardımınızı istesem çok şey mi istemiş olurum. Saygılar..
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bence, en kısa zamanda bir kitap alıp bir süre kitaptan çalışın.

Forumdaki arama motorunu da kullanarak, benzer soruları araştırın.

Bu şekilde kendinizi geliştirdikten sonra, takıldığınız yerleri foruma sorun. Yoksa, bu şekilde zorlanırsınız.
 
Katılım
23 Mart 2006
Mesajlar
303
Excel Vers. ve Dili
Microsoft Office 2003
Excel 2003
Sayın maviayna ,

ListBox1.Clear
son = Cells(65536, 1).End(xlUp).Row
For i = 2 To son
If Cells(i, 10).Value > 0 Then
Cells(i, 1).Select
c = c + 1
For y = 1 To 10
ListBox1.AddItem
ListBox1.List(c - 1, y - 1) = Cells(i, y + 1).Value
Next
End If
Next

yada cells yerine Range kullanabilirsiniz.

Range("A1:d54") gibi,

Saygılar
 
Katılım
22 Nisan 2006
Mesajlar
28
Excel Vers. ve Dili
2003 türkçe
Sayın Haluk bey sizin gibi bir üstadın tavsiyelerini dinlememek mümkün değil. Aslında bu biraz sizlerin suçu. Güzel örnekler verip canımızı çektiriyorsunuz. İşyerinde benim için internete yasak geldi. Artık kaçamak çalışıyorum. Gece yatarken bile aklıma excel geliyor.
Kitaba gelince İzmir'liler bilir Sevgi Yolu'ndan 2-3 saat inceyip anlatımı kolay olan bir tane almıştım ilk başladığım zaman. Şimdi o yetersiz geliyor. Bir tane daha almak şart oldu. Hatta bilgisayar almak. Excelle uğraşmak depresyonuma da iyi geliyor. Bir nevi bu site bir çeşit terapi oluyor. İş hayatında biri bir şeyler öğrenecek diye birilerinin ödü kopuyor. Fakat burada herkes elinden geldiğince birbirine çeşitli şekillerde destek oluyor. Bu da beni mutlu etmeye yetiyor.
Dostlarım sizlere minnet borçluyum. Her türlü görüşleriniz, tavsiyeleriniz benim için değerlidir.
Veda konuşması gibi oldu galiba ama bir yere gittiğim yok. Herşey için tekrar tekrar teşekkürler.

Sayın teyfikdemir kodunuzu uyguladım sayın Haluk beyin kodunu değiştirince istediğim sonuca ulaştım.

Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 10
End Sub

Private Sub CommandButton9_Click()
..........
MyArr = NewBook.Sheets("Sayfa1").Range("A7:G7" & Kayıt)
UserForm2.ListBox1.List = MyArr
............
End Sub

"A7:G7" değerleriyle oynayarak istediğim kadar sütun ekleyebiliyorum. Ama sizin kodları da deneceğim. İlginize teşekkürler. Tüm dostlarıma saygılar.
 
Katılım
13 Mayıs 2006
Mesajlar
12
Excel Vers. ve Dili
2002 Türkçe
'....
'...
'..
MyArr = NewBook.Sheets("Sayfa1").Range("A1:A" & Kayit)
ListBox1.List = MyArr
'....
'...
'..
Herkese kolay gelsin
Yukarıdaki kodlarla kapalı dosyadan listbox'a veri alabiliyorum. Kolonların açıklama satırlarını label'lerle yapıyordum. Fakat bazı verilerin uzunluğu arttığından açıklama ların yerleri şaşıyor. listbox'ın colomnheads özelliği de list metodunda bir işe yaramıyor. İlla rowsource gerekiyor. Sorun da burda başladı.
Sözün özü bana;
Kod:
listbox1.rowsource = NewBook & "sayfa1!A:M" & Kayit
şeklinde birşey denedim olmadı. NewBook(açılan dosya) değişkenini bir rowsource yöntemine adapte edemedim.
Umarım derdimi anlatabilmişimdir. İlginizi eksik etmeyin. Selemlar.​
 
Üst