• DİKKAT

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

boş değeri atlatma

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
günaydınlar,

Kod:
Sub frt1()
Dim sat As Integer, sut As Integer, a As Integer
    Application.ScreenUpdating = False

Range("m34:re331").ClearContents

For sat = 34 To 331

a = Cells(sat, 11).Value


If Range("K" & sat) >= "0" Then
Cells(sat, (14 + a - 1)) = Range("G" & sat).Value
End If

Next
    Application.ScreenUpdating = True
End Sub

Sub frt2()
Dim sat As Integer, sut As Integer, a As Integer
    Application.ScreenUpdating = False


For sat = 34 To 331

a = Cells(sat, 10).Value


If Range("J" & sat) >= "0" Then
Cells(sat, (14 + a - 1)) = Range("F" & sat).Value
End If

Next
    Application.ScreenUpdating = True
End Sub

bu iki kod içerisinde >= "0" Then kısımlarında kontrol edilen hücrelerde yazmış olduğum formül sonucu sayı olmayan yerler var ve buralar hata veriyor. buraları nasıl atlatırım. bir diğer sorumsa (gerçi cevap alırsam çok gerek kalmayacak sanırım ama işlemi kısaltırım düşüncesindeyim) 34 To 331 kısmında 331 yazmak yerine, 10. sütun 34. satırdan itibaren 331. satıra kadar sıfırdan büyük son sayı nasıl yazabilirim. aynısını 11. sütun içinde yazacağım. son olarak da bu iki kod çok fazla beceremediğimden ayrı ayrı yaptım. bu ikisini birleştirme şansım var mı?

teşekkürler.
 
Örnek dosya paylaşarak yapmak istediğiniz işlemi açıklarsanız belki pratik kodlama önerilebilir.
 
merhaba, 86. satırdan sonra hata veriyor. ricam; bu hata için ne yapmalıyım, iki kodu birleştirmek ve 34 To 331 kısmında 331 yazmak yerine, 10. sütun 34. satırdan itibaren 331. satıra kadar sıfırdan büyük son sayı nasıl yazabilirim.
 

Ekli dosyalar

Bu şekilde işinizi görür mü?

C++:
Sub frt1()
    Dim sat As Integer, sut As Integer, a As Integer
    
    Application.ScreenUpdating = False
    
    Range("m34:re331").ClearContents
    
    For sat = 34 To Cells(Rows.Count, 11).End(3).Row
        If Range("K" & sat) <> "" Then
            a = Cells(sat, 11).Value
            If Range("K" & sat) > "0" Then
                Cells(sat, (14 + a - 1)) = Range("G" & sat).Value
            End If
        
            a = Cells(sat, 10).Value
            If Range("J" & sat) > "0" Then
                Cells(sat, (14 + a - 1)) = Range("F" & sat).Value
            End If
        End If
    Next
    
    Application.ScreenUpdating = True
End Sub
 
Kod:
a = Cells(sat, 11).Value
burası hata veriyor, bunun yerine boş bırak diyebilir miyiz?
 
Hata veren satırda hücrede hangi değer var?
 
Kod:
=EĞERHATA(EĞER((YUKARIYUVARLA((F54-$F$4)/(($F$5-$F$4)/$A$27);0))<$A$27;YUKARIYUVARLA((F54-$F$4)/(($F$5-$F$4)/$A$27);0);$A$27-1);"")
bu sonuca göre değer değil "" bu var. hücrelere 0 yazdıramam başka yeri etkiliyor.
Kod:
Cells(Rows.Count, 11).End(3).Row
burası da doğru sonuç vermiyor maalesef
 
Döngü içindeki aşağıdaki satır ile "K" sütunundaki ilgili satır boş hücre değilse devam et komutu veriyoruz.

If Range("K" & sat) <> "" Then

Aslında hata vermemesi gerekir.

Diğer komut neden olmadı?
 
Döngü içindeki aşağıdaki satır ile "K" sütunundaki ilgili satır boş hücre değilse devam et komutu veriyoruz.

If Range("K" & sat) <> "" Then

Aslında hata vermemesi gerekir.

Diğer komut neden olmadı?

a= değer ver diyoruz sanırım ama a değer değil. zaten değeri orada değil bir alt tarafta kullanıyorum.
diğeri de excelin son satırını alıyor ve çok uzun işleme sebep oluyor.
 
Anlıyorum ama zaten döngü içine K sütunundaki boş hücreyi atla koşulunu ekledik. Hata veren satıra uğramaması gerekir.
 
Ekteki örnek dosyada B sütununda A sütununa göre koşul ile veri alan formül var.

Formül sizin formülünüz gibi çalışıyor. Hücre boş görünüyor ama aslında hücrede formül var.

Butona basıp deneyin. Sonra A sütununa veri girip butona tekrar basıp deneme yapın.
 

Ekli dosyalar

Kod:
Sub frt1()
Dim sat As Integer, sut As Integer, a As Integer
    Application.ScreenUpdating = False
Range("n32:re331").ClearContents
For sat = 32 To 331
If Range("K" & sat) >= 0 And Range("K" & sat) <> "" Then
a = Cells(sat, 11).Value
Cells(sat, (14 + a)) = Range("G" & sat).Value
End If

If Range("J" & sat) >= 0 And Range("K" & sat) <> "" Then
a = Cells(sat, 10).Value
Cells(sat, (14 + a)) = Range("F" & sat).Value
End If
Next
    Application.ScreenUpdating = True
End Sub
çözdüm. teşekkürler. sanırım sıralamada hata vardı. son hücreyi bulmasının bir önemi yok. olmasa da olur. elinize sağlık.
 
Geri
Üst