Çözüldü Otomatik Sıra Numarasında Kod Hatası

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

VolkanCan

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba, ekran resminde görüldüğü üzere, otomatik sıra numarası verme kodlamasında, işlem, "A4" satırından başlayacağına, "A3" satırından başlamaktadır. Bir türlü düzeltemedim. Neden düzeltemediğimi de anlamadım. Lütfen..! yardımcı olur musunuz? kodlamada işlem "A4" satırından başlaması için kodun neresini değiştirmek gerekiyor.

Ayrıca; kodlama içerisinde, otomatik sıra numarası ile birlikte otomatik tarih sıralamasının da yapılmasını sağlayabilir miyiz ? Tabi.. otomatik TARİH ile birlikte TARİHİN olduğu satır bilgileri de kendi tarih satırında yerini alacak. Yani, farklı tarih girişinde, sıra numarası ile birlikte otomatik tarih (kendi satırı ile birlikte) sıralamasını da sağlayacak kodlama için yardımcı olacak hocalarıma teşekkür ederim.

KOD :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B4:C100000]) Is Nothing Then Exit Sub
Dim i As Long, sr As Long
[a4:a100000].ClearContents
For i = 2 To [B100000:C100000].End(3).Row
If Not Cells(i, 2) = "" And Not Cells(i, 3) = "" Then
sr = sr + 1
Cells(i, 1) = sr
End If
Next
End Sub

1614247833928.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Verdiğiniz kod bana çok anlamlı gelmedi.
Çünkü B veya C sütununa her veri yazdığınızda ; önce A4'ten aşağısını (A sütununun tümünü) siliyor,
A4'ten itibaren tüm satırlara tekrar sıra numarası yazdırmış oluyorsunuz.

Yani diyelim 10'uncu satırdasınız ve B/C sütununa bir şey yazdınız;
kod devreye girip, A sütununun tümünü önce siliyor, sonra baştan sıra numarası veriyor.
Ardından bu kez 11'inci satıra veri yazıdınız; A sütununun tümü silinip tekrar baştan sıra numarası veriyor.
Bu işlem B/C sütununda her veri yazmanız sırasında tekrarlanıyor.

Siz b veya C sütununda aralarda boşluklar bırakarak ve bu boş hücrelere sonradan veri yazıyorsanız başka ama
veri girişi düzenli olarak yukardan aşağı yapılıyorsa mevcut kod çok anlamlı değil.
Doğrusu; b ve c sütununda veri yazıldığında; o satıra kadar verilmiş yukarı kısımdaki en büyük sayı + 1 diye
sadece son veri girişi yapılan satıra sıra numarası verilmesidir.

.
 
Verdiğiniz kod bana çok anlamlı gelmedi.
Çünkü B veya C sütununa her veri yazdığınızda ; önce A4'ten aşağısını (A sütununun tümünü) siliyor,
A4'ten itibaren tüm satırlara tekrar sıra numarası yazdırmış oluyorsunuz.

Yani diyelim 10'uncu satırdasınız ve B/C sütununa bir şey yazdınız;
kod devreye girip, A sütununun tümünü önce siliyor, sonra baştan sıra numarası veriyor.
Ardından bu kez 11'inci satıra veri yazıdınız; A sütununun tümü silinip tekrar baştan sıra numarası veriyor.
Bu işlem B/C sütununda her veri yazmanız sırasında tekrarlanıyor.

Siz b veya C sütununda aralarda boşluklar bırakarak ve bu boş hücrelere sonradan veri yazıyorsanız başka ama
veri girişi düzenli olarak yukardan aşağı yapılıyorsa mevcut kod çok anlamlı değil.
Doğrusu; b ve c sütununda veri yazıldığında; o satıra kadar verilmiş yukarı kısımdaki en büyük sayı + 1 diye
sadece son veri girişi yapılan satıra sıra numarası verilmesidir.

.
Hocam, çok haklısınız. Menzile giden, yolu bilmeyince, araca bakmıyor ama sizin olması gerekeni de görmeniz başka söze gerek bırakmıyor. Rica etsem, bunu örnek dosya üzerinde uygulayarak ekleyebilir misiniz ? Çok zahmet vermez isem, tarih sıralama işlemi ile birlikte...:giggle::rolleyes:
 
Bu kodlamadaki sıkıntı şudur;
tamam B ve C'ye veri yazdınız ve sıra numarası verildi, siz bu satırda sağa doğru D-P sütun aralığına da veri gireceksiniz.

Bulunulan satırda D-P sütun aralığında boş hücre kalma ihtimali yoksa (0 dahi olsa her hücreye veri yazıyorsanız)
işlem şöyle kurgulanır; B-P aralığında hiç boş hücre yoksa (ya da dolu hücre sayısı 15 ise) sıra numarası da verilir, sıralama da yapılır.
Eğer veri giriş yöntemi böyle ise yeni kod hazırlaycağım.

Sıralama işleminin hangi anda yapılacağı önemli. B-P aralığında boş hücre kalma ihtimali de varsa ve
B ve C ye veri yazdığınızda (sağa doğru D-P sütunları boşken) sıralama yapılırsa;
siz 14'üncü satırda idiniz ama tarihe göre sıralama işlemi sonucunda yazmakta olduğunuz satırdaki B-P hücre aralığı yer değiştireceğinden
boş olan sağdaki hücreler de yer (satır) değiştirir. Bu sefer sağ tarafa yazacağınız verilerin hangi satıra yazılacağı sorunu olur,
yazmaya devam edebilmek bu satırın bulunması gerekir (veri çogaldığında sıkıntı) .

Bence doğru işlem veri girişi ve sıra no verme işini, kullandığınız kodun yerine aşağıdakiyle yapmak,
sıralama işini ise sayfaya ekleyeceğiniz düğmeyle ilişkilendireceğiniz ikinci kod üzerinden yapmak.

VBA:
You must log in to view content
(6 satır)

VBA:
You must log in to view content
(3 satır)
 
Bu kodlamadaki sıkıntı şudur;
tamam B ve C'ye veri yazdınız ve sıra numarası verildi, siz bu satırda sağa doğru D-P sütun aralığına da veri gireceksiniz.

Bulunulan satırda D-P sütun aralığında boş hücre kalma ihtimali yoksa (0 dahi olsa her hücreye veri yazıyorsanız)
işlem şöyle kurgulanır; B-P aralığında hiç boş hücre yoksa (ya da dolu hücre sayısı 15 ise) sıra numarası da verilir, sıralama da yapılır.
Eğer veri giriş yöntemi böyle ise yeni kod hazırlaycağım.

Sıralama işleminin hangi anda yapılacağı önemli. B-P aralığında boş hücre kalma ihtimali de varsa ve
B ve C ye veri yazdığınızda (sağa doğru D-P sütunları boşken) sıralama yapılırsa;
siz 14'üncü satırda idiniz ama tarihe göre sıralama işlemi sonucunda yazmakta olduğunuz satırdaki B-P hücre aralığı yer değiştireceğinden
boş olan sağdaki hücreler de yer (satır) değiştirir. Bu sefer sağ tarafa yazacağınız verilerin hangi satıra yazılacağı sorunu olur,
yazmaya devam edebilmek bu satırın bulunması gerekir (veri çogaldığında sıkıntı) .

Bence doğru işlem veri girişi ve sıra no verme işini, kullandığınız kodun yerine aşağıdakiyle yapmak,
sıralama işini ise sayfaya ekleyeceğiniz düğmeyle ilişkilendireceğiniz ikinci kod üzerinden yapmak.

VBA:
You must log in to view content
(6 satır)

VBA:
You must log in to view content
(3 satır)
Hocam, tespitleriniz doğrudur. Velhasıl, ustaya, yaptığı iş için çırağın doğrudur diye söylemle, teyit etmesi de yanlış velhasıl, bizden doğru olan üstadı alkışlamaktır. Saygılarımla...
 
Eyvallah.
İsteğinizin tam karşılığı elde edilmişse; ÇÖZÜLDÜ işaretlemesini kendi cevabınızın sağındaki değil de,
çözümü sağlayan cevabın sağındaki ONAY simgesine tıklayarak yaparsanız daha anlamlı olur.

Bu ÇÖZÜLDÜ onayından maksatımız, benzer sorunu/ihtiyacı olan diğer üyelerimizin, bu konu sayfasını gördüğünde,
cevaplar/mesajlar arasında dolaşmadan doğrudan çözümü sağlayan cevaba ulaşabilmelerini sağlamak.

İyi çalışmalar dilerim.

.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
7
Üst