• DİKKAT

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

excel dosya açılır açılmaz kapanıyor

Katılım
18 Mayıs 2018
Mesajlar
519
Excel Vers. ve Dili
2007
arkadaşlar kolay gelsin bu makroda nerede hata var bakabilirmisin satır sayısı çok olunca sistem otamatik kapatıyor 4,5 satır varken sistem çalışıyordu bu satırların sayısı 300 kadar varacak ozaman hiç açılmayacak sanırım bir yardımcı olursanız sevinirim şimdiden çok sağolun
 

Ekli dosyalar

Merhaba Arkadaş,
Ben de kapanmadı. Sanırım sizde ekran dışına çıkmış. (sanki ikinci bir ekran var gibi!)
İyi çalışmalar
 
burda yapmak istediğim A8:A96 Hücrelerine anlık veri geliyor bu A 96 Kadar ama bunu biraz çogaltabilirim B8:B96 HÜCRESİNDEN A8:A96 hücresini çıkarıyorum C8:C96 hücresine sonucu yazdırıyorum Burada C sütununda çıkan sonuç A 2 hücresine eşit veya küçük ise ve T sütundaki rakam sıfıra eşit ise A 8 HÜCRESİNİ B8 hücresine kopyalayıp yapıştırmasını istiyorum ..
Yine aynı büyük olursa Burada C sütununda çıkan sonuç B 2 hücresine eşit veya büyük ise ve T sütundaki rakam sıfıra eşit ise A 8 HÜCRESİNİ B8 hücresine kopyalayıp yapıştırmasını istiyorum .
 
Merhaba,

Deneyiniz. Eski kodların çalışma mantığının doğru olduğu varsayılarak küçük düzenlemeler yapıldı.
Kod:
Private Sub Worksheet_Calculate()

    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
        .EnableEvents = False
    End With

    adegeri = Sayfa1.Range("a2").Value
    bdegeri = Sayfa1.Range("b2").Value
    
    
    For i = 8 To Cells(Rows.Count, "A").End(xlUp).Row
        cdegeri = Sayfa1.Range("c" & i).Value
        egeri = Sayfa1.Range("t" & i).Value
    
        If cdegeri < adegeri Or cdegeri > bdegeri Then
            If tdegeri = "0" Then
                Sayfa1.Range("b" & i) = Sayfa1.Range("a" & i)
            End If
        End If
        
    Next i
    
    With Application
        .Calculation = xlAutomatic
        .ScreenUpdating = True
        .EnableEvents = True
    End With

End Sub
 
Olmayan nedir?
 
abi sıfırlama yapmıyor C hücresindeki değerler A2 VE B2 değerlerini aşmasına rağmen değişmiyor
 
Ben kodlarda değiştirme yapmadım, sadece hızlanması için bazı dokunuşlar yaptım.
 
burda yapmak istediğim A8:A96 Hücrelerine anlık veri geliyor bu A 96 Kadar ama bunu biraz çogaltabilirim B8:B96 HÜCRESİNDEN A8:A96 hücresini çıkarıyorum C8:C96 hücresine sonucu yazdırıyorum Burada C sütununda çıkan sonuç A 2 hücresine eşit veya küçük ise ve T sütundaki rakam sıfıra eşit ise A 8 HÜCRESİNİ B8 hücresine kopyalayıp yapıştırmasını istiyorum ..
Yine aynı büyük olursa Burada C sütununda çıkan sonuç B 2 hücresine eşit veya büyük ise ve T sütundaki rakam sıfıra eşit ise A 8 HÜCRESİNİ B8 hücresine kopyalayıp yapıştırmasını istiyorum
 
Eski kodlarda doğru sonuç veriyor muydu. İncelerseniz kodlarda değişiklik yapmadığımı görebilirsiniz.

Birde bu şekilde deneyin.
Kod:
Private Sub Worksheet_Calculate()
 
   Dim alan, s As Long, son As Long, i As Long, a As Double, b As Double

    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
        .EnableEvents = False
    End With
 
    son = Cells(Rows.Count, "A").End(xlUp).Row
    alan = Range("A8:T" & son).Value
    a = Range("A2").Value
    b = Range("B2").Value
 
    ReDim dizi(1 To son, 1 To 20)
 
    For i = LBound(alan) To UBound(alan)
        s = s + 1
        dizi(s, 1) = alan(i, 2)
        If (alan(i, 3) < a Or alan(i, 3) > b) And alan(i, 20) = 0 Then
            dizi(s, 1) = alan(i, 1)
        End If
    Next i
 
    Range("B8").Resize(s, 1) = dizi
 
    With Application
        .Calculation = xlAutomatic
        .ScreenUpdating = True
        .EnableEvents = True
    End With

End Sub
 
ömer abi sistem çalıştı ama kendi asıl sayfama yükleyince sistem çalışmadı
 
Asıl sayfanızdaki sistem farklı mı? Örnek dosyanızla aynı değil mi?
 
Eski kodlar bu dosyada çalışıyor muydu?

Birde bu şekilde deneyiniz.
Kod:
Private Sub Worksheet_Calculate()
 
   Dim alan, s As Long, son As Long, i As Long, a As Double, b As Double

    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
        .EnableEvents = False
    End With
 
    son = Cells(Rows.Count, "A").End(xlUp).Row
    alan = Range("A8:T" & son).Value
    a = Range("A2").Value
    b = Range("B2").Value
 
    ReDim dizi(1 To son, 1 To 20)
 
    For i = LBound(alan) To UBound(alan)
        s = s + 1
        dizi(s, 1) = alan(i, 2)
        If Not IsError(alan(i, 3)) And Not IsError(alan(i, 20)) Then
            If (alan(i, 3) < a Or alan(i, 3) > b) And alan(i, 20) = 0 Then
                dizi(s, 1) = alan(i, 1)
            End If
        End If
    Next i
 
    Range("B8").Resize(s, 1) = dizi
 
    With Application
        .Calculation = xlAutomatic
        .ScreenUpdating = True
        .EnableEvents = True
    End With

End Sub
 
abi sağolasın oldu sanırım
 
Geri
Üst