Formülü makroya çevirdim, Olmadı..!

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Aşağıdaki formülü (C3:C için) makroya çevirdim sonuç alamıyorum hata veriyor. Hatayı nasıl düzenleye bilirim. Neden yapıyordur sizce?



Formül
Kod:
=EĞER(B3="";"";ETOPLA(STOK!B:B;B3;STOK!D:D))


Makro
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("C3:C" & Son)
.Formula = "=IF IF(B3="";"";SUMIF(STOK!C:C;B3;STOK!D:D))"
 .Value = .Value
 End With
End Sub
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("C3:C" & Son)
.Formula = "=IF(B3="";"";SUMIF(STOK!C:C;B3;STOK!D:D))"
 .Value = .Value
 End With
End Sub
Bu şekilde deneyin.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Asi bey aşağıdaki kısım hata veriyor.

With Range("C3:C" & Son)
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba,
Asi bey aşağıdaki kısım hata veriyor.

With Range("C3:C" & Son)
Verir neden vermesin.
Son değişkenine bir tanımalamada bulunmamaşsınız ki_?
Bu satırın üstüne
Kod:
Son=range("C"&rows.count).end(xlup).row
Bu kodu ekleyin.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Asi bey Bu kezde bu satır hata verdi.

.Formula = "=IF(B3="";"";SUMIF(STOK!C:C;B3;STOK!D:D))"
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Aşağıdaki kodlardan da yine aynı satır hata veriyor. Neden olabilir acep.


Kod:
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
 
    With Range("C3:C" & Cells(Rows.Count, 1).End(3).Row)
    .Formula "=IF(RC[-1]="""","""",SUMIF(STOK!C[-1],RC[-1],STOK!C[1]))"
    .Value = .Value
    End With
 
    Application.ScreenUpdating = True
    End Sub
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Asi bey Bu kezde bu satır hata verdi.

.Formula = "=IF(B3="";"";SUMIF(STOK!C:C;B3;STOK!D:D))"
Makroyu yazarken formül gibi yazamazsınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Son = Range("C" & Rows.Count).End(xlUp).Row
With Range("C3:C" & Son)
.Formula = "=IF(B3="""","""",SUMIF(STOK!C:C,B3,STOK!D:D))"
 .Value = .Value
 End With
End Sub
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi Bey,
Yok, bu yöntem de olmadı kafayı sıyıracağım abi ya. Ben size sadece formülü vereyim en iyisi, siz bunu makroya çevirin. Zaten çok önceden de formülü makroya çevirdiğiniz kodlarda vardı sorunsuz olmuştu. Umarım buda öyle olur. Yazdığınız kodlar zaten öyle ama bilmiyorum ben mi hata yapıyorum.

Kod:
=EĞER(B3="";"";ETOPLA(STOK!B:B;B3;STOK!D:D))
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba Asi Bey,
Yok, bu yöntem de olmadı kafayı sıyıracağım abi ya. Ben size sadece formülü vereyim en iyisi, siz bunu makroya çevirin. Zaten çok önceden de formülü makroya çevirdiğiniz kodlarda vardı sorunsuz olmuştu. Umarım buda öyle olur. Yazdığınız kodlar zaten öyle ama bilmiyorum ben mi hata yapıyorum.

Kod:
=EĞER(B3="";"";ETOPLA(STOK!B:B;B3;STOK!D:D))
Bu kod hata verir sebebi de şu :
Siz her sayfada işlem yaptığınızda formülün tetiklenmesini istiyorsunuz. Bu da kodu sürekli döngü içinde tutuyor.
Kodun başına
Kod:
Application.enableevents=false
Sonuna
Kod:
application.enableevents=true
ekleyip deneyin.
Fazla vaktim yok. Gelince konuya tekrardan bakarım.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi Bey,
İşlem çok güzel bir şekilde oldu çalışıyor. Bu kod sayfaya her girişte bilgileri güncelliyor. Ben bu kodun birde veri girildikçe çalışmasını istiyorum. Aynı kodu sayfanın
Private Sub Worksheet_Change(ByVal Target As Range) almış olsak ne gibi değişiklikler yapılması gerekiyor. Ve bununda sanırsam baya bir hızlı çalışması gerekiyor, veri girişine göre hareket edeceği için. Umarım anlatabildim durumu.


Kodun Son hali:
Kod:
Private Sub Worksheet_Activate()
Application.EnableEvents = False
Son = Range("C" & Rows.Count).End(xlUp).Row
With Range("C3:C" & Son)
.Formula = "=IF(B3="""","""",SUMIF(STOK!B:B,B3,STOK!D:D))"
.Value = .Value
End With
Application.EnableEvents = True
End Sub
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Bunu hızlandırmak için istemiyorsunuz diye düşünüyorum. Bu ancak yavaşlatır bu işlemi.
Ama gene de illa yapmak istiyorum derseniz. Aynı kodları Change olayına yazın.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi bey,
O zaman bana sütundaki formülleri gizleyen bir yöntem lazım. ben bunu bir çalışmada gördüm şimdi o çalışmaya ulaşmak mümkün değil.
Hücrede formül var, sadece hücre geçişlerinde fark edebiliyorsun, başka türlü göremiyorsun. Yine makro ile yapılmış bir şey diye düşünüyorum.

Böyle bir şeyi nasıl yapabiliriz.
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba Asi bey,
O zaman bana sütundaki formülleri gizleyen bir yöntem lazım. ben bunu bir çalışmada gördüm şimdi o çalışmaya ulaşmak mümkün değil.
Hücrede formül var, sadece hücre geçişlerinde fark edebiliyorsun, başka türlü göremiyorsun. Yine makro ile yapılmış bir şey diye düşünüyorum.

Böyle bir şeyi nasıl yapabiliriz.
Bunun için makroya ihtiyaç yok.
Formüllerin gizlenmesini istiyorsanız sadece koşullu biçimlendirme işinizi görür.
Aralığı seçin Örneğin : E5:E100 ( bu size kalmış isterseniz tüm sütunu seçin )
Koşullu Biçimlendirme - Yeni Kural - Biçimlendirilecek hücreleri belirlemek için formül kullan kutucuğa
Kod:
=E5<>""
Biçimlendir - Yazı Tipi - Renkten Beyaz seçin sonra koşulları tamam diyerek kapatın. Sonuçları gözlemleyin.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Asi bey Çok teşekkür ederim. harika bir yöntem, harika bir düşünce, harıika bir bilgi.
Saygılarımla
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi Bey,
Bunu 1 defa yaptım, bida yapamadım. Bundan başka 2 tane daha koşullu biçimlendirme daha var.
biri EĞER ile başlıyor, diğeri de VE EĞER ile başlıyor. Bunun nasıl başlaması gerekiyor. Ayrıca formülün gizleneceği sütun C3:C buna göre =E5<>"" E5 ile başlayan kısmı C3 MÜ yapmalıyım. bilgi aksedebilir misiniz.

Teşekkürler,
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba Asi Bey,
Bunu 1 defa yaptım, bida yapamadım. Bundan başka 2 tane daha koşullu biçimlendirme daha var.
biri EĞER ile başlıyor, diğeri de VE EĞER ile başlıyor. Bunun nasıl başlaması gerekiyor. Ayrıca formülün gizleneceği sütun C3:C buna göre =E5<>"" E5 ile başlayan kısmı C3 MÜ yapmalıyım. bilgi aksedebilir misiniz.

Teşekkürler,
Bunun bir formülle başlamasına gerek yok.
C3:C aralığını seçin ( bu yazdığımı dikkatli okuyunuz )
Sonra koşullu biçimlendirme - Yeni Kural - Biçimlendirilecek Hücreleri Belirlemek için formül kullan kutucuğa
Kod:
=C3<>""
Bunu yazın. Biçimlendirden ayarları yapıp koşulları bitirin.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Şirkette olduğumdan dosya olarak ekleme yapamıyorum.
Mail olarak atıyorum gmail hesabınıza.
 
Üst