• DİKKAT

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

Formül içeriğini değiştirme

Katılım
7 Kasım 2005
Mesajlar
505
Excel Vers. ve Dili
Office 365 TR-64
Aşağıdaki formülde, başka bir dosyada yer alan "31" isimli sayfadan veri almaktayım.
veri aldığım dosya içinde ayın gün sayısı kadar sayfa var.
aşağıdaki formül ile ayın son gününe ait verileri başka bir sayfada icmal haline getiriyorum.

Amacım bu formülü her alt satıra kopyaladığımda, o yıl/aya ait son gününün sayfasındaki değeri alması. her defasında 31,30,28 gibi değiştirmek zorunda kalıyorum.


=TOPLA('C:\Users\xxxxxx\Documents\xxxxx\GÜNLÜK PERSONEL RAPORU\[Günlük Rapor_ocak-2017.xlsx]31'!$J$70:$L$70)

Çok teşekkürler
 
Son düzenleme:
Merhaba,

Bu işlemi yapmak için dolaylı fonksiyonunu kullanmanız gerekir.
Yalnız dolaylı fonksiyonu kapalı dosyalarda çalışmaz. Formül içeriğini makro ile değiştirebilir yada veriyi makro ile alabilirsiniz.

Makro ile değiştirme için bir örnek hazırladım.
Not: Detaylı deneme yapmadım.

Kod:
Sub Degis()

    Dim eski As String, yeni As String, eski_t As Date, yeni_t As Date, sor As String
    Dim e_gun As Byte, y_gun As Byte, eski_f As String, yeni_f As String
    
    eski = InputBox("Değişmesini istediğiniz ay ve yıl 'ı" _
        & "aaaa-yyyy formatında örnekte gösterildiği gibi yazın." & Chr(10) & "mart-2017", "Eski Tarih")
    yeni = InputBox("Yerine gelmesini istediğiniz ay ve yıl 'ı" _
        & "aaaa-yyyy formatında örnekte gösterildiği gibi yazın." & Chr(10) & "nisan-2017", "Yeni Tarih")
    
    If eski = "" Then Exit Sub
    If yeni = "" Then Exit Sub
    
    eski_t = "1-" & eski
    yeni_t = "1-" & yeni
    
    e_gun = Day(DateSerial(Year(eski_t), Month(eski_t) + 1, 0))
    y_gun = Day(DateSerial(Year(yeni_t), Month(yeni_t) + 1, 0))
    
    eski_f = "[Günlük Rapor_" & eski & ".xlsx]" & e_gun
    yeni_f = "[Günlük Rapor_" & yeni & ".xlsx]" & y_gun
    
    sor = MsgBox("Formüldeki Eski Tarih Olan: " & eski & " yerine" & Chr(10) & _
                 "Yeni Tarih Olan: " & yeni & " gelecek." & Chr(10) & _
                 "Devam Edeyim mi?", vbYesNo)
    If sor = vbYes Then
        Cells.Replace eski_f, yeni_f
    End If
  
End Sub

.
 
Günaydın Ömer Bey,
Bana zaman ayırdığınız için öncelikle çok teşekkür ederim.
4 yıllık verilerin saklandığı dosya bunlar (4 yıl x 12 ay) = 48 dosya
Makro yerine formül ile bu halledilemez mi. her satırın sağında bir sütunda ayların kaç çektiğini yazdım. Dolayısı ile ayın son gününü o sütunda belirtiyorum. Formülde dosya adı ve içindeki dosyayı link yaparken, dosya adı ile ayın kaç çektiğini belirttiğim sütundaki değeri birleştir komutu veya başka bir şekilde birleştirerek uygulayamaz mıyız? (formülün uygulandığı hücre M8, ayın kaç çektiğini yani son gününün yazıldığı hücre Z8)
 
Formül ile yaparsınız fakat, diğer mesajda da belirttiğim gibi kullanacağımız formül kapalı dosyalarda çalışmaz. Yani formülün başvurduğu excel çalışmasının açık olması gerekir. Bu da pratik bir çözüm olmaz. Formül ile bu yöntem dışında başka bir yol yok maalesef.
 
İlginiz ve nezaketinizden dolayı çok teşekkür ederim.
 
Geri
Üst