• DİKKAT

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

#DEĞER! hatası

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba arkadaşlar, excel ana sayfasındaki bilgileri diğer sayfada formüllerle saydırma yapıyorum, formüller normal olarak çalışıyor.

Ana sayfaya butonla sıralama kodu ekledim, butona bastığımda sıralama yapıyor, bu seferde saydırma yaptığımda sayfadaki formüller #DEĞER! şekline dönüyor, hücre içerisine fare ile çift tıkladığımda düzeliyor, sayfa üzerinde çok formül olduğu için her hücreye ayrı ayrı çift tıklamam gerekiyor, bunu komple nasıl düzeltebilirim.

Yardım edecek arkadaşlara şimdiden teşekkürler.
 
Afaki soruya afaki cevap olacak ama, aklıma ilk gelen arama alanı ile ilgili değişiklik yapmak gerekteği yönünde.

Örneğin formülünüz =DÜŞEYARA($A2;Sayfa1!$A$2:$D$100;4;YANLIŞ" ise ve yaptığınız sıralama A2 ya da D100 hücresinin konumunu değiştiriyorsa, arama alanı olan Sayfa1!A2:D100 kısmı yerine, DOLAYLI("Sayfa1A2:D100") şeklinde, ya da formüle satır sayısı konusunda da esneklik kazandırmak için, DOLAYLI("Sayfa1A2:D"&BAĞ_DEĞ_DOLU_SAY(Sayfa1!$A:$A)) şeklinde düşünülebilir.
 
Merhaba Ömer Bey.


Modül içerisinde aşağıdaki gibi KTF var ve formülde bu şekilde
Kod:
=BENZERSIZ($F$2:$F$21;SATIR()-1;1)


Kod:
Option Explicit
Function BENZERSIZ(Alan As Range, Kacinci As Long, Optional Alfabetik As Byte = 1) As String
    Dim DiziA As Object, DiziB As Object, Veri As Range, Data As Variant, Aranan As String
    
    Set DiziA = CreateObject("System.Collections.Arraylist")
    Set DiziB = CreateObject("System.Collections.Arraylist")
    
    For Each Veri In Alan
        If Veri.Text <> "" Then
            Aranan = UCase(Replace(Replace(Trim(Veri.Text), "ı", "I"), "i", "İ"))
            If Not DiziA.Contains(Aranan) Then
                DiziA.Add Aranan
                DiziB.Add CStr(Trim(Veri.Text))
            End If
        End If
    Next    
    If Kacinci <= DiziB.Count Then
        Select Case Alfabetik
            Case 0
                BENZERSIZ = DiziB.Item(Kacinci - 1)
            Case 1
                DiziB.Sort
                BENZERSIZ = DiziB.Item(Kacinci - 1)
            Case 2
                DiziB.Sort
                DiziB.Reverse
                BENZERSIZ = DiziB.Item(Kacinci - 1)
        End Select
    End If
End Function
 
KTF olayı ile hiç ilgilenmedim.

Sıralama makrosunun Dim satırlarından hemen sonra,
Application.Calculation=xlCalculationManual
satırını

ve End Sub satırından önce de;
Application.Calculation=xlCalculationAutomatic
satırını ekleyerek dener misiniz?
 
Ömer Bey küçük bir örnek gönderiyorum.

Sayfa1'de Sırala butonuna tıklayıp, Sayfa2'ye geçtiğimde DEĞER hatası oluyor, hücre içerisine çift tıklayınca formül düzeliyor. Dediğiniz gibi yaptım ancak olmadı.
 

Ekli dosyalar

Merhaba.
Sıralama makrosunun sonuna End Sub satırından önce aşağıdaki satırları ekleyerek dener misiniz?
Kod:
    With Sheets("Sayfa2").Range("K2:K15")
        .Formula = "=BENZERSIZ(Sayfa1!$F$2:$F$21,ROW()-1,1)"
    End With
 
Aşağıdaki gibi değiştirin.

Kod:
    Sub sırala()
    Application.Calculation = xlCalculationManual
    
    With Range("B2:L" & [e65536].End(3).Row)
        .Sort Key1:=[c2], Order1:=xlAscending, Key2:=[d2], Order1:=xlAscending
        .Sort Key1:=[e2], Order1:=xlAscending, Key2:=[f2], Order2:=xlAscending
    End With
Application.Calculation = xlAutomatic

    End Sub
 
..........
Sıralama makrosunun Dim satırlarından hemen sonra,
Application.Calculation=xlCalculationManual
satırını

ve End Sub satırından önce de;
Application.Calculation=xlCalculationAutomatic
satırını ekleyerek dener misiniz?
Aşağıdaki gibi değiştirin.

Kod:
    Sub sırala()
[COLOR="Red"][B]Application.Calculation = xlCalculationManual[/B][/COLOR]
..................
[B][COLOR="red"]Application.Calculation = xlAutomatic[/COLOR][/B]
    End Sub
Merhabalar Sayın kuvari.
İkinci cevabımda ben de aynı şeyi önermiştim ama OLMADI cevabını alınca formül uygulaması yöntemine geçmiştim.
Demek ki söylediğim anlaşılmamış.
Sağlıcakla.
 
Sayın Ömer Bey ve sayın Kuvari her iki kodda süper çalışıyor, ilginize çok teşekkür ediyorum, hayırlı çalışmalar.
 
Sayın Kuvari ve Sayın Ömer Bey, aşağıdaki kodu sıralama kodunun içerisine değilde, KTF kodunun neresine eklemem gerekiyor.

Application.Calculation = xlCalculationManual

Application.Calculation = xlAutomatic
 
Günaydın herkese.

Arkadaşlar konu günceldir.
 
Geri
Üst