boşluklardan sonra yeniden başlayan sıra numarası

Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
merhaba

a sütununda veriler bulunmakta aralarda boş satırlar mevcut. Sıra numarası verirken ilk satırdan başlayıp ilk boşluğa kadar sıra no verip sonrasında dolu hücreden devam edip sonraki boşluğa kadar 1 den başlayan yeni bir sıra no vermek istiyorum. yapmaya çalıştığım kod aşağıdaki gibidir.
Sub a()
Dim i, a, e As Integer
For i = 1 To 25
b = i
If Cells(i, 1).Value <> "" Then
For a = 1 To 3 'burayı dolu satır sayısı kadar yazarsam kod doğru çalışıyor
Cells(b, 2).Value = a
b = b + 1
Next a
End If
i = b
Next i
End Sub


olması gereken şekli
A sutunu b sutunu
veri-------------1
veri-------------2
veri-------------3
veri-------------4

veri-------------1
veri-------------2
veri-------------3


veri-------------1
veri-------------2
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Bu şekilde deneyin.

Kod:
Sub Numara()

    Dim i As Long, s As Long
   
    [B:B].ClearContents
   
    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") = "" Then
            s = 0
        Else
            s = s + 1
            Cells(i, "B") = s
        End If
    Next
   
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Alternatif olsun;
Kod:
Sub test()
    [B:B].ClearContents
    [B1] = 1
    With Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row)
        .FormulaR1C1 = "=R[-1]C+1"
        .Offset(, -1).SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents
        .Value = .Value
    End With
End Sub
 
Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
Merhaba,

Bu şekilde deneyin.

Kod:
Sub Numara()

    Dim i As Long, s As Long
  
    [B:B].ClearContents
  
    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") = "" Then
            s = 0
        Else
            s = s + 1
            Cells(i, "B") = s
        End If
    Next
  
End Sub
Ömer bey
numaralandırma doğru olarak çalıştı çok teşekkür eder iyi günler dilerim.
 
Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
Alternatif olsun;
Kod:
Sub test()
    [B:B].ClearContents
    [B1] = 1
    With Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row)
        .FormulaR1C1 = "=R[-1]C+1"
        .Offset(, -1).SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents
        .Value = .Value
    End With
End Sub
Veysel bey
teşekkür ederim. numaralandırma doğru çalışıyor
 
Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
Merhaba,

Bu şekilde deneyin.

Kod:
Sub Numara()

    Dim i As Long, s As Long
  
    [B:B].ClearContents
  
    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") = "" Then
            s = 0
        Else
            s = s + 1
            Cells(i, "B") = s
        End If
    Next
  
End Sub

sizden bir şey daha istesem yardımcı olabilir misiniz.
sıra numarasını verirken
sıra no / boşluğa kadar son sıra no yazdırılabilir mi acaba

aşağıda kırmızı ile işaretlenmiş hali gibi

olması gereken şekli
A sutunu b sutunu
veri-------------1/4
veri-------------2/4
veri-------------3/4
veri-------------4/4

veri-------------1/3
veri-------------2/3
veri-------------3/3


veri-------------1/2
veri-------------2/2
 
Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
Alternatif olsun;
Kod:
Sub test()
    [B:B].ClearContents
    [B1] = 1
    With Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row)
        .FormulaR1C1 = "=R[-1]C+1"
        .Offset(, -1).SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents
        .Value = .Value
    End With
End Sub
sizden bir şey daha istesem yardımcı olabilir misiniz.
sıra numarasını verirken
sıra no / boşluğa kadar son sıra no yazdırılabilir mi acaba

aşağıda kırmızı ile işaretlenmiş hali gibi

olması gereken şekli
A sutunu b sutunu
veri-------------1/4
veri-------------2/4
veri-------------3/4
veri-------------4/4

veri-------------1/3
veri-------------2/3
veri-------------3/3


veri-------------1/2
veri-------------2/2
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    [b:b].ClearContents
    For Each Rng In [a:a].SpecialCells(XlCellType.xlCellTypeConstants).Areas
        With Rng.Offset(, 1)
            .NumberFormat = "@"
            say = 0
            For Each huc In .Cells
                say = say + 1
                huc.Value = say & "/" & Rng.Count
            Next huc
        End With
    Next
End Sub
 
Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
Kod:
Sub test()
    [b:b].ClearContents
    For Each Rng In [a:a].SpecialCells(XlCellType.xlCellTypeConstants).Areas
        With Rng.Offset(, 1)
            .NumberFormat = "@"
            say = 0
            For Each huc In .Cells
                say = say + 1
                huc.Value = say & "/" & Rng.Count
            Next huc
        End With
    Next
End Sub
Merhaba bu kodu aşağıdaki gibi dönüştürmek için nasıl bir değişiklik gerekiyor acaba yardımcı olabilirseniz sevinirim . Teşekkürler
Aynı veri isimlerine göre kodlama yapacak hale çevirmek istiyorum. Veri ismi tek yani benzersiz ise 1/1, iki tane ise 1/2 2/2 veya fazla ise 1/10 vs. gibi sıralamak istiyorum.

Arada satır boşlukları olmadan sıralama olması gerekiyor.

A sutunu b sutunu
veri-------------1/4
veri-------------2/4
veri-------------3/4
veri-------------4/4
elma------------1/3
elma------------2/3
elma------------3/3
armut-----------1/2
armut-----------2/2
kiraz-------------1/1
erik--------------1/2
erik--------------2/2
mandalina-------1/2
kiraz-------------1/1
mandalina-------2/2
nar---------------1/1
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Formülle çözüm;

B1 hücresine uygulayıp deneyiniz.

C++:
=EĞERSAY($A$1:A1;A1)&"/"&EĞERSAY(A:A;A1)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu da makrolu çözüm;

C++:
Option Explicit

Sub Sira_Numarasi_Ver()
    Dim Son As Long
    
    Son = Cells(Rows.Count, 1).End(3).Row
    
    Range("B:B").Clear
        
    With Range("B1:B" & Son)
        .Formula = "=COUNtIF(A1:A1,A1)&""/""&COUNTIF(A:A,A1)"
        .NumberFormat = "@"
        .Value = .Value
    End With
    
    MsgBox "Sıra numaraları güncellenmiştir.", vbInformation
End Sub
 
Katılım
5 Eylül 2013
Mesajlar
29
Excel Vers. ve Dili
2016 Türkçe
Bu da makrolu çözüm;

C++:
Option Explicit

Sub Sira_Numarasi_Ver()
    Dim Son As Long
   
    Son = Cells(Rows.Count, 1).End(3).Row
   
    Range("B:B").Clear
       
    With Range("B1:B" & Son)
        .Formula = "=COUNtIF(A1:A1,A1)&""/""&COUNTIF(A:A,A1)"
        .NumberFormat = "@"
        .Value = .Value
    End With
   
    MsgBox "Sıra numaraları güncellenmiştir.", vbInformation
End Sub
Korhan bey yardımınız için teşekkür ederim ikiside istediğim gibi çalıştı.
 
Üst