Makro ile hücredeki sayıyı değiştirme

Katılım
2 Kasım 2019
Mesajlar
71
Excel Vers. ve Dili
Excel 2016
Merhabalar, otomatik filtre yaptığım bir makro var, makro bitince A2 hücresinde yazan sayıyı buton ile değiştirip makroyu tekrar başlatıyorum.
Size sormak istediğim bu değeri makro ile sıraya göre değiştirmek mümkün mü?

Örnek olarak makrom çalıştı ve bitti ben A2 hücresinde yazan sayıyı ( 12 olsun) 13 yapıp makroyu tekrar başlatıyorum, bunu makro ile istediğim aralıkta yapmak mümkün olurmu ?

Kod:
Range("BL1").Select
    Selection.Copy
    Range("AW2").Select
    ActiveSheet.Paste
    d = Array(Format(Range("W2"), "0%"), Format(Range("W2") + 0.01, "0%"), Format(Range("W2") - 0.01, "0%"), Format(Range("W2") + 0.02, "0%"), Format(Range("W2") + 0.03, "0%"), Format(Range("W2") + 0.04, "0%"), Format(Range("W2") + 0.05, "0%"), Format(Range("W2") - 0.02, "0%"), Format(Range("W2") - 0.03, "0%"), Format(Range("W2") - 0.04, "0%"), Format(Range("W2") - 0.05, "0%"))

Range("W2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=23, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("X2"), "0%"), Format(Range("X2") + 0.01, "0%"), Format(Range("X2") - 0.01, "0%"), Format(Range("X2") + 0.02, "0%"), Format(Range("X2") + 0.03, "0%"), Format(Range("X2") + 0.04, "0%"), Format(Range("X2") + 0.05, "0%"), Format(Range("X2") - 0.02, "0%"), Format(Range("X2") - 0.03, "0%"), Format(Range("X2") - 0.04, "0%"), Format(Range("X2") - 0.05, "0%"))

Range("X2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=24, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("Y2"), "0%"), Format(Range("Y2") + 0.01, "0%"), Format(Range("Y2") - 0.01, "0%"), Format(Range("Y2") + 0.02, "0%"), Format(Range("Y2") + 0.03, "0%"), Format(Range("Y2") + 0.04, "0%"), Format(Range("Y2") + 0.05, "0%"), Format(Range("Y2") - 0.02, "0%"), Format(Range("Y2") - 0.03, "0%"), Format(Range("Y2") - 0.04, "0%"), Format(Range("Y2") - 0.05, "0%"))

Range("Y2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=25, Criteria1:=d, Operator:=xlFilterValues
Range("D2").Select
    ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=4, Criteria1:=Range("D2")
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("KAYIT").Select
    Range("A1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
'-----------------

    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("ARŞİV").Select
    ActiveSheet.ShowAllData
    Range("AI2").Select
    Range("BM1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AW2").Select
    ActiveSheet.Paste
    d = Array(Format(Range("AA2"), "0%"), Format(Range("AA2") + 0.01, "0%"), Format(Range("AA2") - 0.01, "0%"), Format(Range("AA2") + 0.02, "0%"), Format(Range("AA2") + 0.03, "0%"), Format(Range("AA2") + 0.04, "0%"), Format(Range("AA2") + 0.05, "0%"), Format(Range("AA2") - 0.02, "0%"), Format(Range("AA2") - 0.03, "0%"), Format(Range("AA2") - 0.04, "0%"), Format(Range("AA2") - 0.05, "0%"))

Range("AA2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=27, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("AC2"), "0%"), Format(Range("AC2") + 0.01, "0%"), Format(Range("AC2") - 0.01, "0%"), Format(Range("AC2") + 0.02, "0%"), Format(Range("AC2") + 0.03, "0%"), Format(Range("AC2") + 0.04, "0%"), Format(Range("AC2") + 0.05, "0%"), Format(Range("AC2") - 0.02, "0%"), Format(Range("AC2") - 0.03, "0%"), Format(Range("AC2") - 0.04, "0%"), Format(Range("AC2") - 0.05, "0%"))

Range("AC2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=29, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("AB2"), "0%"), Format(Range("AB2") + 0.01, "0%"), Format(Range("AB2") - 0.01, "0%"), Format(Range("AB2") + 0.02, "0%"), Format(Range("AB2") + 0.03, "0%"), Format(Range("AB2") + 0.04, "0%"), Format(Range("AB2") + 0.05, "0%"), Format(Range("AB2") - 0.02, "0%"), Format(Range("AB2") - 0.03, "0%"), Format(Range("AB2") - 0.04, "0%"), Format(Range("AB2") - 0.05, "0%"))

Range("AB2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=28, Criteria1:=d, Operator:=xlFilterValues
Range("D2").Select
    ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=4, Criteria1:=Range("D2")
    
Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("KAYIT").Select
    Range("A1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
'-----------------

    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("ARŞİV").Select
    ActiveSheet.ShowAllData
    Range("AI2").Select
    Range("BM1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AW2").Select
    ActiveSheet.Paste
    Sheets("ARŞİV").Select
    Range("D2").Select
    ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=4, Criteria1:=Range("D2")
    d = Array(Format(Range("W2"), "0%"), Format(Range("W2") + 0.01, "0%"), Format(Range("W2") - 0.01, "0%"), Format(Range("W2") + 0.02, "0%"), Format(Range("W2") + 0.03, "0%"), Format(Range("W2") + 0.04, "0%"), Format(Range("W2") + 0.05, "0%"), Format(Range("W2") - 0.06, "0%"), Format(Range("W2") - 0.02, "0%"), Format(Range("W2") - 0.03, "0%"), Format(Range("W2") - 0.04, "0%"), Format(Range("W2") - 0.05, "0%"), Format(Range("W2") + 0.06, "0%"), Format(Range("W2") + 0.07, "0%"), Format(Range("W2") - 0.07, "0%"))

Range("W2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=23, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("X2"), "0%"), Format(Range("X2") + 0.01, "0%"), Format(Range("X2") - 0.01, "0%"), Format(Range("X2") + 0.02, "0%"), Format(Range("X2") + 0.03, "0%"), Format(Range("X2") + 0.04, "0%"), Format(Range("X2") + 0.05, "0%"), Format(Range("X2") - 0.06, "0%"), Format(Range("X2") - 0.02, "0%"), Format(Range("X2") - 0.03, "0%"), Format(Range("X2") - 0.04, "0%"), Format(Range("X2") - 0.05, "0%"), Format(Range("X2") + 0.06, "0%"), Format(Range("X2") + 0.07, "0%"), Format(Range("X2") - 0.07, "0%"))

Range("X2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=24, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("Y2"), "0%"), Format(Range("Y2") + 0.01, "0%"), Format(Range("Y2") - 0.01, "0%"), Format(Range("Y2") + 0.02, "0%"), Format(Range("Y2") + 0.03, "0%"), Format(Range("Y2") + 0.04, "0%"), Format(Range("Y2") + 0.05, "0%"), Format(Range("Y2") - 0.06, "0%"), Format(Range("Y2") - 0.02, "0%"), Format(Range("Y2") - 0.03, "0%"), Format(Range("Y2") - 0.04, "0%"), Format(Range("Y2") - 0.05, "0%"), Format(Range("Y2") + 0.06, "0%"), Format(Range("Y2") + 0.07, "0%"), Format(Range("Y2") - 0.07, "0%"))

Range("Y2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=25, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("AA2"), "0%"), Format(Range("AA2") + 0.01, "0%"), Format(Range("AA2") - 0.01, "0%"), Format(Range("AA2") + 0.02, "0%"), Format(Range("AA2") + 0.03, "0%"), Format(Range("AA2") + 0.04, "0%"), Format(Range("AA2") + 0.05, "0%"), Format(Range("AA2") - 0.02, "0%"), Format(Range("AA2") - 0.03, "0%"), Format(Range("AA2") - 0.04, "0%"), Format(Range("AA2") - 0.05, "0%"), Format(Range("AA2") - 0.06, "0%"), Format(Range("AA2") + 0.06, "0%"), Format(Range("AA2") + 0.07, "0%"), Format(Range("AA2") - 0.07, "0%"))

Range("AA2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=27, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("AC2"), "0%"), Format(Range("AC2") + 0.01, "0%"), Format(Range("AC2") - 0.01, "0%"), Format(Range("AC2") + 0.02, "0%"), Format(Range("AC2") + 0.03, "0%"), Format(Range("AC2") + 0.04, "0%"), Format(Range("AC2") + 0.05, "0%"), Format(Range("AC2") - 0.02, "0%"), Format(Range("AC2") - 0.03, "0%"), Format(Range("AC2") - 0.04, "0%"), Format(Range("AC2") - 0.05, "0%"), Format(Range("AC2") - 0.06, "0%"), Format(Range("AC2") + 0.06, "0%"), Format(Range("AC2") + 0.07, "0%"), Format(Range("AC2") - 0.07, "0%"))

Range("AC2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=29, Criteria1:=d, Operator:=xlFilterValues
d = Array(Format(Range("AB2"), "0%"), Format(Range("AB2") + 0.01, "0%"), Format(Range("AB2") - 0.01, "0%"), Format(Range("AB2") + 0.02, "0%"), Format(Range("AB2") + 0.03, "0%"), Format(Range("AB2") + 0.04, "0%"), Format(Range("AB2") + 0.05, "0%"), Format(Range("AB2") - 0.02, "0%"), Format(Range("AB2") - 0.03, "0%"), Format(Range("AB2") - 0.04, "0%"), Format(Range("AB2") - 0.05, "0%"), Format(Range("AB2") - 0.06, "0%"), Format(Range("AB2") + 0.06, "0%"), Format(Range("AB2") + 0.07, "0%"), Format(Range("AB2") - 0.07, "0%"))

Range("AB2").Select
ActiveSheet.Range("$A$1:$BH$14488").AutoFilter Field:=28, Criteria1:=d, Operator:=xlFilterValues
Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("KAYIT").Select
    Range("A1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
'-----------------

    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets("KAYIT").Select
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Aralıkta yapmak derken belli zaman aralıklarında yapmaksa evet olur ama ben şahsen Excel ile zaman sayacı türünde kullanılan kodları doğru bulmuyorum.
Çünkü Excel VBA ile yazılan kodlar ile yapılan zaman sayacı aslında zaman sayacı değildir.
Bu sürekli çalışan bir döngüdür, döngü çalışırken ne kadar zaman geçtiğini kontrol eder, sizin istediğiniz kadar zaman geçtiğinde işlem yapar.
Yani Excel dosyanızı açtığınızda kodlar çalışmaya başlar, ta ki dosyayı kapatıncaya kadar bu kodlar durmaksızın çalışır.

Örnek dosyanızı paylaşıp yaptığınız işlemi daha ayrıntılı anlatırsanız belki farklı bir çözüm bulunabilir.
 
Katılım
2 Kasım 2019
Mesajlar
71
Excel Vers. ve Dili
Excel 2016
Merhaba.

Aralıkta yapmak derken belli zaman aralıklarında yapmaksa evet olur ama ben şahsen Excel ile zaman sayacı türünde kullanılan kodları doğru bulmuyorum.
Çünkü Excel VBA ile yazılan kodlar ile yapılan zaman sayacı aslında zaman sayacı değildir.
Bu sürekli çalışan bir döngüdür, döngü çalışırken ne kadar zaman geçtiğini kontrol eder, sizin istediğiniz kadar zaman geçtiğinde işlem yapar.
Yani Excel dosyanızı açtığınızda kodlar çalışmaya başlar, ta ki dosyayı kapatıncaya kadar bu kodlar durmaksızın çalışır.

Örnek dosyanızı paylaşıp yaptığınız işlemi daha ayrıntılı anlatırsanız belki farklı bir çözüm bulunabilir.
Zaman aralığı değil hocam yukarıdaki makro işlemi bittikten sonra A2 hücresinde yazan sayıyı +1 şeklinde makro ile değiştirmek mümkün mü, Yani A2 de 12 yazıyorsa makro bittikten sonra 13 yazdırmak sitiyorum buda bitince 14 yazsın ben 20 de dur diyene kadar.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
O zaman aşağıdaki kodlar ile olur.

Kod:
Sub test()
    Dim Rakam As Integer
    For Rakam = 12 To 20
        Range("A2") = Rakam
        SizinKodlarınız
    Next
End Sub

Sub SizinKodlarınız()

'Buraya rakam değiştiğinde çalışmasını istediğiniz kodları yazın.
End Sub
 
Katılım
2 Kasım 2019
Mesajlar
71
Excel Vers. ve Dili
Excel 2016
O zaman aşağıdaki kodlar ile olur.

Kod:
Sub test()
    Dim Rakam As Integer
    For Rakam = 12 To 20
        Range("A2") = Rakam
        SizinKodlarınız
    Next
End Sub

Sub SizinKodlarınız()

'Buraya rakam değiştiğinde çalışmasını istediğiniz kodları yazın.
End Sub
Hocam elinize, emeğinize sağlık çok güzel oldu, çok teşekkür ederim.
 
Katılım
2 Kasım 2019
Mesajlar
71
Excel Vers. ve Dili
Excel 2016
Muzaffer hocam verdiğiniz formülü hala kullanıyorum, bir şey soracağım, 1 to 20 yazdığımda 1 iel 2 0arasında otomatik değişiyor, ben değerleri sürekli değiştiriyorum yeri geliyor For Rakam = 50To 100 yada değişik kombinasyonlar oluyor bunu her seferinde vba nın içine girerek yapıyorum, buna bir tuş yada buton atamak mümkünmü çalışma sayfasının bir köşesinde dursun oradan değiştirelim.

Sub test()
Dim Rakam As Integer
For Rakam = 12 To 20
Range("A2") = Rakam
SizinKodlarınız
Next
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kod:
For Rakam = 12 To 20
Bu satırı aşağıdaki gibi değiştirin
Kod:
For Rakam = range("A1") To range("A2")
Artık A1 de yazan rakam ile A2 de yazan rakam arasında geçerli olur.
İsterseniz hücre adreslerini kendi istediğiniz gibi değiştirebilirsiniz.
 
Katılım
2 Kasım 2019
Mesajlar
71
Excel Vers. ve Dili
Excel 2016
Kod:
For Rakam = 12 To 20
Bu satırı aşağıdaki gibi değiştirin
Kod:
For Rakam = range("A1") To range("A2")
Artık A1 de yazan rakam ile A2 de yazan rakam arasında geçerli olur.
İsterseniz hücre adreslerini kendi istediğiniz gibi değiştirebilirsiniz.

çok teşekkür ederim hocam sabah ilk iş deneyeceğim
 
Üst