Çözüldü Düşeyara Makrosu Hakkında.

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Merhabalar,
Aşağıda yer alan ve sayın Tevfik bey'in yapmış olduğu formülü makro kodu ile yapma durumumuz olur mu?

Formül 1 =EĞERHATA(DÜŞEYARA(B3;COTININ!$Y:$AB;2;0);"")
Formül 2 =EĞERHATA(DÜŞEYARA(B3;COTININ!$Y:$AB;3;0);"")
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Deneyiniz...
Kod:
Formul1 = Evaluate("=IFERROR(VLOOKUP(B3,COTININ!$Y:$AB,2,0),"""")")
Formul2 = Evaluate("=IFERROR(VLOOKUP(B3,COTININ!$Y:$AB,3,0),"""")")
Alternatif:
Kod:
Set ara = Range("B3")
Set alan = Sheets("COTININ").Range("Y:AB")

If WorksheetFunction.CountIf(alan.Columns(1), ara) > 0 Then
    frml1 = WorksheetFunction.VLookup(ara, alan, 2, 0)
    frml2 = WorksheetFunction.VLookup(ara, alan, 3, 0)
Else
    frml1 = ""
    frml2 = ""
End If
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Ömer bey merhaba,
Lütfen maruz görün eksikliğimi yalnız bu kodu bu şekilde ilgili sayfanın kod sayfasına bu şekliyle aldığımda bir şey olmadı:-( Nasıl almam gerekiyor.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,712
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Sub Düseyara()
Set ara = Range("B3")
Set alan = Sheets("COTININ").Range("Y:AB")

If WorksheetFunction.CountIf(alan.Columns(1), ara) > 0 Then
frml1 = WorksheetFunction.VLookup(ara, alan, 2, 0)
frml2 = WorksheetFunction.VLookup(ara, alan, 3, 0)
Else
frml1 = ""
frml2 = ""
End If
End Sub

şeklinde dener misiniz ?
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Nedense olmadı :-( Örnek dosyamı hazırlayıp eklemeye çalışacağım.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Formül1 ve Formül2 hangi hücreye veri getiriyorsa ona göre kodların sonuna aşağıdaki satırları ekleyip deneyiniz.
Rich (BB code):
Range("A1") = frml1
Range("A2") = frml2
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Formül1 ve Formül2 hangi hücreye veri getiriyorsa ona göre kodların sonuna aşağıdaki satırları ekleyip deneyiniz.
Rich (BB code):
Range("A1") = frml1
Range("A2") = frml2
Ömer bey, yapamadım:-( Denedim ama olmadı. Ekteki dosyamda daha doğru olacak sanırım.
 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Ne yapmak istediğinizi anlayamadım.
Sayfaya formülle veri geliyor zaten, makroyu nasıl kullanacaksınız?
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Ne yapmak istediğinizi anlayamadım.
Sayfaya formülle veri geliyor zaten, makroyu nasıl kullanacaksınız?
Evet Ömer bey, TOPLU VERI sayfasındaki tabloya COTININ sayfasından hali hazırda veriler alınıyor. Sorun yok fakat formül olduğu için kullanacak arkadaşlar hücrelerdeki verilerle oynayabiliyorlar. Bu durumda formüllerin silinmemesi değiştirilmemesi adına acaba kod ile yapmak mümkün olur mu diye düşünmüştüm. Önlem adına.
Yani bir buton koysam TOPLU VERI sayfasına o buton yardımı ile ilgili verileri aldırmak istemiştim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Formülle veriyi alıp sonra formülü değere çevirseniz işinizi görür mü?
Kod:
Sub kod()
s = Cells(Rows.Count, "B").End(3).Row
Range("C3:C" & s).Formula = "=IFERROR(VLOOKUP(B3,COTININ!$Y:$AB,2,0),"""")"
Range("D3:D" & s).Formula = "=IFERROR(E3/C3*100,"""")"
Range("E3:E" & s).Formula = "=IFERROR(VLOOKUP(B3,COTININ!$Y:$AB,3,0),"""")"
ActiveSheet.Calculate
Range("C3:E" & s).Value = Range("C3:E" & s).Value
End Sub
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
950
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Formülle veriyi alıp sonra formülü değere çevirseniz işinizi görür mü?
Kod:
Sub kod()
s = Cells(Rows.Count, "B").End(3).Row
Range("C3:C" & s).Formula = "=IFERROR(VLOOKUP(B3,COTININ!$Y:$AB,2,0),"""")"
Range("D3:D" & s).Formula = "=IFERROR(E3/C3*100,"""")"
Range("E3:E" & s).Formula = "=IFERROR(VLOOKUP(B3,COTININ!$Y:$AB,3,0),"""")"
ActiveSheet.Calculate
Range("C3:E" & s).Value = Range("C3:E" & s).Value
End Sub
Ömer bey,
Çok teşekkür ederim. Tamda bu şekilde olmasını istemiştim.
 
Son düzenleme:

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Yukarıda paylaştığım kodun sonuna aşağıdaki satırı ilave edip deneyiniz.
Kod:
Range("B3:E" & s).Sort Range("D3"), xlAscending
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
İyi çalışmalar diliyorum,
Saygılarımla...
 
Üst