Satır ekleme

Katılım
5 Mart 2007
Mesajlar
14
Excel Vers. ve Dili
excell 2003
merhabalar,

örnek dosyadaki gibi iller arasına satır eklemem gerekiyor. yani adana'dan sonraki il satırına geldiğinde bir satır boşluk açmalı. ayrıca illerin yanındaki değerlere göre adana kendi içinde sort edilmeli. ve ayrıca sort edildikten sonrada her il için 1'den başlayarak no ile yazılı sütuna sıra ile değerler vermeli. yani adana 29 tane ise 1'den 29'a kadar olmalı ve sonrasında adapazarı 23 tane ise 1'den 23'e kadar değer almalı.

ben kendimce bişeyler yaptım ama çokda işe yaramadı.
Private Sub ayırma()
Dim adet As Integer
Dim ilk As Integer
Dim son As Integer
Range("D:D").Select
adet = Application.CountA(Selection) - 1

For i = 2 To adet
ilk = Cells(i, 4).Select
son = Cells(i + 1, 4).Select
If ilk = son Then
GoTo has
ElseIf ilk <> son Then
ActiveCell.EntireRow.Select
i = i - 1
End If
has:
Next i
End Sub

yazdığım kodta ne gibi hatalar yaptığımı söyleyecek arkadaşlarada minnettar olurum. böylece hatalarımı ve eksiklerimide görmüş olurum.

Ustalarıma şimdiden teşekkür ederim...
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,489
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları dener misiniz?

Kod:
Sub SatirAc()
Dim i As Long
Application.ScreenUpdating = False
Range("B2:C" & [B65536].End(3).Row).Sort Key1:=[B2]
Range("A2").FormulaR1C1 = "=COUNTIF(R2C2:RC[1],RC[1])"
Range("A2:A" & [B65536].End(3).Row).FillDown
For i = [B65536].End(3).Row To 3 Step -1
    If Cells(i, "B") <> Cells(i - 1, "b") Then Rows(i).Insert Shift:=xlDown
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamamdır...."
End Sub
 
Katılım
5 Mart 2007
Mesajlar
14
Excel Vers. ve Dili
excell 2003
elinize sağlık

Hocam çok teşekkürler. Şiir gibi çalışıyor:):)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,489
Excel Vers. ve Dili
Ofis 365 Türkçe
Kafiyesini merak ettim :)
 
Katılım
6 Temmuz 2004
Mesajlar
157
Excel Vers. ve Dili
Microsoft® Office 2019 TR
pardon yanlış yere konu açtım
 
Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,489
Excel Vers. ve Dili
Ofis 365 Türkçe
Tekrar Merhaba,

Sıra numarası için fonksiyon yavaşlatırsa çalışmayı aşağıdaki kodları kullanabilirsiniz.

Kod:
Sub SatirAc()
Dim i, SıraNo As Long
Dim EskiDeğer As String
Application.ScreenUpdating = False
Range("B2:C" & [B65536].End(3).Row).Sort Key1:=[B2]
For i = 2 To [B65536].End(3).Row
    If EskiDeğer <> Cells(i, "B") Then
        SıraNo = 0
        EskiDeğer = Cells(i, "B")
    End If
    
    SıraNo = SıraNo + 1
    Cells(i, "A") = SıraNo
    
Next i
For i = [B65536].End(3).Row To 3 Step -1
    If Cells(i, "B") <> Cells(i - 1, "b") Then Rows(i).Insert Shift:=xlDown
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamamdır...."
End Sub
 
Katılım
5 Mart 2007
Mesajlar
14
Excel Vers. ve Dili
excell 2003
Evet hocam gerçektende hız olarak çok farketti. elinize sağlık.

makronun makamı olmazmı hocam. helede tıkır tıkır çalışan bir makro :):) çok güzel bir keyif bence.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,489
Excel Vers. ve Dili
Ofis 365 Türkçe
:)


Güle güle kullanınız.
 
Üst