Makroyu hücrede formülleri pas geçip sadece değer olanlara uygulaması

Katılım
19 Ekim 2021
Mesajlar
7
Excel Vers. ve Dili
ingilizce
merhaba;

Private Sub CommandButton1_Click()
For Each e In ActiveSheet.Range("b3:b100")
Range(e.Address) = e.Value / Range("u2")
Next
For Each e In ActiveSheet.Range("c3:c100")
Range(e.Address) = e.Value / Range("v2")
Next
End Sub

Böyle bi makro yaptım ama mesela B50 hücresinde B51+B52 formülü var. makro çalıştığı zaman oradaki formülü silip değer olarak getiriyor. Bu makroyu, hücrede formül görürsen birşey yapma değer görürsen bölme işlemini yani makroyu çalıştır haline nasıl getirebilirim. Yardımlarınız için şimdiden teşekkür ederim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Örnek
C++:
For Each e In ActiveSheet.Range("b3:b100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("u2")
Next
 
Katılım
19 Ekim 2021
Mesajlar
7
Excel Vers. ve Dili
ingilizce
Peki bir sorum daha olacak. Bu komut atadığım tuşa basınca ilgili sayfada makro çalışıyor aynı makroyu benim seçeceğim diğer sheette yapmasını istiyorum mümkün mü? Yani orada ki sheet2 deki b3:b100 aralığını sheet 1 de ki u2 ye bölsün. Ama sheet3 te o makro çalışmasın tüm excele değilde benim seçtiğim sheetlerde çalışsa yapılabilir mi ? yoksa her sayfa için aynı makroyu yapmam mı gerekiyor.Kısaca sheet 1 deki tuşa basınca hem sheet1 hem sheet 2 deki verilerde makroyu uygulasın.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Diğer sayfalardaki hücrelere erişmek için
ActiveSheet.Range("b3:b100") / Range(e.Address) / Range("u2")
gibi olan ifadeler yerine Range öncesinde sayfa adını belitmelisiniz. Aşağıdki örnek gibi

Worksheets("DiğerSayfanınAdı").Range("b3:b100")
 
Katılım
19 Ekim 2021
Mesajlar
7
Excel Vers. ve Dili
ingilizce
Diğer sayfalardaki hücrelere erişmek için
ActiveSheet.Range("b3:b100") / Range(e.Address) / Range("u2")
gibi olan ifadeler yerine Range öncesinde sayfa adını belitmelisiniz. Aşağıdki örnek gibi

Worksheets("DiğerSayfanınAdı").Range("b3:b100")

Private Sub CommandButton1_Click()
For Each e In ActiveSheet.Range("B3:B100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("T2")
Next
For Each e In ActiveSheet.Range("c3:c100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("u2")
Next
For Each e In ActiveSheet.Range("d3:d100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("v2")
Next
For Each e In Worksheets("sheet2").Range("B3:B100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("T2")
Next
For Each e In Worksheets("sheet2").Range("c3:c100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("u2")
Next
For Each e In Worksheets("sheet2").Range("d3:d100")
If Not Range(e.Address).HasFormula Then Range(e.Address) = e.Value / Range("v2")
Next
End Sub


yaptım sheet 1 de oldu ama diğer sayfa da olmadı.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
If ile başlayan satırlarda da benzer işlemleri yapmalısınız.
Önceki mesajımı tekrar okuyun
 
Üst