• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Formülü makroya çevirme

  • Konbuyu başlatan Konbuyu başlatan CenTay
  • Başlangıç tarihi Başlangıç tarihi
Katılım
27 Haziran 2010
Mesajlar
394
Excel Vers. ve Dili
Türkçe 2010 Ofis
Selamlar herkese, aşağıdaki formülü makroya çevirmenizi rica edecektim.Makro Giriş isimli sayfada H2 den H3000e kadarki aralıkta G2 hücresine sayı girince çalışacak, zahmetleriniz için teşekkürler ederim.
Not,Formül şu anda H2 dedir.

Kod:
=EĞER(B2="";"";EĞER($C2="Bayi";TOPLA.ÇARPIM((Bayi_Fiyat_Listesi!$C$1:$N$1=$O2)*(Bayi_Fiyat_Listesi!$B$2:$B$175=$F2)*(Bayi_Fiyat_Listesi!$C$2:$N$175));EĞER($C2="Panama";TOPLA.ÇARPIM((Panama_Fiyat_Listesi!$C$1:$N$1=$O2)*(Panama_Fiyat_Listesi!$B$2:$B$175=$F2)*(Panama_Fiyat_Listesi!$C$2:$N$175));EĞER($C2="Taşkent";TOPLA.ÇARPIM((Taşkent_Fiyat_Listesi!$C$1:$N$1=$O2)*(Taşkent_Fiyat_Listesi!$B$2:$B$175=$F2)*(Taşkent_Fiyat_Listesi!$C$2:$N$175));EĞER($C2="Malezya";TOPLA.ÇARPIM((Malezya_Fiyat_Listesi!$C$1:$N$1=$O2)*(Malezya_Fiyat_Listesi!$B$2:$B$175=$F2)*(Malezya_Fiyat_Listesi!$C$2:$N$175)))))))
 
Selamlar herkese, aşağıdaki formülü makroya çevirmenizi rica edecektim.Makro Giriş isimli sayfada H2 den H3000e kadarki aralıkta G2 hücresine sayı girince çalışacak, zahmetleriniz için teşekkürler ederim.
Not,Formül şu anda H2 dedir.

Kod:
=EĞER(B2="";"";EĞER($C2="Bayi";TOPLA.ÇARPIM((Bayi_Fiyat_Listesi!$C$1:$N$1=$O2)*(Bayi_Fiyat_Listesi!$B$2:$B$175=$F2)*(Bayi_Fiyat_Listesi!$C$2:$N$175));EĞER($C2="Panama";TOPLA.ÇARPIM((Panama_Fiyat_Listesi!$C$1:$N$1=$O2)*(Panama_Fiyat_Listesi!$B$2:$B$175=$F2)*(Panama_Fiyat_Listesi!$C$2:$N$175));EĞER($C2="Taşkent";TOPLA.ÇARPIM((Taşkent_Fiyat_Listesi!$C$1:$N$1=$O2)*(Taşkent_Fiyat_Listesi!$B$2:$B$175=$F2)*(Taşkent_Fiyat_Listesi!$C$2:$N$175));EĞER($C2="Malezya",TOPLA.ÇARPIM((Malezya_Fiyat_Listesi!$C$1:$N$1=$O2)*(Malezya_Fiyat_Listesi!$B$2:$B$175=$F2)*(Malezya_Fiyat_Listesi!$C$2:$N$175)))))))

Sub formul()
ActiveWindow.DisplayZeros = False
with range(hangi_alandaişlem yapılacaksa o alan seçilece a2:a65550)
.formula="=if(B2="","",if($C2="Bayi",sumproduct((Bayi_Fiyat_Listesi!$C$1:$N$1=$O2)*(Bayi_Fiyat_Listesi!$B$2:$B$175=$F2)*(Bayi_Fiyat_Listesi!$C$2:$N$175)),if($C2="Panama",sumproduct((Panama_Fiyat_Listesi!$C$1:$N$1=$O2)*(Panama_Fiyat_Listesi!$B$2:$B$175=$F2)*(Panama_Fiyat_Listesi!$C$2:$N$175)),if($C2="Taşkent",sumproduct((Taşkent_Fiyat_Listesi!$C$1:$N$1=$O2)*(Taşkent_Fiyat_Listesi!$B$2:$B$175=$F2)*(Taşkent_Fiyat_Listesi!$C$2:$N$175)),if($C2="Malezya",sumproduct((Malezya_Fiyat_Listesi!$C$1:$N$1=$O2)*(Malezya_Fiyat_Listesi!$B$2:$B$175=$F2)*(Malezya_Fiyat_Listesi!$C$2:$N$175)))))))"
.Value = .Value
End wiht
End Sub

bu şekilde denermisiniz
 
Son düzenleme:
Sub formul()
With range("Giriş!H2:H175")
.formula = "=if(Giriş!$B2="""","""",if(Giriş!$C2=""Bayi"",SUMPRODUCKT((Bayi_Fiyat_Listesi!$C$1:$N$1=Giriş!$O2)*(Bayi_Fiyat_Listesi!$B$2:$B$17=Giriş!$F2)*(Bayi_Fiyat_Listesi!$C$2:$N$17)),if(Giriş!$C$2=""Panama"",SUMPRODUCKT((Panama_Fiyat_Listesi!$C$1:$N$1=Giriş!$O2)*(Panama_Fiyat_Listesi!$B$2:$B$17=Giriş!$F$2)*(Panama_Fiyat_Listesi!$C$2:$N$17)),if(Giriş!$C2=""Taşkent"",SUMPRODUCKT((Taşkent_Fiyat_Listesi!$C$1:$N$1=Giriş!$O$2)*(Taşkent_Fiyat_Listesi!$B$2:$B$17=Giriş!$F2)*(Taşkent_Fiyat_Listesi!$C$2:$N$17)),if(Giriş!$C$2=""Malezya"",SUMPRODUCKT((Malezya_Fiyat_Listesi!$C$1:$N$1=Giriş!$O2)*(Malezya_Fiyat_Listesi!$B$2:$B$17=Giriş!$F2)*(Malezya_Fiyat_Listesi!$C$2:$N$17)))))))"
.Value = .Value
End With
End Sub
 
Selamlar zahmetin için Sağol fakat 400 hatası veriyor tekrardan bakman mümkünmü acaba.
 
Selamlar excelance alakan için sağol, olmadı bende dosya ekledim.Tekrar bakarsan sevinirim.

http://s3.dosya.tc/server7/ldlky0/makro_istegi.rar.html
Merhaba.
Yanlış anlamadıysam aşağıdaki formül işinizi görecektir.
Formülü G2 hücresine uygulayıp aşağı doğru istediğiniz kadar kopyalayabilirsiniz.
AY sütununda B sütunundaki tarihin AY'ını yazdırdığınızı düşündüm ve ona da gerek yok.
Kod:
=EĞER(YADA($B2="";$C2="";$F2="";EHATALIYSA(KAÇINCI($F2;DOLAYLI($C2&"_Fiyat_Listesi!B2:B175");0)));"";İNDİS(DOLAYLI($C2&"_Fiyat_Listesi!C2:N175");KAÇINCI($F2;DOLAYLI($C2&"_Fiyat_Listesi!B2:B175");0);AY($B2)))

Yok illede G sütununda değişiklik olduğunda çalışan kod olsun derseniz;
tercihinize göre aşağıdaki kod'lardan birini Giriş sayfasının kod bölümüne yapıştırın.

1.seçenek:
G sütuna veri yazmadan önce ilgili satırda B sütunundaki tarih, C sütunundaki sayfa adı ve
F sütunundaki ürün adı yazılmış olmalıdır, yani en son ADET (G sütunu) bilgisini yazın.
Kod sadece G sütununa veri yazdığınız satırda işlem yapar, diğer satırlardaki veriler güncellenmez.
Kod:
[SIZE="2"][B][COLOR="Blue"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR][/B]
If Intersect(Target, Range("G2:G" & [G65536].End(3).Row)) Is Nothing Then Exit Sub
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
If Cells(Target.Row, 2) = "" Or Cells(Target.Row, 6) = "" Or Cells(Target.Row, 3) = "" Then Exit Sub
sayfa = Cells(Target.Row, 3).Value & "_Fiyat_Listesi"
    If WorksheetFunction.CountIf(Sheets(sayfa).Range("B2:B175"), Cells(Target.Row, 6)) = 0 Then Exit Sub
    satır = WorksheetFunction.Match(Cells(Target.Row, 6), Sheets(sayfa).Range("B2:B175"), 0) + 1
    sütun = Month(Cells(Target.Row, 2).Value) + 2
Cells(Target.Row, 8) = Sheets(sayfa).Cells(satır, sütun)
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
[B][COLOR="blue"]End Sub[/COLOR][/B][/SIZE]
2.seçenek:
Giriş sayfasının kod bölümüne aşağıdaki kod'u yapıştırırsanız G sütununda herhangi bir değişiklik yaptığınızda
kod otomatik olarak çalışır ve tüm sayfadaki verileri (yani sadece veri yazdığınız satırda değil
G sütunundaki son dolu satıra kadar yeniden hesaplayarak) günceller.
Kod:
[SIZE="2"][COLOR="blue"][B]Private Sub Worksheet_Change(ByVal Target As Range)[/B][/COLOR]
If Intersect(Target, Range("G2:G" & [G65536].End(3).Row)) Is Nothing Then Exit Sub
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
sonsatır = Sheets("Giriş").[G65536].End(3).Row
[COLOR="Blue"]With Range("G2:G" & sonsatır)
    .Formula = "=IF(OR($B2="""",$C2="""",$F2="""",ISERROR(MATCH($F2,INDIRECT($C2&""_Fiyat_Listesi!B2:B175""),0))),"""",INDEX(INDIRECT(RC3&""_Fiyat_Listesi!C2:N175""),MATCH($F6,INDIRECT(RC3&""_Fiyat_Listesi!B2:B175""),0),MONTH($B2)))"
    .Value = .Value
End With[/COLOR]
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
[B][COLOR="blue"]End Sub[/COLOR][/B][/SIZE]
 
Son düzenleme:
Selamlar Ömer hocam, bu zahmetine emeğe nasıl teşekkür etsem bilemedim çok çok sağolasın, hocam hem problemim halloldu hemde bişeyler öğrendim.tekrardan Teşekkürler.
 
Selamlar Ömer hocam, bu zahmetine emeğe nasıl teşekkür etsem bilemedim çok çok sağolasın, hocam hem problemim halloldu hemde bişeyler öğrendim.tekrardan Teşekkürler.

Estağfurullah, önemli olan ihtiyacın görülmesi.

Bilginizin/ilginizin artmasında katkım olmuşsa ne mutlu bana.

İyi günler dilerim.
 
Geri
Üst