Formülleri makroya çevirme

Katılım
6 Kasım 2005
Mesajlar
300
Altın Üyelik Bitiş Tarihi
06-09-2023
dosyamda yer alan formülleri makro yardımı ile yapmak istiyorum...yardımlarınız için şimdiden teşekkürler...
 

Ekli dosyalar

Katılım
29 Nisan 2021
Mesajlar
3
Excel Vers. ve Dili
exel 2013 ve türkçe
Bende altın üyelik yok kardeşim dosyana göz atmadım ancak "GELİŞTİRİCİ" sekmesinden "makro kaydet" seçerek hatta kısayolda atayabilirsin. Daha sonra "kaydı durdur" diyip makroyu çalıştırdığında formül çalışacaktır. VBA da yapmak istersen de yine aynı yolları izleyip "GELİŞTİRİCİ" sekmesinden VBA giriş yap sol yanda kaydettiğin makroları formül olarak görebilirsin onları VBA içerisinde istediğin yerde kullanabilirsin.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aşağıdaki kodları bir module içine ekleyip sayfanızda çalıştırabilirsiniz.
C++:
Sub Formüller()
    Dim wf As WorksheetFunction, i%, k%
    Set wf = WorksheetFunction
    For i = 8 To Range("C8").End(4).Row Step 5
        Range("AK" & i) = wf.CountIf(Range("D" & i).Offset(2, 0).Resize(1, 30), "M") + wf.CountIf(Range("D" & i).Offset(2, 0).Resize(1, 30), "M") / 2
        Range("AL" & i) = wf.CountIf(Range("D" & i).Offset(3, 0).Resize(1, 30), "Y") + wf.CountIf(Range("D" & i).Offset(3, 0).Resize(1, 30), "H")
        Range("AM" & i) = wf.CountIf(Range("D" & i).Offset(0, 0).Resize(3, 30), "R")
        Range("AI" & i) = wf.CountA(Range("D" & i).Offset(0, 0).Resize(3, 30)) - Range("AM" & i)
        Range("AN" & i) = wf.Sum(Range("AI" & i).Resize(1, 5)) - Range("AM" & i)
    Next i
    For k = 0 To 5
        Range("AI" & i).Offset(0, k) = wf.Sum(Range("AI8").Offset(0, k).Resize(i - 8, 1))
    Next k
    Set wf = Nothing: i = Empty: k = Empty
End Sub
 
Katılım
6 Kasım 2005
Mesajlar
300
Altın Üyelik Bitiş Tarihi
06-09-2023
Teşekkürler...ömer faruk bey...emeğinize sağlık...ancak diğer satırlara uygularken hata mesajı aldım...diğer satırlar içinde yardımcı olursanız sevinirim
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Gönderdiğiniz örnek dosyada Toplam satırından önce ekleyeceğiniz tüm personel isimleri bulunan satırlar için kodlar görev yapacaktır.

For i = 8 To Range("C8").End(4).Row Step 5

Yukarıdaki kırmızı işaretli kısım bu işi yapıyor.

C8 hücrenizi seçin. Ctrl + Aşağı Ok basın
Seçilen yeni hücre son işlem yapacağınız satırdır.
Eğer farklı bir satır varsa hücre formatlarınızda örnek dosyanızdan farklı durum vardır.
 
Katılım
6 Kasım 2005
Mesajlar
300
Altın Üyelik Bitiş Tarihi
06-09-2023
Gönderdiğiniz örnek dosyada Toplam satırından önce ekleyeceğiniz tüm personel isimleri bulunan satırlar için kodlar görev yapacaktır.

For i = 8 To Range("C8").End(4).Row Step 5

Yukarıdaki kırmızı işaretli kısım bu işi yapıyor.

C8 hücrenizi seçin. Ctrl + Aşağı Ok basın
Seçilen yeni hücre son işlem yapacağınız satırdır.
Eğer farklı bir satır varsa hücre formatlarınızda örnek dosyanızdan farklı durum vardır.
Ömer Faruk bey...her bir satır için ayrı makrolar yaptığımda sorun çözülüyor...b8-b12-b16-b20-b24 hücrelerinde bulunan isimlerin karşılğını tek makro ,le çözmek istiyorum...
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Step 5 yerine Step 4 olarak değiştirin.
 
Üst