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

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
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
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
 
Katılım
2 Kasım 2005
Mesajlar
39
Excel Vers. ve Dili
Excel 2003 - Türkçe
Sayın Leventm

Verdiğiniz bilgiler için teşekkür ederim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,345
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
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?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,345
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Soruyu ekranda hatırlatmak için yazdım.
 
Katılım
2 Kasım 2005
Mesajlar
39
Excel Vers. ve Dili
Excel 2003 - Türkçe
Yeni bir alternatif öğrenmiş oldum

Teşekkürler.
 
Üst