• DİKKAT

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

Hücreye kaçıncı ay olduğunu yazdırmak

Katılım
11 Şubat 2008
Mesajlar
16
Excel Vers. ve Dili
2007 türkçe
Selam,
Excel'e fazla hakim olmadığımdan, google araştırmaları sonunda,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For x = 1 To 350
If WorksheetFunction.CountA(Cells(x, 2)) = 0 Then
Cells(x, 3) = Format(Now, "mm")
Else
Cells(x, 3) = Format(Now, "mm")
End If
Next
End Sub
esas isteğimi dolaylı olarak çözen ,böyle bir kod buldum , bu kod a veya b sütununda hücre dolu ise c sütununda karşılık gelen hücreye o ayın kaçıncı ay olduğunu rakam olarak yazıyor. Ancak en ufak işlem yaptığımda sürekli yeniden hesaplıyor ve çalışmamı engelliyor.
Esas isteğim , dosyayı açtığım anda C sütununa 350. satıra kadar açıldığı andaki ay bilgisini rakam olarak girmesi ve işlemi bitirmesi.Bu rakamı ben başka hücrelerde kullanmak istiyorum. Ancak =bugün() formuluyle yazdırdığımda rakam olarak kullanamıyorum.
Yardımlarınız için şimdiden teşekkürler...
 
Örnek dosyanızı ekleyebilir misiniz.
 
Çok özür dilerim ama dosyanın içeriği, firmanın bir çok bilgilerini içerdiği için burada paylaşmam doğru olmaz.
 
Kendiniz küçük bir örnek hazırlayın.Kendi uydurduğunuz isimler olsun.
 
Bu dosya ne kadar bilgi verir bilemiyorum. Burada çok hızlı çalışıyor. Ancak benim kullandığım dosya logo muhasebe programı databasesinden bilgi alıyor. A ve B sütunları hiç değişmemesine rağmen kendi hesaplamalarını bitirdikten sonra bu kodun hesaplamalarını yapıyor sürekli. Herhangi bir hücreye tıkladığım anda yeniden yeniden baştan işlem yapıyor.

http://dosya.co/snaf9z98ojqc/Kitap2.xlsm.html
 
Kodu sayfadaki hücre değişimi olayına yazdığınız için sürekli çalışıyor. Bunun yerine sayfanın aktif olma olayına yazarsanız daha verimli sonuç alabilirsiniz.

Eski kodu silip aşağıdaki kodu deneyiniz.

Sayfadan çıkın sonra tekrar aynı sayfaya girin. Kod bu şekilde sonuç verecektir.

Kod:
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    With Range("C1:C350")
        .Formula = "=IF(COUNTA(A1:B1)>0,MONTH(NOW()),"""")"
        .Value = .Value
    End With
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
 
Kod çalışıyor teşekkür ederim. Ancak sayfa açıldığında otomatik olarak çalışmıyor, manuel olarak benim çalıştırmam gerekiyor. Sayfa açıldığı gibi otomatik çalıştıramaz mıyız acaba? Sadece bir kere çalışıp kendini kapatsa mesela.
 
Dosya açılışında çalışması için aşağıdaki kodu boş bir modüle uygulayınız.

Kırmızı sayfa adını kendi sayfa adınızla değiştirip dosyanızı kayıt edip kapatın. Tekrar açtığınızda kod bir kez çalışacaktır.

Sayfanın kod bölümüne uyguladığınız kodu silmeyi unutmayın.

Kod:
Sub Auto_Open()
    Sheets("[COLOR="Red"]Sayfa1[/COLOR]").Select
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    With Range("C1:C350")
        .Formula = "=IF(COUNTA(A1:B1)>0,MONTH(NOW()),"""")"
        .Value = .Value
    End With
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
 
Vaktinizi ayırdığınız ve sorunumu çözdüğünüz için çok teşekkür ederim.
İyi günler...
 
Geri
Üst