• DİKKAT

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

Dizi boyutunu inputbox ile girebilir miyiz?

  • Konbuyu başlatan Konbuyu başlatan yzu91
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Şubat 2010
Mesajlar
40
Excel Vers. ve Dili
excell 2010 türkçe
Yordam içinde tanımlamış olduğum bir dizi değişkeni için dizi boyutunu da değişken olarak girip sonradan dizi boyutu değerini inputbox ile alabilir miyim?

Bu konu hakkında bir kaç denemem oldu örneğin:

Sub abc()

boyut = Application.InputBox("Dizi boyutunu giriniz.", , , , , , , 1)
Dim dizi(boyut) As Double
Dim i As Byte

For i = 1 To boyut
dizi(i) = Math.Rnd
MsgBox (dizi(i))
Next


End Sub

Fakat constant expression required hatası alıyorum.

Yardımınızı rica ederim.
 
Merhaba,

Aşağıdaki gibi dener misiniz?

Kod:
Sub abc()
    
    Dim boyut As Integer
    Dim dizi
    Dim i As Byte
    
    boyut = Application.InputBox("Dizi boyutunu giriniz.", Type:=1)
    
    ReDim dizi(boyut)
    
    MsgBox UBound(dizi)
    
    For i = 1 To boyut
        dizi(i) = Math.Rnd
        MsgBox (dizi(i))
    Next
 
End Sub
 
Necdet Bey teşekkür ederim.
Yalnız ben bu dizinin içindeki minimum değeri de bulmak istiyorum.

Sub abc()


Dim boyut As Integer
Dim dizi
Dim i As Byte

boyut = Application.InputBox("Dizi boyutunu giriniz.", Type:=1)

ReDim dizi(boyut)

MsgBox UBound(dizi)

For i = 1 To boyut
dizi(i) = Math.Rnd
MsgBox (dizi(i))

Next
a = WorksheetFunction.Min(dizi())



End Sub

Şeklinde bir denemem oldu lakin Subscript is out of range hatası alıyorum.

Bilginizi rica ederim.
 
Merhaba,

a = WorksheetFunction.Min(dizi())

satırını

Kod:
a = Application.WorksheetFunction.Min(Application.Transpose(dizi()))

olarak dener misiniz?

Sondaki parantez fazla olabilir, denemeden yazdım.
 
Aşağıdaki satırdaki kırmızı renkli parantezleri kaldırın.

Kod:
a = WorksheetFunction.Min(dizi[COLOR=Red][B]()[/B][/COLOR])
 
İlk başta Necdet Bey'in kodunu girdim fakat aynı hatayı aldım.

Levent Bey'in kodu çalıştı.

İkinize de çok teşekkür ederim.

Ellerinize sağlık.
 
Merhaba,

a = WorksheetFunction.Min(dizi())

satırını

Kod:
a = Application.WorksheetFunction.Min(Application.Transpose(dizi()))

olarak dener misiniz?

Sondaki parantez fazla olabilir, denemeden yazdım.

Denmeden yazmamak gerekiyor :)

Transpose VLookUp için geçerli :)
 
Geri
Üst