• DİKKAT

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

Döngü, Koşul içinde Koşul Yardım

Katılım
27 Ekim 2017
Mesajlar
59
Excel Vers. ve Dili
2010 turkce
Merhaba.

1000 satirlik bir tablom var.

Bu tablonun B kolonunun bazı satırlarında isimler yazılı bazı satırları ise boş. (Örnek: B2 hücresinde isim var B3 boş, B4,B5,B6 isim var B7 boş.. Düzensiz sekilde B1000'e kadar iniyor. Boş olan satırları silmemem gerekiyor çünkü her an dolabilir)

C kolonu: Bu kolon da C1000'e kadar iniyor. C kolonu, B kolonunda ismi yazılı personelin durumunu belirten yazılardan oluşuyor. B kolonunda isim yazili olduğu halde C kolonunda durumu boş olabilir. (Örnek:B2 hücresinde isim yazılı, C2 hücresinde durumu yazılı, B4 hücresinde isim yazılı C4 hücresinde durumu yazılı, B5 hücresinde isim yazılı ancak C5 hücresinde durumu boş çünkü belirtilecek durumu yok). Ancak B kolonu boş olunca C kolonu dolu olamaz bu durum net.

Amacım;
1) B2 doluysa D2 hucresine X harfi atsın,
B2 boşsa D2 hücresine hiçbir şey yazmasın ("")

2) B2 boşsa (zaten bu durumda C2 boş) E2 hucresine BOŞ yazsın,
B2 doluysa ve C2 boşsa E2 hücresine TAMAM yazsın,
B2 doluysa ve C2 doluysa E2 hücresine DEVAM yazsın.

Bunları 1000'inci satıra kadar yapsın.

Yukarıdaki 2 başlıklı durumu formüller ile yapıyorum ancak kod ile yazmam gerekiyor. For dongulu if, elseif ve else koşullarıyla yapmaya çalıştım ancak sonuç alamadım.

Belirtilen durumla ilgili kod konusunda yardımcı olursanız sevinirim.
 
Keşke örnek bir dosya yükleseymişsiniz daha kolay olurdu yanıt vermek.

Birinci sorunuza yanıt olabilir;
XML:
Sub Makro1()
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""","""",""X"")"
    Range("D2").Select
    Selection.AutoFill Destination:=Range("D2:D1000"), Type:=xlFillDefault
    Range("D2").Select
End Sub
 
İkinci sorunuza cevaben;

Kod:
Sub Makro2()
    Range("E2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(RC[-3]<>"""",RC[-2]=""""),""TAMAM"",IF(AND(RC[-3]<>"""",RC[-2]<>""""),""DEVAM"",""""))"
    Range("E2").Select
    Selection.AutoFill Destination:=Range("E2:E1000"), Type:=xlFillDefault
    Range("E2").Select
End Sub

NOT: Yukarıdaki mesajı düzenleyemediğim için yeni mesaj atıyorum. Rapor linki ile bildirdim yöneticiler bir üstteki mesajı silebilirlerse sevinirim.
 
Geri
Üst