Merhaba arkadaslar,
Benim VBA da Modul'ün icerisinde ikitane Makrolarim var. Bu Makrolari SpinButtona yazdim ve cok güzel calisiyor. Ayni Makrolari Sayfa1 deki Anamenülerden "Araclar-Makro-Makros" tan da calistirilabiliyor.
Benim arzum Sayfa1 deki "Araclar-Makro-Makrolar" a tikladigimda Makrolar görünmesin ve calistirilamasin. Makrolar saadece SpinButton'a tikladigimizda calissin. Neden böyle düsünüyorum: Kayitlarimi sayfa üzerinde tamamladiktan sonra SpinButton'un Enabeld'ini = False yapacagim. Bu sekilde SpinButton'la yapilacak kaydi engellemis olabiliyorum. Ama bir arkadasim Sayfa üzerinden "Araclar-Makro-Makrolar" a tiklarsa benim yaptigim kayitlari tekrar degistirir. Ben bunu nasil engelleyebilirim.
Ben söyle birsey denedim ve biraz becerebildim ama tam degil, cünkü hata veriyor. Gelen hata sudur (Sub veya Function tanimlanmadi) Neyi ve nasil tanimlamaliyim. Bence "Dim ....As....Integer" olarak tanimlamam lazim ama neyi?
Kodlar asagidaki gibi:
Private Sub SpinButton1_Change()
Cells(1, 3) = SpinButton1
ArkacepheRenkleriniSil1
ikivardiyeKaydet
End Sub
Kod 1: SpinButton ile güzel calisiyor.
Option Explicit
Sub ArkacepheRenkleriniSil1()
Worksheets("izinplani").Range("B4:B399").Interior.ColorIndex = xlNone
End Sub
Sub ikivardiyeKaydet()
Set s1 = Sheets("Urlaubsplan")
dega = Array("", "SK", "SK", "SK", "SK", "SK", "", "", _
"FH", "FH", "FH", "FH", "FH", "", "", "SH", "SH", "SH", _
"SH", "SH", "", "", "FK", "FK", "FK", "FK", "FK", "", "")
degb = Array("", "FK", "FK", "FK", "FK", "FK", "", "", _
"SK", "SK", "SK", "SK", "SK", "", "", "FH", "FH", "FH", _
"FH", "FH", "", "", "SH", "SH", "SH", "SH", "SH", "", "")
degc = Array("", "FH", "FH", "FH", "FH", "FH", "", "", _
"SH", "SH", "SH", "SH", "SH", "", "", "FK", "FK", "FK", _
"FK", "FK", "", "", "SK", "SK", "SK", "SK", "SK", "", "")
For a = 4 To 31
fark = (s1.Cells(a, "c") - DateSerial(2006, 1, 1)) / 28
s1.Range(Cells(a, "u"), s1.Cells(a, "u")) = dega((fark - Int(fark)) * 28)
s1.Range(Cells(a, "v"), s1.Cells(a, "v")) = degb((fark - Int(fark)) * 28)
s1.Range(Cells(a, "w"), s1.Cells(a, "w")) = degc((fark - Int(fark)) * 28)
Next
For b = 32 To s1.[c65536].End(3).Row Step 28
s1.Range("u" & b & ":w" & b + 29) = s1.Range("u4:w31").Value
Next
End Sub
Kod 2: Degisikligi asagidaki gibi "Private Sub" olarak yaptim ve Makrolar hala Moduldedirler. Bu sekilde Makrolari görünmez hale getirebildim. Ama bu defa Kodlar SpinButton ile calismaz hale geldi ve yukaridaki yazdigim hatayi verdi.
Option Explicit
Private Sub ArkacepheRenkleriniSil1()
Worksheets("izinplani").Range("B4:B399").Interior.ColorIndex = xlNone
End Sub
Private Sub ikivardiyeKaydet()
Set s1 = Sheets("Urlaubsplan")
dega = Array("", "SK", "SK", "SK", "SK", "SK", "", "", _
"FH", "FH", "FH", "FH", "FH", "", "", "SH", "SH", "SH", _
"SH", "SH", "", "", "FK", "FK", "FK", "FK", "FK", "", "")
degb = Array("", "FK", "FK", "FK", "FK", "FK", "", "", _
"SK", "SK", "SK", "SK", "SK", "", "", "FH", "FH", "FH", _
"FH", "FH", "", "", "SH", "SH", "SH", "SH", "SH", "", "")
degc = Array("", "FH", "FH", "FH", "FH", "FH", "", "", _
"SH", "SH", "SH", "SH", "SH", "", "", "FK", "FK", "FK", _
"FK", "FK", "", "", "SK", "SK", "SK", "SK", "SK", "", "")
For a = 4 To 31
fark = (s1.Cells(a, "c") - DateSerial(2006, 1, 1)) / 28
s1.Range(Cells(a, "u"), s1.Cells(a, "u")) = dega((fark - Int(fark)) * 28)
s1.Range(Cells(a, "v"), s1.Cells(a, "v")) = degb((fark - Int(fark)) * 28)
s1.Range(Cells(a, "w"), s1.Cells(a, "w")) = degc((fark - Int(fark)) * 28)
Next
For b = 32 To s1.[c65536].End(3).Row Step 28
s1.Range("u" & b & ":w" & b + 29) = s1.Range("u4:w31").Value
Next
End Sub
Arkadaslar aceba Makrolari görünmez hale getirmek mümkün mü?
Saygilarimla
kaleci
Benim VBA da Modul'ün icerisinde ikitane Makrolarim var. Bu Makrolari SpinButtona yazdim ve cok güzel calisiyor. Ayni Makrolari Sayfa1 deki Anamenülerden "Araclar-Makro-Makros" tan da calistirilabiliyor.
Benim arzum Sayfa1 deki "Araclar-Makro-Makrolar" a tikladigimda Makrolar görünmesin ve calistirilamasin. Makrolar saadece SpinButton'a tikladigimizda calissin. Neden böyle düsünüyorum: Kayitlarimi sayfa üzerinde tamamladiktan sonra SpinButton'un Enabeld'ini = False yapacagim. Bu sekilde SpinButton'la yapilacak kaydi engellemis olabiliyorum. Ama bir arkadasim Sayfa üzerinden "Araclar-Makro-Makrolar" a tiklarsa benim yaptigim kayitlari tekrar degistirir. Ben bunu nasil engelleyebilirim.
Ben söyle birsey denedim ve biraz becerebildim ama tam degil, cünkü hata veriyor. Gelen hata sudur (Sub veya Function tanimlanmadi) Neyi ve nasil tanimlamaliyim. Bence "Dim ....As....Integer" olarak tanimlamam lazim ama neyi?
Kodlar asagidaki gibi:
Private Sub SpinButton1_Change()
Cells(1, 3) = SpinButton1
ArkacepheRenkleriniSil1
ikivardiyeKaydet
End Sub
Kod 1: SpinButton ile güzel calisiyor.
Option Explicit
Sub ArkacepheRenkleriniSil1()
Worksheets("izinplani").Range("B4:B399").Interior.ColorIndex = xlNone
End Sub
Sub ikivardiyeKaydet()
Set s1 = Sheets("Urlaubsplan")
dega = Array("", "SK", "SK", "SK", "SK", "SK", "", "", _
"FH", "FH", "FH", "FH", "FH", "", "", "SH", "SH", "SH", _
"SH", "SH", "", "", "FK", "FK", "FK", "FK", "FK", "", "")
degb = Array("", "FK", "FK", "FK", "FK", "FK", "", "", _
"SK", "SK", "SK", "SK", "SK", "", "", "FH", "FH", "FH", _
"FH", "FH", "", "", "SH", "SH", "SH", "SH", "SH", "", "")
degc = Array("", "FH", "FH", "FH", "FH", "FH", "", "", _
"SH", "SH", "SH", "SH", "SH", "", "", "FK", "FK", "FK", _
"FK", "FK", "", "", "SK", "SK", "SK", "SK", "SK", "", "")
For a = 4 To 31
fark = (s1.Cells(a, "c") - DateSerial(2006, 1, 1)) / 28
s1.Range(Cells(a, "u"), s1.Cells(a, "u")) = dega((fark - Int(fark)) * 28)
s1.Range(Cells(a, "v"), s1.Cells(a, "v")) = degb((fark - Int(fark)) * 28)
s1.Range(Cells(a, "w"), s1.Cells(a, "w")) = degc((fark - Int(fark)) * 28)
Next
For b = 32 To s1.[c65536].End(3).Row Step 28
s1.Range("u" & b & ":w" & b + 29) = s1.Range("u4:w31").Value
Next
End Sub
Kod 2: Degisikligi asagidaki gibi "Private Sub" olarak yaptim ve Makrolar hala Moduldedirler. Bu sekilde Makrolari görünmez hale getirebildim. Ama bu defa Kodlar SpinButton ile calismaz hale geldi ve yukaridaki yazdigim hatayi verdi.
Option Explicit
Private Sub ArkacepheRenkleriniSil1()
Worksheets("izinplani").Range("B4:B399").Interior.ColorIndex = xlNone
End Sub
Private Sub ikivardiyeKaydet()
Set s1 = Sheets("Urlaubsplan")
dega = Array("", "SK", "SK", "SK", "SK", "SK", "", "", _
"FH", "FH", "FH", "FH", "FH", "", "", "SH", "SH", "SH", _
"SH", "SH", "", "", "FK", "FK", "FK", "FK", "FK", "", "")
degb = Array("", "FK", "FK", "FK", "FK", "FK", "", "", _
"SK", "SK", "SK", "SK", "SK", "", "", "FH", "FH", "FH", _
"FH", "FH", "", "", "SH", "SH", "SH", "SH", "SH", "", "")
degc = Array("", "FH", "FH", "FH", "FH", "FH", "", "", _
"SH", "SH", "SH", "SH", "SH", "", "", "FK", "FK", "FK", _
"FK", "FK", "", "", "SK", "SK", "SK", "SK", "SK", "", "")
For a = 4 To 31
fark = (s1.Cells(a, "c") - DateSerial(2006, 1, 1)) / 28
s1.Range(Cells(a, "u"), s1.Cells(a, "u")) = dega((fark - Int(fark)) * 28)
s1.Range(Cells(a, "v"), s1.Cells(a, "v")) = degb((fark - Int(fark)) * 28)
s1.Range(Cells(a, "w"), s1.Cells(a, "w")) = degc((fark - Int(fark)) * 28)
Next
For b = 32 To s1.[c65536].End(3).Row Step 28
s1.Range("u" & b & ":w" & b + 29) = s1.Range("u4:w31").Value
Next
End Sub
Arkadaslar aceba Makrolari görünmez hale getirmek mümkün mü?
Saygilarimla
kaleci