formülü makroya uyarlama

Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
merhaba ekteki dosyamda bi çalışma yaptım daha önce bu soruyu sormuştum başka başlık aktında ama orası karışık olduğu için buraya açmayı uygun gördüm sıkıntım şurda şimdi icmal sayfamda bi aktar butonum var ve 6 sayfam var aktar butonuna basınca veriler otomatik olarak geliyor orda bir sorun yok ama bu el yazdığım formüller kayboluyor b9:b10 c9:c10 d9:d10 e9:e10 f9:f10 g9:g10 hücresindeki formülleri aktar butonu içindeki makroya uyarlamayı beceremedim bu konuda bana yardımcı olursanız sevinirim zaten icmalde açıklamada yazıor ekteki dosyada birde ben icmal sayfasındaki tek tarihi a2 hücresi yapabildim b2 hücresininde olması lazım iki tarih aralığı olduğu için yardımlarınız için tşkler iyi çalışmalar
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
sn yildirim,

sorunuzu anlamanın gerçekten zor olduğunu düşünüyorum.

Biraz daha açık ve net -mümkünse maddeler halinde- yazarsanız eminim yardım edenler çıkacaktır...

kolay gelsin.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
Sayın yıldırım

Kodlarınızı aşağıdaki gibi yazın

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Set Sİ = Sheets("İCMAL")
Set WF = WorksheetFunction
Sİ.[B9:B10,B11:C9,C10:C11,D9:D10,D11:E9,E10:E11,F9:F10,F11:G9,G10:G11].ClearContents
For X = 1 To 6
Sheets(X).Select
If Sheets(X).[A3] <> "" Then
Sheets(X).[A3].AutoFilter Field:=2, Criteria1:=">=" & CLng(CDate(Sİ.[A2])), Operator:=xlAnd, Criteria2:="<=" & CLng(CDate(Sİ.[B2]))
If X = 1 Then
Sİ.[B9] = WF.Subtotal(3, Sheets(X).[E3:E65536])
Sİ.[B10] = WF.Subtotal(9, Sheets(X).[E3:E65536])
ElseIf X = 2 Then
Sİ.[C9] = WF.Subtotal(3, Sheets(X).[E3:E65536])
Sİ.[C10] = WF.Subtotal(9, Sheets(X).[E3:E65536])
ElseIf X = 3 Then
Sİ.[D9] = WF.Subtotal(3, Sheets(X).[E3:E65536])
Sİ.[D10] = WF.Subtotal(9, Sheets(X).[E3:E65536])
ElseIf X = 4 Then
Sİ.[E9] = WF.Subtotal(3, Sheets(X).[E3:E65536])
Sİ.[E10] = WF.Subtotal(9, Sheets(X).[E3:E65536])
ElseIf X = 5 Then
Sİ.[F9] = WF.Subtotal(3, Sheets(X).[E3:E65536])
Sİ.[F10] = WF.Subtotal(9, Sheets(X).[E3:E65536])
ElseIf X = 6 Then
Sİ.[G9] = WF.Subtotal(3, Sheets(X).[E3:E65536])
Sİ.[G10] = WF.Subtotal(9, Sheets(X).[E3:E65536])

End If
Sheets(X).[A4].AutoFilter
End If
Next
Sheets("icmal").Select
Sİ.[B9] = "=IF(DAY(DATE(YEAR(R[-25]C[-1]),MONTH(R[-25]C[-1])+1,DAY(R[-25]C[-1]))-1)=31,(31-2.5)*20,(30-2)*20)"
Sİ.[B10] = "=SUM(st1!R[-7]C[3]:R[1990]C[3])/60"
Sİ.[B11] = "=B9-B10"
Sİ.[C9] = "=IF(DAY(DATE(YEAR(R[-25]C[-1]),MONTH(R[-25]C[-1])+1,DAY(R[-25]C[-1]))-1)=31,(31-2.5)*20,(30-2)*20)"
Sİ.[C10] = "=SUM(st2!R[-7]C[2]:R[1990]C[2])/60"
Sİ.[C11] = "=C9-C10"
Sİ.[D9] = "=IF(DAY(DATE(YEAR(R[-25]C[-1]),MONTH(R[-25]C[-1])+1,DAY(R[-25]C[-1]))-1)=31,(31-2.5)*20,(30-2)*20)"
Sİ.[D10] = "=SUM(st3!R[-7]C[1]:R[1990]C[1])/60"
Sİ.[D11] = "=D9-D10"
Sİ.[E9] = "=IF(DAY(DATE(YEAR(R[-25]C[-1]),MONTH(R[-25]C[-1])+1,DAY(R[-25]C[-1]))-1)=31,(31-2.5)*20,(30-2)*20)"
Sİ.[E10] = "=SUM(st4!R[-7]C:R[1990]C)/60"
Sİ.[E11] = "=E9-E10"
Sİ.[F9] = "=IF(DAY(DATE(YEAR(R[-25]C[-1]),MONTH(R[-25]C[-1])+1,DAY(R[-25]C[-1]))-1)=31,(31-2.5)*20,(30-2)*20)"
Sİ.[F10] = "=SUM(st5!R[-7]C[-1]:R[1990]C[-1])/60"
Sİ.[F11] = "=F9-F10"
Sİ.[G9] = "=IF(DAY(DATE(YEAR(R[-25]C[-1]),MONTH(R[-25]C[-1])+1,DAY(R[-25]C[-1]))-1)=31,(31-2.5)*20,(30-2)*20)"
Sİ.[G10] = "=SUM(st6!R[-7]C[-2]:R[1990]C[-2])/60"
Sİ.[G11] = "=G9-G10"

Sİ.Select
Set Sİ = Nothing
Set WF = Nothing

Application.ScreenUpdating = True
MsgBox "BİLGİLER AKTARILMIŞTIR.", vbInformation
End Sub

Daha bilgili bir hocam belki kısa bir yoldan halledebilir ama benim buulduğum çözüm bu oldu inşallah işinizi görür
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
yıldırım kardeş

Dosyanı dü<zenledim dediğin gibi aktar butonuna bastıktan sonra o hücrelere formülleri yazıyor inşallah dediğin gibi olmuştur incele dosyayı
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
say&#305;n udenttr2002 &#231;ok t&#351;k ederim hemen deniyorum dosyay&#305;. say&#305;n udenttr bir iki sorun var birincisi =E&#286;ER(G&#220;N(TAR&#304;H(YIL(A65520);AY(A65520)+1;G&#220;N(A65520))-1)=31;(31-2,5)*20;(30-2)*20) icmal sayfas&#305;ndaki &#231;al&#305;&#351;t&#305;&#287;&#305; s&#252;re bu &#351;ekilde hesapnan&#305;yor burda hem a2 hemde b2 aral&#305;&#287;&#287;&#305;ndaki tarihi alacak bu tarihler st1 den st6 da b sutunundaki tarihten gelecek ve &#231;al&#305;&#351;ma s&#252;resini e sutunundan alacak daha a&#231;&#305;kly&#305;c&#305; olmas&#305; i&#231;in &#351;&#246;yle diyim misal icmal sayfas&#305;ndaki st1 deki b 9 h&#252;cresine gelecek de&#287;er icmal sayfas&#305;ndaki a2 ile b2 tarihi aral&#305;&#287;&#305;ndaki st1 deki b sutunundaki tarihlere denk gelen e sutunundaki zaman kay&#305;plar&#305;n&#305; toplayacak s&#252;rekli ve =E&#286;ER(G&#220;N(TAR&#304;H(YIL(A65520);AY(A65520)+1;G&#220;N(A65520))-1)=31;(31-2,5)*20;(30-2)*20) bu form&#252;l&#252; uygulayarak atacak sonucu umar&#305;m anla&#351;&#305;l&#305;r olmu&#351;tur iyi &#231;al&#305;&#351;malar not burda sadece a2 var bana iki tarih aral&#305;&#287;&#305; laz&#305;m yani bu form&#252;l a2 ile b2 aras&#305;ndaki tarih aral&#305;&#287;&#305;na uyarlanmal&#305;
 
Son düzenleme:
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
buyrun

arkadaşım dosyan ektedir sayfaların yerini değiştirmezsen sorun çıkmaz...
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
arkadaşlar yardımlarınız için çok tşk ederim ama bi tek sorun var oda icmal sayfasındaki b9 yani çalışması gereken süre de bi sorun var örnek dosyada açıklamaları yazdım buda olursa sorun çözülmüş olacak şimdiden tşkler
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
arkadaşım bir nevi ekstre gibi yani eğer st1-st6 aralığındaki tarihler icmal sayfasındaki belirlenen tarihler arasındaysa toplasın ilgili yerlere yazsın demek istiyorsun herhalde ?
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
say&#305;n emreexcel tam olarak de&#287;il sorunum &#351;urda icmal sayfas&#305;ndaki &#231;al&#305;&#351;ma s&#252;relerine de&#287;erler yanl&#305;&#351; gelior benim istedi&#287;im olay a2 ile b2 tarihleri aras&#305;ndaki E&#286;ER(G&#220;N(TAR&#304;H(YIL(A65520);AY(A65520)+1;G&#220;N(A6552 0))-1)=31;(31-2,5)*20;(30-2)*20) bu form&#252;l&#252; uygulay&#305;p toplayacak misal 1 ay 30 &#231;ekior ne yapar bu form&#252;lle 560 31 &#231;ekiorsa 570 verior bunlar&#305; toplayacak yani demek istedi&#287;im bu &#252;st&#252;ne toplayacak st lerede ayr&#305; ayr&#305; uygulanacak ilginize t&#351;kler
 
Son düzenleme:
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
örnek dosya ektedir sayın emreexcel sanırım bu şekilde daha iyi anlasınız ne demek istediğimi yardımlarınız için tşk
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
arkadaşım buradaki a65520 nedir
EĞER(GÜN(TARİH(YIL(A65520);AY(A65520)+1;GÜN(A65 52 0))-1)=31;(31-2,5)*20;(30-2)*20)
yani nereyi almak istiyorsun tam anlayamadım :???:
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
say&#305;n emre excel &#351;&#246;yle diyim E&#286;ER(G&#220;N(TAR&#304;H(YIL(A2);AY(A2)+1;G&#220;N(A2))-1)=31;(31-2,5)*20;(30-2)*20) bu form&#252;l icmaldeki sadece a2 tarihini al&#305;yor bu form&#252;l ayn&#305; &#351;ekilde b2 tarihinide alacak yani E&#286;ER(G&#220;N(TAR&#304;H(YIL(B2);AY(B2)+1;G&#220;N(B2))-1)=31;(31-2,5)*20;(30-2)*20) icmaldeki iki tarih aral&#305;&#287;&#305; alacak ve bu form&#252;l&#252; uygulay&#305;p &#252;st &#252;ste toplayacak yani &#351;ubat+mart+nisan+may&#305;s+haziran gibi iki tarih aral&#305;&#287;&#305;ndaki de&#287;ere g&#246;re i&#351;lem yapacak san&#305;r&#305;m bu el daha iyi anlatabildim:)
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
şöyle >>
icmal sayfasında belirlenen tarihler arasında kalan değerler eğer st1-st6 'da var ise bu sayfalardaki değerleri bu formülle toplayıp yazacak...
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
evet aynen toplay&#305;p &#231;al&#305;&#351;mas&#305; gereken s&#252;reye yazacak ama stlere ayr&#305; ayr&#305; yazacacak
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

A&#351;a&#287;&#305;daki kodu denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Set S&#304; = Sheets("&#304;CMAL")
    &#304;LK_TAR&#304;H = S&#304;.[A2]
    SON_TAR&#304;H = S&#304;.[B2]
    S&#304;.[B9:G11].ClearContents
    For X = 1 To 6
    If Sheets(X).[A3] <> "" Then
    For Y = 3 To Sheets(X).[B65536].End(3).Row
    If Sheets(X).Cells(Y, 2) >= &#304;LK_TAR&#304;H And Sheets(X).Cells(Y, 2) <= SON_TAR&#304;H Then
    G&#220;N = Day(DateSerial(Year(Sheets(X).Cells(Y, 2)), Month(Sheets(X).Cells(Y, 2)) + 1, 0))
    If G&#220;N = 28 Or G&#220;N = 29 Or G&#220;N = 30 Then
    S&#220;RE = S&#220;RE + ((G&#220;N - 2) * 20)
    ZAMAN_KAYBI = ZAMAN_KAYBI + (Sheets(X).Cells(Y, 5) / 60)
    ElseIf G&#220;N = 31 Then
    S&#220;RE = S&#220;RE + ((G&#220;N - 2.5) * 20)
    ZAMAN_KAYBI = ZAMAN_KAYBI + (Sheets(X).Cells(Y, 5) / 60)
    End If
    End If
    Next
    If X = 1 Then
    S&#304;.[B9] = S&#220;RE
    S&#304;.[B10] = ZAMAN_KAYBI
    S&#304;.[B11] = S&#304;.[B9] - S&#304;.[B10]
    ElseIf X = 2 Then
    S&#304;.[C9] = S&#220;RE
    S&#304;.[C10] = ZAMAN_KAYBI
    S&#304;.[C11] = S&#304;.[C9] - S&#304;.[C10]
    ElseIf X = 3 Then
    S&#304;.[D9] = S&#220;RE
    S&#304;.[D10] = ZAMAN_KAYBI
    S&#304;.[D11] = S&#304;.[D9] - S&#304;.[D10]
    ElseIf X = 4 Then
    S&#304;.[E9] = S&#220;RE
    S&#304;.[E10] = ZAMAN_KAYBI
    S&#304;.[E11] = S&#304;.[E9] - S&#304;.[E10]
    ElseIf X = 5 Then
    S&#304;.[F9] = S&#220;RE
    S&#304;.[F10] = ZAMAN_KAYBI
    S&#304;.[F11] = S&#304;.[F9] - S&#304;.[F10]
    ElseIf X = 6 Then
    S&#304;.[G9] = S&#220;RE
    S&#304;.[G10] = ZAMAN_KAYBI
    S&#304;.[G11] = S&#304;.[G9] - S&#304;.[G10]
    End If
    End If
    S&#220;RE = 0
    ZAMAN_KAYBI = 0
    Next
    Set S&#304; = Nothing
    Application.ScreenUpdating = True
    MsgBox "B&#304;LG&#304;LER AKTARILMI&#350;TIR.", vbInformation
End Sub
 
Son düzenleme:
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
say&#305;n cost_control yard&#305;mlar&#305;n&#305;z i&#231;in &#231;ok ederim oldu herkese t&#351;k ler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,603
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

&#214;nerdi&#287;im kodda ufak bir problem vard&#305;. &#220;stteki mesaj&#305;mdaki kodu g&#252;ncelledim denermisiniz.
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
cost control denedim gayet g&#252;zel oldu ellerinize sa&#287;l&#305;k tarih aral&#305;&#287;&#305; yaz&#305;lmad&#305;&#287;&#305; zaman i&#351;lem yapm&#305;yor gayet mant&#305;kl&#305; oldu:)
 
Üst