• DİKKAT

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

Satır silince formüller bozulmasın

Katılım
11 Şubat 2007
Mesajlar
28
Excel Vers. ve Dili
Excel 2003 Türkçe
A sütünunda 1 den 100 e kadar sıralanmış bir liste var. Bu listeden diyelimki 3. 4. ve 5. satırları sildiğimde numaralandırma yeniden başlasın. Aradan satır silindiğinde numaralandırma
1
2
6
7
8
.
.
. diye devam etmesin. Mevcut numaralar yeniden kaldığı yerden başlasın. Bunu A2 hücresine =A1+1 şeklinde formüle edip kopyaladığımızda aradan satırlar silinince BAŞVURU hatası veriyor. Yol gösterecek arkadaşımız olursa sevinirim.
 
sayfa kod bölümüne yapıştırın sayfayı her aktif ettiğinizde sıra no güncellenir.
Private Sub Worksheet_Activate()
On Error Resume Next
For i = 1 To WorksheetFunction.CountA([b1:b65000])
Cells(i + 1, 1) = i
Next i
End Sub
 
Sayfa kod bölümüne sayfa sekmesi üzerine sağ tıklayıp Kod görüntüle komutunu verip açılan pencereye yapıştırdım. Ama satırları silince numaralandırma yeniden başlamıyor. Acaba atladığım birşey mi var?
 
Numaralandırmak istediğiniz aralığın ilk hücresine =SATIR(A1) yazın.
SATIR fonksiyonu, başvuruda bulunduğunuz satırın numarasını döndürür. Örneğin, =SATIR(A1) fonksiyonu 1 numarayı döndürür.

Doldurma tutamağını (dolgu tutamacı: Seçimin alt sağ köşesindeki küçük siyah kare. Dolgu tutamacının üzerine geldiğinizde, işaretçi siyah çarpı işaretine dönüşür.) , doldurmak istediğiniz aralık boyunca sürükleyin.

NOT: Yalnız satır ekleme yapınca numaralndırma bozuluyor, silmede sorun yok.
 
sildikten sonra sayfadan çıkıp tekrar girdiğinizde kendini günceller.
 
Alternatif olarak aşağıdaki kodu deneyin. Sayfanın kod sayfasına kopyalanacaktır. Satırı sildiğinizde kendiliğinden çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Application.EnableEvents = False
[a1] = 1
[a2] = 2
[a1:a2].AutoFill Destination:=Range("A1:A" & [a65536].End(3).Row)
Application.EnableEvents = True
End Sub
 
Hangi h&#252;creden itibaren ba&#351;latacaksan&#305;z ona g&#246;re de&#287;i&#351;tirebilirsiniz

A1 h&#252;cresinden itibaren yaz&#305;lacaksa =SATIRSAY($A$1:A1) yaz&#305;p a&#351;a&#287;&#305; do&#287;ru &#231;ekiniz.

A2 h&#252;cresinden itibaren yaz&#305;lacaksa =SATIRSAY($A$2:A2) yaz&#305;p a&#351;a&#287;&#305; do&#287;ru &#231;ekiniz.
 
Sayın Acemi1
evet satır fonksiyonuyla satır numarasını aldırırız da, numaralar her zaman 1 den başlamıyor ki 100 den de başlayabilir, 1000 den de başlayabilir. O yüzden o çözüm olmuyor.
 
Sayın Leventm
İkinci verdiğiniz kod çalıştı, kod içerisinde de zaten belli. A1 ve A2 hücrelerine 1ve 2 değerleri atandığından sürekli olarak numaralandırmayı 1 den başlatıyor. Ama elimizdeki kod da başlangıç hücrelerinin değerlerini değiştirirsek istediğimize ulaşmış oluruz. Bu haliyle genel bir kod olmuş.
Harikasınız


Çok teşekkür ederim
 
Geri
Üst