Hücrede veri varsa yazsın yoksa boş geçsin

Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Merhaba arkadaşlar Makro ile D9 ile D 17 arasında veri varsa "-" çizgi işareti koysun, sırasında bu aralıkta veri yoksa koyma nasıl bir makro ile yazılır.
[Alıntı]
Kod:
    Range ("K9: K17") = "-"
[/ Alıntı]
Böyle yazınca K9 ile K17 arasına çizgi koyuyor, oysa ben D9 ile D 17 arasında veri varsa bu işlemi yapmasını istiyorum teşekkürler.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Bu şekilde deneyin.
Kod:
Sub deneme()
Dim i As Integer
For i = 9 To 17
If Range("D" & i).Value <> "" Then
Range("K9:K17").Value = "-"
End If
Next i
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,662
Excel Vers. ve Dili
Microsoft 365 Tr-64
Alternatif olsun.
C++:
Sub x()
Dim i As Integer
    'Eğer sorunuzda yazdığınız doğruysa bu kısmı kullan
    If WorksheetFunction.CountA(Range("D9:D17")) > 0 Then Range("K9:K17") = "-"
    '
    '
    'D9 da veri yoksa K9="-", D10 da veri yoksa K10="-"  gibi satırlarda işlem olsun diyorsanız bu kısmı kullan
    For i = 9 To 17
        If Cells(i, "D") <> "" Then Cells(i, "K") = "-"
    Next i
End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Sayın abim çalışmadı isteğim tam şu idi =EĞER(D9="";"";"-")
D9 dan D17 arasında veri varsa K9 ile K17 arasına - işareti koysun
Yani
=EĞER(D9="";"";"-")
=EĞER(D10="";"";"-")
=EĞER(D11="";"";"-")
"" "" "" bunun gibi makro olacak teşekkürler.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şöyle deneyin:

PHP:
Sub tire()
    For i = 9 To 17
         If Cells(i, "D") <> "" Then
              Cells(i,"K") = "-"
         Else
              Cells(i,"K") =""
         End If
    Next
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,510
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

C++:
Option Explicit

Sub Test()
    With Range("K9:K17")
        .Formula = "=IF(D9<>"""",""-"","""")"
        .Value = .Value
    End With
End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Yusuf bey merhaba ekli dosyamı siz hazırlamış tınız. Abim. Ancak abi, D13 ve bundan sonraki veriler varsa hesaplama yapmıyor, birde D deki verileri silince hesapla deyince I dakiveriler kalıyor, buna bakar mısın? Teşekkürler.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
I8 hücresinde aşağıdaki formülü kullanıp aşağı kopyalayın:

=DÜŞEYARA(C8;MESAFE!$B$3:$CF$85;83;0)

ÜCRET_MESAFE_HESAPLA makrosunda Cells(a,"I") olan satırları silin
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Merhaba Yusuf bey sizin 6 nolu kodu bunu ek yaptım. L yide temizliyor, ancak Cells(i, "I") = "" yapınca neden bunu temizlemiyor. ?
For i = 9 To 17
If Cells(i, "D") <> "" Then
Cells(i, "K") = "-"
Cells(i, "L") = "-"

Else
Cells(i, "K") = ""
Cells(i, "L") = ""

End If
Next
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Yusuf bey tamam siliyor, sorun kalmadı, SORUN şuymuş, formüller silinmemesi için sayfayı koru yapmıştım, onun için ekleme ve silme işlemini yapmıyormuş sorun çözüldü Teşekkür ederim. Burada bana şunu makro ile yazar mısın "=EĞER(D10="";"";10*D$4)" D9 ile D17 arasında veri varsa D4 deki rakamı 10 ile çarpsın?

Abim teşekkür ederim galiba bunada gerek kalmadı. Korumadaki kilidi kaldırınca oldu, herşey için teşekkür ederim.
 
Son düzenleme:
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Yusuf Bey kusura bakmayın şurayı yapamadım yardımcı olur musun?
For i = 9 To 17
If Cells(i, "D") <> "" Then
Cells(i, "K") = "-"
Cells(i, "L") = "-"

Else
Cells(i, "K") = ""
Cells(i, "L") = ""

End If
Next

Burada J sütunu için şunu yapmak istiyorum,
Cells(i, "j") = 43.35 * 10 değerini için D4 hücresini 10 çarpmak istiyorum, burası nasıl düzenlenir.
Cells(i, "j") = Cells( "D4" * 10) yaptım olmadı.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aslında hem makro hem de formülle sayfa koruması yapmanız pek kullanışlı olmamış. Ya hepsini formüllü yapın ya da hepsini makrolu yapın. Bu dosya için bu kadar makro kullanılmasına gerek olmadığını düşünüyorum. Formül ve hücre/sayfa korumayla çözmek daha pratik olurdu.

Makronun ilgili bölümünü aşağıdakiyle değiştirerek deneyin:

PHP:
    For i = 9 To 17
        If Cells(i, "D") <> "" Then
            Cells(i, "K") = "-"
            Cells(i, "L") = "-"
            If Cells(i, "E") = "Kendisi" Then
                Cells(i, "J").FormulaR1C1 = "=IF(RC[-6]="""","""",20*R[-4]C[-6])"
            Else
                Cells(i, "J").FormulaR1C1 = "=IF(RC[-6]="""","""",10*R4C[-6])"
            End If
        Else
            Cells(i, "K") = ""
            Cells(i, "L") = ""
        End If
    Next
 
Üst