Hafızaya alınan veriye göre makro çalıştırma.

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar...
Çalışmamın birinde her makro çalıştığında A1 hücresinin değeri 1 sayı artıyor. Hücredeki bu değere göre makroma komut ekledim. Örnek: A1=1 ise Makro1'i çalıştır; A1=2 ise Makro2'yi çalıştır... gibi.
Bu sayı artırımını A1 yerine hafızada yapıp, şartı hafızadaki bu değere bağlamak mümkün mü?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer bir modülün en üstünde değişkeni bir dim veya public olarak tanımlarsanız, çalışma kitabınızı kapatana kadar bu değeri hafızada tutarak kullanabilirsiniz. Ancak belirttiğim gibi çalışma kitabınızı kapatıp açtığınızda değer sıfırlanacaktır.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Eğer bir modülün en üstünde değişkeni bir dim veya public olarak tanımlarsanız, çalışma kitabınızı kapatana kadar bu değeri hafızada tutarak kullanabilirsiniz. Ancak belirttiğim gibi çalışma kitabınızı kapatıp açtığınızda değer sıfırlanacaktır.
Syn. Hocam,
Bir örnek vermeniz mümkün mü? Kodu yazsanız yeterli olur?
A1 makro her çalıştığında 1 sayı artacak.
A1=1 ise makro1
A1=2 ise makro2 mantığında bir kod oluşturacağım. Ama A1'de hiç sayı olmayacak.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
A1 deki veriyi nasıl arttırıyorsunuz? ayrı bir makromudur?
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Hayır, aynı makronun son satırına A1=A1+1 satırını ekliyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi yapabilirsiniz. makro1'i iki kez çalıştırırsanız makro2 devreye girecektir.

Kod:
Dim a As Integer
 
Sub makro1()
If a = 1 Then Call makro2
a = a + 1
End Sub
 
Sub makro2()
MsgBox "makro2"
End Sub
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Teşekkür ederim. Bu çok işime yarayacak.
 
Üst