• DİKKAT

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

Soru Her Boşluk Olduğunda Sıra Numarasını 1 den Başlatmak

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
745
Excel Vers. ve Dili
2016 64 TR
Herkese Merhaba şöyle bir sıralama kadrosuna ihtiyacım var :
D 16 dan Son dolu D satırına kadar eğer 6 rakam varsa hücrede
J16 dan itibaren sıra numarası vermesi.
Eğer D satırında 6 karakterden az veya D boş ise J satırına sıra numarası vermeyecek .

Daha sonraki gelen D satırında 6 karekter var ise J satırına 1 den başlayarak yeniden sıra numarası verecek. Her boşlukta numara yeniden 1 den başlayacak yani
Yardımcı olabilecek olan varsa çok sevinirim.
 
Örnek Dosya ekledim. Daha hızlı olması açısından
 

Ekli dosyalar

Formülle alternatif;

J16;
C++:
=IF(LEN(D16)<>6;"";IF(AND(D15="";LEN(D16)=6);1;J15+1))

IF = EĞER
AND = VE
LEN = UZUNLUK
 
Benim örnekte doğru çalışıyor. 6 karakterden az ise diye almıştım. sizin dosyayı görmeden hazırlamıştım. Sizin dosyada denemedim.
Makroyu bu makro ile değiştirin.
Kod:
Sub SiraNo()
    Dim x As Integer
    son = Cells(Rows.Count, "D").End(3).Row
    For x = 1 To son
        If Len(Cells(15 + x, 4)) <> 6 Then
            Cells(15 + x, 10) = ""
          Else
            Cells(15 + x, 10) = 1 + Cells(15 + x - 1, 10)
        End If
    Next x
End Sub
iyi çalışmalar
 
Son düzenleme:
Benim örnekte doğru çalışıyor. 6 karakterden az ise diye almıştım. sizin dosyayı görmeden hazırlamıştım. Sizin dosyada denemedim.
Makroyu bu makro ile değiştirin.
Kod:
Sub SiraNo()
    Dim x As Integer
    son = Cells(Rows.Count, "D").End(3).Row
    For x = 1 To son
        If Len(Cells(15 + x, 4)) <> 6 Then
            Cells(15 + x, 10) = ""
          Else
            Cells(15 + x, 10) = 1 + Cells(15 + x - 1, 10)
        End If
    Next x
End Sub
iyi çalışmalar
Hocam çok teşekkür ederim . Kod sorunsuz çalıştı.
 
Böylede olabilir.

Önerdiğim formülü makroya çevirdim...

C++:
Option Explicit

Sub Sira_No_Ver()
    Range("J:J").ClearContents
    With Range("J16:J" & Cells(Rows.Count, 4).End(3).Row)
        .Formula = "=IF(LEN(D16)<>6,"""",IF(AND(D15="""",LEN(D16)=6),1,J15+1))"
        .Value = .Value
    End With
End Sub
 
Böylede olabilir.

Önerdiğim formülü makroya çevirdim...

C++:
Option Explicit

Sub Sira_No_Ver()
    Range("J:J").ClearContents
    With Range("J16:J" & Cells(Rows.Count, 4).End(3).Row)
        .Formula = "=IF(LEN(D16)<>6,"""",IF(AND(D15="""",LEN(D16)=6),1,J15+1))"
        .Value = .Value
    End With
End Sub
@Korhan Ayhan Hocam emeğinize sağlık bu kodda sorunsuz çalıştı.
 
Geri
Üst