Otomatik Satır Açma

Katılım
16 Kasım 2007
Mesajlar
20
Excel Vers. ve Dili
fvfsv
Merhaba arkadaşlar. Bu forumdaki ilk mesajım. Öncelikle herkese saygılar sevgiler.

Benim sorum şu:
FİŞ NO-----YTL-------$
--N101-----23-------20
--N101-----17-------14
--N102-----20-------17
--N102-----18-------15
--N102-----10--------8
--N103-----25-------23

Elimde yukarıdakine benzer bir tablo var (4000 küsür satırlık) Benim istediğim şu. Tekrarlayan fiş numaralarını, satıla ayırması. Yani macro çalıştıktan sonra elde etmek istediğim görünüm şu:

FİŞ NO-----YTL-------$
--N101-----23-------20
--N101-----17-------14
-----------------------
--N102-----20-------17
--N102-----18-------15
--N102-----10--------8
-----------------------
--N103-----25-------23

Sanırım fiş no sütununu bir array olarak gösterip, aşağıdaki gibi bir mantıkta kod yazılmalı. Tabi çözemedim ne yazık ki:)

{
if (a!=a[i+1]) then
insert_row()
}

Yardımlarınızı bekliyorum. Benim için çok önemli.
 

Necdet

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

Aşağıdaki kodları dener misiniz?

Kod:
Public Sub SatırAç()
Application.ScreenUpdating = False
    Columns("A:A").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Range("A1").Select
For i = [A65536].End(3).Row To 2 Step -1
    If Cells(i, "A") <> Cells(i - 1, "A") Then
       Rows(i).Insert
    End If
Next i
End Sub
 
Katılım
16 Kasım 2007
Mesajlar
20
Excel Vers. ve Dili
fvfsv
Necdet Bey
Yazd&#305;m ama &#231;al&#305;&#351;m&#305;yor? Neden olabilir?

"Selection.SpecialCells(xlCellTypeBlanks).Select"

komutu olan sat&#305;rda hata veriyor ve "no cells were found" diyor.
?
 

Necdet

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

Kodları Aşağıdaki şekilde değiştirin.


Kod:
Public Sub SatırAç()
Application.ScreenUpdating = False
[COLOR=red]On Error GoTo Devam
[/COLOR]    Columns("A:A").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Range("A1").Select
[COLOR=red]Devam:
[/COLOR]For i = [A65536].End(3).Row To 2 Step -1
    If Cells(i, "A") <> Cells(i - 1, "A") Then
       Rows(i).Insert
    End If
Next i
End Sub
 
Katılım
16 Kasım 2007
Mesajlar
20
Excel Vers. ve Dili
fvfsv
Çok teşekkürler. Eksik olmayın.
 
Üst