Aralıktaki hücreler boş ise kopyala dolu ise bir alta kopyala

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,785
Excel Vers. ve Dili
Microsoft 365 Tr-64
1. Listede 1 den fazla Aidat girilmişse KAYDET e basınca hepsi için aynı işlem mi yapılacak?
2. Bir sonraki adımda tarih hangi aya aitse o ayın altına kaydetsin diyecek misiniz?
3. Yanlışlıkla 2 sefer kaydetmesin diye bir önlem almak isteyecek misiniz?
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
1. Listede 1 den fazla Aidat girilmişse KAYDET e basınca hepsi için aynı işlem mi yapılacak?
2. Bir sonraki adımda tarih hangi aya aitse o ayın altına kaydetsin diyecek misiniz?
3. Yanlışlıkla 2 sefer kaydetmesin diye bir önlem almak isteyecek misiniz?
1- aidat listesinde birden fazla hücreye tarih ve aidat miktarı girip kaydetme işlemi yaparsa daha iyi olur ama sizi uğraştıracak ise tek giriş de olabilir
2- tarih hangi aya ait ise oraya DEĞİL öğrencinin ay kısmında ki boş olan ilk hücreye kaydedecek
sanırım şu kod olacak denediğimde hep bir sonraki sütundaki hücreye kopyalama yapıyor
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0, 1).Select '(0,1) olduğu zaman sütunlar için olur.
Loop

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
3- evet aynı veriyi 2 kez kaydetmemesi gerekiyor ben onun için şöyle birşey düşünmüştüm en basit kayıt işleminden sonra o 2 sütundaki verileri tamamen silecektim ama siz daha profesyonel birşey yapabilirsiniz
4- malum makro olunca geri düğmesi çalışmıyor mesela en son aidat bilgilerini kaydettiğim öğrencinin yanlış olduğunu anladım böyle bir durum da son yapılan işlemi geri almak için de kaydet butonu yanına geri al butonu eklememiz mümkün müdür
 
Son düzenleme:
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
HatalıKayıt değişkeni Public olarak tanımlandığı için Sıfırlanması gerekiyordu. Atlamışım. Şöyle bir ilave yapın

C++:
Sub Kaydet()
    HatalıKayıt = False 'İlave Satır
    Set Sh1 = Worksheets("KAYIT")
    Set Sh2 = Worksheets("TOPLU LİSTE")
Sayın nextlevel konu benim de ilgimi çektiği için takip ediyorum dosyayı inceliyorum şöyle bir sorunla karşılaştım. TC no 11 rakam girdiği halde kabul etmiyor. Sadece sizin yazdığınız no ile kayıt ediyor hatta sizin yazdığınız numaranın son rakamını değiştirdiğim halde yine hata veriyor. İkincisi ise hep aynı TC No ile kayıt ettiği için mükerrer kayıt oluyor. Bu sorunu giderebilirseniz ben de ufak değişiklikler yapıp kendi dosyamda kullanmak istiyorum. Teşekkürler.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,785
Excel Vers. ve Dili
Microsoft 365 Tr-64
TC no 11 rakam girdiği halde kabul etmiyor
.TC No girilirken kontrol ediliyor, onun bir algortiması var ve kodların içinde çözümü mevcut.

TC No ile kayıt ettiği için mükerrer kayıt oluyor
Mükerrek TC için bir kontrol oluşturmadım. Bilahare onu ekleyeceğim.
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
.TC No girilirken kontrol ediliyor, onun bir algortiması var ve kodların içinde çözümü mevcut.


Mükerrek TC için bir kontrol oluşturmadım. Bilahare onu ekleyeceğim.
diğer sayfalardaki kişi aramayı TC ile yapacak isek mükerrer TC kontrolü olması gerekmiyor mu
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,785
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sayın quter24
Benim verdiğim kodları değiştirmiş, excel sayfalarını da değiştirmişsiniz. Sayfa koruma koymuş, kayıt sayfasını da sabitlemişsiniz.
Ben şimdi kendi kodlarımda nasıl düzeltme yapacağım ???
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,785
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sevgili m.gur
İkincisi ise hep aynı TC No ile kayıt ettiği için mükerrer kayıt oluyor
C++:
Sub MukerrerKontrol()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim Kontrol As Integer
    ' Yeni kayıt için girdiğiniz hücre misal olarak Sayfa1 A1 hücresi olsun
    ' Kayıtlarınız olduğu yer Sayfa2 ve TC no olan sütun da B sütunu olsun
    ' Sayfa2 de 1.satır başlık varsayıyorum, TC ler ve kayıtlar 2.satırdan başlıyor
    
    Set Sh1 = Worksheets("Sayfa1") '.Sayfa1..TC değerini girdiğiniz ve orda kayıt prosedürünü başalatacağınız sayfa adı
    Set Sh2 = Worksheets("Sayfa2") '.Sayfa2..Mevcut TC lerin kaydolduğu sayfa
    
    SonKayıt = WorksheetFunction.Max(Sh2.Range("B" & Application.Rows.Count).End(xlUp).Row, 2)
    Kontrol = WorksheetFunction.CountIf(Sh2.Range("B2:B" & SonKayıt), Sh1.Range("A1"))
    If Kontrol > 0 Then MsgBox "Bu TC No daha önce kayıt edilmiş)": Exit Sub
    '....
    ' Burdan itibaren mükerrer durumu yoksa olan kaydet ya da diğer kodlarınız
End Sub
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
Sayın quter24
Benim verdiğim kodları değiştirmiş, excel sayfalarını da değiştirmişsiniz. Sayfa koruma koymuş, kayıt sayfasını da sabitlemişsiniz.
Ben şimdi kendi kodlarımda nasıl düzeltme yapacağım ???
evet haliyle sizin dosyanız üzerinde bir kaç değişiklik yapmıştım
BUNLAR
1- toplu liste de her yaş grubuna ait öğrencileri a dan z ye sırala,
2- ayrıca sınıf isinlerinin olduğu sayfalardaki öğrencileri de a dan z ye sırala,
3-eğer kayıtlı herhangi bir öğrenci silinirse sıra numarasını otomatik değiştir gibi
4- sizin de dediğiniz gibi sayfa koruma ve hücre dondur işlemleri var bir de
doğal olarak da yazdığınız bazı kodlar değişmiş olabilir o yüzden kusuruma bakmayı sizin bana gönderdiğiniz dosyanın en son halini link olarak veriyorum o dosya üzerinden gerekli değişiklikleri yapmanız mümkün mü acaba sizi uğraştırdığım için ayrıca mahçup oldum size karşı

KAYIT GÜNCEL
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
Sayın NextLevel mükerrer kontrolunu ilave edip kontrol ettirdim sorun yok. Asıl sorun şu; TC numarası sizin yazdığınız örnek TC no sundan başka hiç bir şekilde farklı bir numara girişini kabul etmiyor. Hatalı TC no diye mesaj veriyor. Kodları inceledim fakat hiç anlamadığım bir kod şekli ilk defa gördüm anlayamadım kodları da. Kusuruma bakmayın asıl soru sahibiyle aranıza girmiş oldum kafanızı karıştırdım özür dilerim. İyi çalışmalar.
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
Sayın NextLevel mükerrer kontrolunu ilave edip kontrol ettirdim sorun yok. Asıl sorun şu; TC numarası sizin yazdığınız örnek TC no sundan başka hiç bir şekilde farklı bir numara girişini kabul etmiyor. Hatalı TC no diye mesaj veriyor. Kodları inceledim fakat hiç anlamadığım bir kod şekli ilk defa gördüm anlayamadım kodları da. Kusuruma bakmayın asıl soru sahibiyle aranıza girmiş oldum kafanızı karıştırdım özür dilerim. İyi çalışmalar.
modül 1 içindeki kaydet isimli kodu aşağıdaki gibi güncellerseniz sorun ortadan kalkıyor
Sub Kaydet()
HatalıKayıt = False 'İlave Satır
Set Sh1 = Worksheets("KAYIT")
Set Sh2 = Worksheets("TOPLU LİSTE")
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
Bende hata hala devam ediyor...
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
Bende hata hala devam ediyor...
benim en son verdiğim linkteki excel dosyası üzerinde yapabilir misiniz değişikliği ben sıkıntısız olarak kullanıyorum şu an eğer TC kimlik no hatalı ise uyarı alıyorum TC kimlik no yu düzeltince hata mesajı ortadan kalkıyor
 
Katılım
9 Temmuz 2004
Mesajlar
427
Excel Vers. ve Dili
Office 2007 Tr & Office 2019 Tr
Değişen bir şey olmadı.. Hata devam ediyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,785
Excel Vers. ve Dili
Microsoft 365 Tr-64
O Geçerli bir TC mi ?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,785
Excel Vers. ve Dili
Microsoft 365 Tr-64
Oradaki kontrol mükerrerlik değil, TC nin geçerli olup olmaması,
Mükerrerlik için de yukarıda bir kod yazmıştım. Mesaj=27
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
Hayır rastgele yazdım.. Hayali yani.
TC kimlik numaraların aşağıda anlatıldığı gibi belli bir kuralı vardır siz rastgele rakamlar kullandığınız için hata alıyorsunuz sanırım
  • TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
  • 11 hanelidir.
  • Her hanesi rakamsal değer içerir.
  • İlk hane 0 olamaz.
  • 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 10. haneyi verir.
  • 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10′a bölümünden kalan, yani Mod10′u bize 11. haneyi verir.
 
Üst