• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

başlangıçta eleman sayısı belli olmayan dizi

Katılım
24 Temmuz 2007
Mesajlar
726
Excel Vers. ve Dili
Excel 2010 tr
mrb,
2 boyulu bir dizi
başlangıcta
ReDim Secilen_Firma(0 To 1, 0 To 2) olarak tanımlı fakat kaç satırdan oluşacağı belli değil döngü içinde belli olacak


for i=1 to 10000

if x=1 then
secilen_firma(sayac,0)=aa
secilen_firma(sayac,1)=aa+1
sayac=sayac+1

endif

next
gibi, burada if bloğu içinde redim ile diziyi yeniden tanımlarsam bir önceki aldığı değer siliniyor
dizi içinde ne kadar eleman varsa tanımlamada ona göre olmalı çünki sonunda form üzerinde listboxa atıyorum, diziyi fazla tanımlarsam boşlular çıkıyor ne yapmalıyım.
Teşkkürler
 
Selamlar,

Döngünüzün içine aşağıdaki kodu ekleyin.

Kod:
x = x + 1
ReDim Preserve Secilen_Firma(0 To x, 0 To 2)
 
Sayın Korhan bey şağıdaki sorun nedir,
işaretlediğim satırda Subscript out of range hatası veriyor
hata verdiğinde sayac değişkeninin değeri 2
yani ikinci dönüşte hata veriyor


ReDim Secilen_Firma(0 To 1, 0 To 2)

For i = 0 To Firma_List.ListCount - 1

If Firma_List.Selected(i) Then 'Seçilen firmaları ilgili hücreye alt alta yaz



Secilen_Firma(SayaC, 0) = Firma_List.Column(0, i)
Secilen_Firma(SayaC, 1) = Firma_List.Column(1, i)
SayaC = SayaC + 1


ReDim Preserve Secilen_Firma(0 To SayaC, 0 To 2)


'Firma/ilaç adlarının *'a kada boşluk temizle
If InStr(Firma_List.Column(1, i), Ayrac) > 0 Then
Cells(SatiR, "AA") = Left(Firma_List.Column(1, i), InStr(Firma_List.Column(1, i), Ayrac) - 1) 'Firma/ilac adlarını yaz
'Firma/ilaç adlarının boşluk yada *'kadar olan kısmını al
Else
Cells(SatiR, "AA") = Firma_List.Column(1, i) '*/boşluk yoksa aynen yaz
End If


If Cells(SatiR, "A") <> "" Then
Cells(SatiR, "A") = Cells(SatiR, "A") & Chr(10) & Firma_List.Column(1, i)
Else
Cells(SatiR, "A") = Firma_List.Column(1, i)
End If

Cells(SatiR, "Z") = Cells(SatiR, "Z") & "," & Firma_List.Column(0, i) 'Firma kodlarını yaz



End If
Next
 
Geri
Üst