• DİKKAT

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

Değişken geçerliliği (variable validity) ile ilgili soru?

  • Konbuyu başlatan Konbuyu başlatan tteneke
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Kasım 2005
Mesajlar
39
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhaba benim sorum excel deki değişkenlerin geçerlilikleri ile ilgili.

Aşağıda kod satırlarını verdiğim program parçasında 3 adet değişken kullanıyorum. Bulardan

sayi1 ve toplam "Integer" cinsinden
sabit ise "Const" cinsinden

ben bu verilerin tanımlamaları ana prosedurde veri atamalarını ise alt prosedurde "birazda geçmiş zamanlardaki programlama alışkanlığı ile" yaptım (sabit adlı "const" cisnsinden değişkende ise durum farklı). Programı çalıştırdığımda aşağıdaki sonuçları alıyorum;

topla prosedurundeki toplam=0
topla prosedurundeki sayi1=2
topla prosedurundeki sabit=
ana prosedurdeki toplam=0
ana prosedurdeki sayi1=
ana prosedurdeki sabit=2

SORUM ŞU : ana prosedürde tanımladığım verilerin tüm prosedürlerde (hatta user formdaki prosedürlerde de) geçerli olması için nasıl bir tanımlama yapmalıyım?

Not : ben prosedürler arasında veri aktarmak yada fonksiyon kullanmak istemiyorum.

Cevaplarınız için şimdiden teşekkürler


Sub ana()
Dim sayi1, toplam As Integer
Const sabit = 2
Call topla
MsgBox ("ana prosedurdeki toplam = " & toplam)
MsgBox ("ana prosedurdeki sayi1 = " & sayi1)
MsgBox ("ana prosedurdeki sabit = " & sabit)
End Sub

Sub topla()
sayi1 = 2
toplam = sayi1 * sabit
MsgBox ("topla proseduründeki toplam = " & toplam)
MsgBox ("topla proseduründeki sayi1 = " & sayi1)
MsgBox ("topla proseduründeki sabit = " & sabit)
End Sub
 
Değişkenlerin tüm modüllerde geçerli olması için değişkenleri tüm prosedürlerin dışında en üstte public olarak tanımlamalısınız. Örneğin;

[vb:1:ffc4989b6d]Public sayi1, toplam As Integer
Public Const sabit = 2
Sub ana()
Call topla
MsgBox ("ana prosedurdeki toplam = " & toplam)
MsgBox ("ana prosedurdeki sayi1 = " & sayi1)
MsgBox ("ana prosedurdeki sabit = " & sabit)
End Sub [/vb:1:ffc4989b6d]

Ayrıca dersanemizde değişkenlerle ilgili, Sn danersin'nin çok güzel bir makalesi mevcuttur.

http://www.excel.web.tr/viewtopic.php?t=4673
 
Sayın Leventm

Verdiğiniz bilgiler için teşekkür ederim.
 
Değişkenlerin tüm modüllerde geçerli olması için değişkenleri tüm prosedürlerin dışında en üstte public olarak tanımlamalısınız.
Bazen "Global" olarak yazılıyor, bunun "Public" ile geçerliliği aynı mıdır?
 
Soruyu ekranda hatırlatmak için yazdım.
 
Yeni bir alternatif öğrenmiş oldum

Teşekkürler.
 
Geri
Üst