Y

Çözüldü Sıra Numarası Verdirme Kodlarda Revize

YasarPiskin

Yıllık Forum Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
EK'te ki çalışmanın MODULE1 sayfasındaki kod ile;
1- N5 hücresinden itibaren tarih girişi yapıldığında o satırı silip B5 hücresindeki sıra numarasını esas alarak ARŞİV sayfasın göndermeye,
DATA sayfasındaki kod ile;
2- C5 hücresinden itibaren veri giriş yapıldığında B5 hücresinden itibaren ARŞİV sayfası B sütunundaki en büyük sayıyı referans alarak DATA sayfası B sütununa sıra numarası verdirmeye ve DATA sayfası E sütununa veri girişi ile birlikte G sütunundaki dosya numaralını büyükten küçüğe sıralamaya çalışıyorum.
DATA sayasındaki kodlarının işlevleri aynı kalmak kaydıyla, örnekte görüldüğü gibi arada boşluk olduğu zamanda işlevlerini yerine getirmesi sağlamak için DATA sayasındaki kodlarının revize edilmesi hususunda yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Data sayfasında ki formül de kontroller ile ilgili sorun var. Hedef hücrenin satır numarası boş olan ilk satır numarasına eşit mi kontrolü yapılıyor. Aşağıdeki resimde mavi olan kısmı silmeniz yeterli olacaktır gibime geliyor. Deneyiniz.
1629024157956.webp
 
Moderatörün son düzenlenenleri:
Belirtiğiniz kısmı sildiğim zaman, kodlar işlevini kaybediyor.(C5 hücresinden itibaren veri giriş yapıldığında B5 hücresinden itibaren ARŞİV sayfası B sütunundaki en büyük sayıyı referans alarak DATA sayfası B sütununa sıra numarası verdirmeye ve DATA sayfası E sütununa veri girişi ile birlikte G sütunundaki dosya numaralını büyükten küçüğe sıralama yapıyor.)
 
Cells(Rows.Count, "B").End(3).Row + 1

Üstteki satırda yapmak istediğiniz husus nedir?
"..., örnekte görüldüğü gibi arada boşluk olduğu zamanda işlevlerini yerine getirmesi sağlamak için" bu cümledeki boşluk diye tanımladığınız husus, DATA sayfasında neyi ifade ediyor?
Yani C5 te bir şeyler yazıyor, D5 boş gibi bir şey mi yoksa başka bir husus mu?
Bu kısmı netleştirebilir misiniz?
 
Boşluk C sütunu boş, B sütunu boş.

Cells(Rows.Count, "B").End(3).Row + 1 ile de C5 hücresinden itibaren veri giriş yapıldığında B5 hücresinden itibaren B sütununa, artarak sıra numarası verdirmeye çalışıyorum.

Yapmak istediğim şey ise boş satırlar olsa bile sıra numarası verilmesini sağlamak.
 
Pazar rehavetinden ötürü anlama eşiğim sanırım çok düşük.
🙉
Sıra numarası dediğiniz hususun kriteri nedir?
Aktardığınız sayfadaki sıra numarası gibi görünen rakamlar, DATA sayfasındaki kart no olarak yazılan numaralar zaten.
Yani bir SIRA NO koşulu yok gibi, B sütununda ne gördüyse ARŞİV sayfasına aktarmış.
Böyle değildir elbet ama kriterinizi belirtirseniz ona göre kodlara yoğunlaşmak daha kolay olacaktır.
 
C5 hücresinden itibaren veri giriş yapıldığında B5 hücresinden itibaren 1, 2, 3, ....., eğer ARŞİV sayfası B sütunundaki en büyük sayı örnek olarak 6 ise DATA sayfası B sütununa verilen sayı 7 den başlayarak gider.
 
Şimdi dediğiniz gibi N5 hücresine 14/08/2021 yazdım, daha ilk şartınız olan target.column seçeneği asla çalışmayacağı için (N sütunu olması sebebiyle) direk satırın silinmesi aşamasına geçildi ve satırı ARŞİV sayfasına yapıştırarak sildi.

Bu bakış açısına göre, kodlarınıza eklediğiniz if şartını tekrar gözden geçirmenizi öneririm.
Çünkü kontrolü yapmasına mahal kalmadan zaten silme işlemine geçiliyor.

Ya kodlarınızdaki tetikleme alanında revizyon yapmanız gerekir ya da target.column kısmındaki şartı es geçmeniz.
Çünkü N sütununa yazılan veri olacağına göre hiç bir zaman Target.Column değeri 3 e eşit olmaz.
 
Sayın @zompcu_80 , dosyanız sıralama yapıyor mu? İkinci olarak arşiv sayfasında ki en büyük değeri baz olarak , artacak şekilde sıra numarası vermek istiyorsunuz. Maximum değer sayfada bulunan değerlerden küçük ise bir çakışma söz konusu olabilir. Ayrıcı söylediğim yeri incelediğinizde neden silmeniz gerektiğini anlarsınız.

Target.Row = Cells(Rows.Count, "B").End(3).Row + 1


Kod kısaca şunu ifade ediyor. Benim bulunduğum satır değeri ilk boş değerin bulunduğu satıra eşit mi? Eşitse işlem yap değilse yapma. Bu nedenle sonucu alamamaktasınız.

Kodu incelediğimde sayfalar arasında da karşılaştırma yapılmış. Kısa yapılmak istenileni net anlamış değilim. Her iki sayfada bulunan değerler arasında en büyük değer mi yoksa sadece arşiv sayfasında bulunan en büyük değere göre mi sıra verilecek.
Eğer boş satır meselesini çözmek istiyorsanız satır kontrolü kısmını kaldırmanız şart.
 
Üst