Soru Global Değişken Tanımlama

gokhanboyaci

Destek Ekibi
Destek Ekibi
#1
Merhaba Arkadaşlar,
Excelde aşağıdaki gibi bir textbox olan bir menüm var.Modul üzerinden İlk ürün ve son ürüne excel açıldığında otomatik olarak değer atıyorum. Daha sonra burdaki sayıları bir değişkene aktarıyorum.

Farklı bir modul üzerinde buton ile fonskiyonu başlatıp buradaki değerleride alıp fonskiyonu çalıştırıyorum. Buraya kadar hiç bir sorun yok.
Daha sonra tekrar butona bastığımda buradaki değerler sıfırlanıyor.

Global, private ile tanımlamalar yaptım ama gene sıfırlandı. Bu değişkenleri atama sonrası excel kapana kadar son aldığı değeri saklamasını nasıl sağlarım.

Ekran Alıntısı.PNG
 

gokhanboyaci

Destek Ekibi
Destek Ekibi
#5
Kod:
'Tarama bilgileri
Public ilkUrun As Integer
Public sonUrun As Integer

Sub GetText(control As IRibbonControl, ByRef text)
    Select Case control.ID
    Case "editBoxIlkUrun"
        text = 1
        ilkUrun = text
    Case "editBoxSonUrun"
        text = 1000
        sonUrun = text
    End Select
End Sub


Sub onChangeTaramaIlkUrun(control As IRibbonControl, text As String)
    StartModule.ilkUrun = text
End Sub
Sub onChangeTaramaSonUrun(control As IRibbonControl, text As String)
    StartModule.sonUrun = text    
End Sub
 

metehan8001

Moderator
Yönetici
Moderatör
#6
Modül içerisinde Sub içinde [ICODE]Dim ilkurun as integer : Dim sonurun as integer [/ICODE] kullanmayı deneyiniz.
Eğer yine sıfırlanırsa bu sefer [ICODE]Dim[/ICODE] yerine [ICODE]Static[/ICODE] kullanın.
[ICODE]Static ilkurun as integer : Static sonurun as integer[/ICODE]
Dim değişkeni sıfırlayarak başlar
Static değişkeni korur.
 

gokhanboyaci

Destek Ekibi
Destek Ekibi
#7
Malesef ikisde olmadı Sub çalışmıyor bu sefer, zaten en yukarıda tanımladığımız için hata veriyor büyük ihtimal.
 

gokhanboyaci

Destek Ekibi
Destek Ekibi
#12
Şöyle bir durumu fark ettim, normal mi bilmiyorum. Çalışan makroyu ben durdurusam yada debuga düşerek hata alırsa. Değerler sıfırlanıyor.

Normal çalışıp makro bitince tekrar çalıştırdığımda tüm değerler geliyor.
 

Erman Sekitmez

Moderator
Yönetici
Moderatör
#14
Çalışma sırasında bir hata oluşurda debug moduna girerseniz public değişkenleriniz sıfırlanabilir. Hataya sebep olan her neyse kodunuzun içinde bunu yönetebilirseniz sorun ortadan kalkacaktır.
 

metehan8001

Moderator
Yönetici
Moderatör
#15
Kod:
Private Type Urunler
ilkUrun As Integer
sonUrun As Integer
End Type


Sub GetText(control As IRibbonControl, ByRef text)
Dim deg as Urunler

    Select Case control.ID
    Case "editBoxIlkUrun"
        text = 1
        deg.ilkUrun = text
    Case "editBoxSonUrun"
        text = 1000
        deg.sonUrun = text
    End Select
End Sub
konuyu takip eden bir arkadaşın cevabı, bana özelden yazmıştı.
 
Son düzenleme:

gokhanboyaci

Destek Ekibi
Destek Ekibi
#16
Çalışma sırasında bir hata oluşurda debug moduna girerseniz public değişkenleriniz sıfırlanabilir. Hataya sebep olan her neyse kodunuzun içinde bunu yönetebilirseniz sorun ortadan kalkacaktır.
Bu arada şuan için bir hata yok sadece , ben kendim makronun çalışmasını durduruyorum. Bundan dolayı public değerler sıfırlanıyor. Fakat burdan yola çıkarak, herhangi olabilecek farklı bir hatada yine sonuç aynı olacağını düşünüyorum.
 

gokhanboyaci

Destek Ekibi
Destek Ekibi
#17
Kod:
Private Type Urunler
ilkUrun As Integer
sonUrun As Integer
End Type


Sub GetText(control As IRibbonControl, ByRef text)
Dim deg as Urunler

    Select Case control.ID
    Case "editBoxIlkUrun"
        text = 1
        deg.ilkUrun = text
    Case "editBoxSonUrun"
        text = 1000
        deg.sonUrun = text
    End Select
End Sub
konuyu takip eden bir arkadaşın cevabı, bana özelden yazmıştı.
İlginiz için teşekkürler fakat işe yaramadı , değişkenlerin public olması gerekli malesef. Farklı modüllerden çağırmam gerekiyor.

Sanırım olağan bi durum ama çözüm de olmalı diye düşünmüyor değilim :)
 
Üst