• DİKKAT

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

değer varsa satır numarası versin

Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
arkadaşlar isteğimi ekli dosyada anlattım, D sütununda eğer değer varsa buna karşılık A sütununda sıra numarası vermesini istiyorum. makro ile hepinize teşekkürler.
 

Ekli dosyalar

Merhaba,

Formül:

A20 hücresine yazarak alt satırlara kopyalayınız.

Kod:
=EĞER(D20="";"";BAĞ_DEĞ_DOLU_SAY($D$20:D20))
Makro:

Kod:
Sub SiraNo()
 
    Dim i As Long
 
    For i = 20 To Cells(Rows.Count, "D").End(xlUp).Row
 
        If Cells(i, "D") <> "" Then
            Cells(i, "A") = WorksheetFunction.CountA(Range("D20:D" & i))
        End If
 
    Next i
 
End Sub
.
 
Merhaba,

Alternatif olarak aşağıdaki kodu denermisiniz. Kodu sayfanızın kod bölümüne uygulayınız.

D sütununa değer girdikçe A sütununa sıra numarası otomatik gelir.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("D20:D" & Rows.Count)) Is Nothing Then Exit Sub
    Range("A20:A" & Rows.Count).ClearContents
    With Range("A20:A" & Cells(Rows.Count, "D").End(3).Row)
        .Formula = "=IF(D20="""","""",COUNTA(D$20:D20))"
        .Value = .Value
    End With
End Sub
 
Ömer bey, güzel olmuş eline sağlık, bir sorun var buna bakarmısın, satır arasından bir değer silince önce çalıştırılan makro tarafından verilen sayı, ikinci bir defa makro çalıştırıldığında yerinde kalıyor, yani ikinci defa makro çalıştırıldığında ilk verilen sayının silinmesi lazım, yani, D25 deki veriye karşılık diyelim ki 5 sıra numarasını verdi, Tekrarında D25 deki değer silinince ikinci defa bu makroyu çalıştırıldığında burada kalan 5'in silinmesi lazım tamam yinede olmuş emeğine sağlık,
Korhan bey sizinki tam çalışıyor, diyeceksiniz ki yukardaki yazı niye alternatif olsun diye her ikinizde dua ile kalın
 
Ömer bey, güzel olmuş eline sağlık, bir sorun var buna bakarmısın, satır arasından bir değer silince önce çalıştırılan makro tarafından verilen sayı, ikinci bir defa makro çalıştırıldığında yerinde kalıyor, yani ikinci defa makro çalıştırıldığında ilk verilen sayının silinmesi lazım, yani, D25 deki veriye karşılık diyelim ki 5 sıra numarasını verdi, Tekrarında D25 deki değer silinince ikinci defa bu makroyu çalıştırıldığında burada kalan 5'in silinmesi lazım tamam yinede olmuş emeğine sağlık,
Korhan bey sizinki tam çalışıyor, diyeceksiniz ki yukardaki yazı niye alternatif olsun diye her ikinizde dua ile kalın

ömer bey araya şu kodu girdim oldum,
Sub SiraNo()
With Sheets(1).Range("a20:a200")
.Value = ""
End With

Dim i As Long

For i = 20 To Cells(Rows.Count, "D").End(xlUp).Row

If Cells(i, "D") <> "" Then
Cells(i, "A") = WorksheetFunction.CountA(Range("D20:D" & i))
End If

Next i

End Sub
 
Bu şekilde yazabilirsiniz.

Kod:
Sub SiraNo()
 
    Dim i As Long
    
    [COLOR=blue]Range("A20:A" & Rows.Count).ClearContents
[/COLOR]    
    For i = 20 To Cells(Rows.Count, "D").End(xlUp).Row
 
        If Cells(i, "D") <> "" Then
            Cells(i, "A") = WorksheetFunction.CountA(Range("D20:D" & i))
        End If
 
    Next i
 
End Sub

.
 
Geri
Üst