Çözüldü Tekrar Eden Kayıtlardan En Doğrusuna Ulaşmak

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi

merakli

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Sayfalar Arası Verileri Karşılaştırıp Yanlışları Düzenleme başlıklı konumuzda iki problemin olduğuna dair bir konu açmıştık ve @Ömer BARAN her zamanki gibi destekleriyle ilk problemi çözmüştük.
İnşallah son problemimizde hallolur ve de başka hesapta olmayan problemler çıkmaz.

Kısaca açıklamaya çalışırsam

Önceki Örneğe DATA_NUMARA_DEGISTIR() sub'ını ekleyerek ikinci aşılması gereken konuya geçiyorum.
Senaryo şu şekildeydi.
Şuanki Data sayfasındaki 103. satırdaki öğrenci Yılmaz ONUK ilk kayıtta numarasını doğru yazmıştı yani 21173
Ancak Data sayfasındaki 106. satırdaki yine aynı öğrenci Yılmaz ONUK bu defa ikinci bir kayıt girdi ve numarasını yanlış yazmıştı.
Bizde DATA_NUMARA_DEGISTIR() ile bunu tespit edip yanlış olan numarayı Liste sayfasından kontrol ederek doğrusunu yazdırmış ve kırmızı renkle belirtmiştik.
Yani artık 106. satırda 21173 numarası var. Ama bu durumda 2 tane farklı kayıt ortaya çıktı. (bu kayıtlar bazen iki değil üç, dört hatta beş defa tekrar edebiliyor)
Bundan sonra ikinci senaryo geliyor.
Bu aynı numaraya ait iki farklı cevap var
Bu cevaplar birebir aynıda olabilir ozaman direk bir tanesini silebiliriz.
Ancak birebir aynı değil burada
103. satırdaki cevaplarda 6 doğru 4 yanlış var (Doğru cevaplar Veri!B7:B16 satırlarındadır...)
106. satırdaki cevaplarda 8 doğru 2 yanlış var...
Belki bu öğrenciye ait bir kaç satır daha olabilirdi yani tekrar eden kayıt sayısı iki ile sınırlı değil.
Burada yapılacak tek şey kalıyor
Bu öğrenciye/numaraya ait girilen tüm kayıtlar Veri!B7:B16 satırlarındaki doğru şıklarla karşılaştırılıp en çok doğru sayısı olan kaydın verilerinin Liste sayfasına aktarılmasıdır. Şuan bizim mevcut kodumuz kaç kayıt olduğuna bakmaksızın ilk girilen kaydın verilerini Liste sayfasına aktarıyor.
Silinmese de olur bu kayıtlar.

sorum.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
@merakli

İşlem için ilk ayak internetten Data sayfasına verilerin çekilmesi (bu zaten hazır).
Yanlış numaraların düzeltilmesi de tamam oldu.
Şimdi sıra tekrarlanan (bir önceki aşamadaki değiştirme işleminden sonra elbette) öğrenci satırlarından
en çok doğru olan satırın tespitine ve Liste ve dolayısıyla da sınıf listelerine buna göre aktarım/hesaplamalarınız vs.

Çözüm için; sınıf sayfalarının alt kısmındaki istatistik bilgilerin başlık kısımlarının (birleştirilmiş A:C sütunu hücreleri)
A sütunu boş kalacak şekilde B:C hücreleri birleştirilerek kullanılmasını önereceğim. Amaç da ilgili sınıf sayfasında son öğrenci kaydının satır numarasının bulunması ve bunu da A sütununa göre yapmak uygun gibi duruyor. Tabi siz biçimlendirmelerle yine A:C birleştirmesi varmış gibi (ilgili metinler de soldan girintili gibi durur sadece) gösterebilirsiniz.

1636417868817.webp



İŞLEMLER:

-- Veri Çek
makrosunda, şu satırın sonuna Exit For ekleyin,
If Sheets(i).Name = "Data" Then: Sheets(i).Delete: Exit For

-- Veri Çek makrosunun son kısmı şu hale getirin (silerek veya sol başlarına TEK TIRNAK ekleyerek gereksiz satırları etkisiz hale getirin).
VBA:
You must log in to view content
(9 satır)

-- VBA ekranında bir MODULE ekleyin ve bu module aşağıdaki kodları yapıştırın.
(bir önceki aşamada kullanılan öğrenci numarası düzeltme kodu da burada)

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

-- İşlem tamamdır. Şimdi Veri sayfasındaki VERİ ÇEK düğmesine tıklayın.
Veriler çekilecek, öğrenci numaralarından yanlış olanlar düzeltilecek, mükerrer öğrenciler için en çok doğru olanlar Liste sayfasına ve
not sırasına göre de Liste sayfasından kendi sınıf sayfasına (sınıf sayfalarındaki sıralama vs. formülsüz ) listelenecek. İşlem sonunda bilgilerdirme MsgBox'u göreceksiniz zaten.
Mükerrerler için Data sayfasında geçerli olan satır A:D yeşil font, geçersiz sayılan A:D kırmızı font olarak işaretlenir.

Halledemezseniz/sorun yaşarsanız mesaj yazarsınız.

.
 
Moderatörün son düzenlenenleri:
Çözüm için; sınıf sayfalarının alt kısmındaki istatistik bilgilerin başlık kısımlarının (birleştirilmiş A:C sütunu hücreleri)
A sütunu boş kalacak şekilde B:C hücreleri birleştirilerek kullanılmasını önereceğim. Amaç da ilgili sınıf sayfasında son öğrenci kaydının satır numarasının bulunması ve bunu da A sütununa göre yapmak uygun gibi duruyor. Tabi siz biçimlendirmelerle yine A:C birleştirmesi varmış gibi (ilgili metinler de soldan girintili gibi durur sadece) gösterebilirsiniz.
Sayın @merakli

Bundan önceki cevabımda yer alan ve şimdi alıntıladığım kısımdaki (verdiğim ekran görüntüsündeki olay)
sayfa yapısı değişikliğime gerek olmadığını fark ettim.

Bununla ilgili olarak; yazdığım cevapta verdiğim kodlarda küçük değişiklikler yaptım.
Neleri değiştirdiğimi not almadığım için, şimdi değişikliklere ilişkin cevap yazmak yerine,
önceki cevabımda verdiğim ve YENİ BİR MODULE yapıştırmanızı önerdiğim kodların tümünü güncelleyeyim dedim.
Sayfayı yenileyerek bir önceki cevabımı kontrol ediniz, sayfaya yapısı değişikliğine dair öneri mi de yok sayın.

.
 
@Ömer BARAN bey gece çok geç olduğu ve sabah mesai olduğu için cevap yazamadım.
Şuanda işteyim bakamadım. Akşam inşallah bakayım. Bahsettiğiniz gibi sınıflara gerek yok sadece Liste sayfasından tüm sayfasına aldığınızda gerisi formüllerle halloluyor,
Zaten örnekte olmayan yeni eklediğim bir durum var siz 5. sınıfları dizi olarak almışsınız ancak ben bu yapıyı tüm sınıfları tek dosyayla kullanılır şekle getirmiştim
Şöyle ki Veri sayfasında sınıf seçildiğinde örneğin öğretmen 6. sınıfı seçti diyelim. Verileri getir e bastığında verileri getirmezden önce başka bir Google e-tabloya bağlanıp 6. Sınıf listesini numara ve Ad soyadlarını çekip Liste sayfasına ekliyor sonra bu sınıfın öğrencilerine ait test sonuçlarının olduğu sayfaya yani Veri!C1 e bağlanıp o verileri çekiyor...
Böylelikle hem tek excel ile tüm sınıflara hitap edebiliyorum hem de bir öğrenci değişikliği olduğunda önceki dosyalardı tekrar tekrar güncellemekten kurtulmuş oluyoruz

Akşam eve gidince inşallah orjinal dosyaya uyarlayıp deneyeceğim.

Burada işleyiş şu şekilde ise sorun çıkmayacaktır (Yeni kodlarda)

çekilen veriler Liste sayfasına yazıldığında zaten diğer sayfalar ve Tüm sayfası en yüksek net sayısına sahip olandan en düşüğe göre sıraladığı için o sayfalarda bir şey yapmaya gerek yok gibi şimdilik....
 
Ben belgedeki formüllerden de kurtulunmaya çalışıldığını varsaymıştım.

Ayrıca; Tüm isimli sayfa ile Liste isimli sayfa esas olarak aynı.
Benim kodlamalarımda zaten Tüm isimli sayfa hiç kullanılmıyor.

Tüm isimli sayfaya baktığımda, Liste sayfasında sınıf bazlı (not sıralaması olmadan) olan listenin
NET SAYISI kriterine göre sıralanmış hali olduğunu görüyorum.
Tüm sayfası gerekliyse, formül vs kullanmadan kolaylıkla bu sıralanmış liste oluşturulabilir.

Son cevabınızdaki açıklamaya gelince;
Kodları işlem türüne göre ayrı ayrı oluşturmuştum.
Mükerrer kayıtlardan, en çok DOĞRUnun olduğu satırın Liste aktarılması işlemini yapan kod,
TEK_ISE_DOGRUDAN_DEGILSE_GECERLI_OLANI_BUL_AKTAR isimli makro kodu.
Sadece bu kodu, istediğiniz aşamada çalıştırabilirsiniz.

.
 
@Ömer BARAN bey son bir haftada çok şey kattık bende yaptığım örnekler ve denediğim dosyalar içinde boğuldum gibi hissettim.
Hatta en son güncel dosyayı yanlışlıkla silmişim yeniden onu çalışır hale getirdim ve geç yatıp uyku düzenimizde bozulunca kafamı toparlayamadım henüz

Sizede bahsetme fırsatı bulamamıştım ama siz ilk sorunu çözerken bende excel Liste sayfasına dinamik bir yapı oluşturmuştum.
Şöyle ki
Bu excel dosyası her sınıf için 1 tane yapıyordum çünkü her sınıf seviyesinde öğrenci isim numara vb değişiyordu.
5. sınıflar için bu dosyadan bir tane, altıncı sınıflar için, yedi ve sekizinci sınıflar için çünkü her sınıfın öğrencileri farklıydı.
Tek dosyayla çalışmak adına isimleri google e-tabloya gömdüm ve Veri!$C$3 te yazılan sınıfın listesini e-tablolardan [ sub ListeCek() ] ile çektim sonra da [ sub VeriCek() ] ile de bu öğrencilerin cevaplarını çektim.
Öğrenci listeleri sabit E-tablo linki ve ListeCek() içindedir. Veri!$C$1 de ise öğrenci cevapları listesi her sınıfa göre değiştirilerek çalışıyor... Şuanki link 5. sınıflar için olduğu için Veri!$C$3 ten sınıfı değiştirdiğinizde o seviyedeki sınıf listeleri gelecek ancak onların cevap linki olmadığı için değerlendirmeler çıkmayacaktır....

Şimdi Bizim işleyişimiz şu şekilde devam etsin şeklinde düşünüyorum yapıyı bu kadar hızlı değiştirdiğimizde bünyeye uymadan işlem yapmış oluyoruz ve kontrolü kaybetmeme sebep olabiliyor.

ilk önce alttaki dosyada olduğu gibi (anlaşılması için sizin üstteki önerilerinizi dahil etmedim sadece sınıf sayfalarının en altındaki sütunu boşalttım)

1- ListeCek() ile Veri!$C$3 te eçilen sınıf seviyesinde öğrenci listeleri çekilip Liste sayfasına Sınıf Numara ve Ad Soyad olarak ekleniyor
2 - VeriCek() ile Veri!$C$1 de verilen öğrenci cevapları çekiliyor.

Bundan sonra sizin numara ve çift giriş işlemleri devreye girmeli

oluşan temiz liste Liste sayfasındaki öğrencilerin karşısına yazdırılmalı...


Diğer sayfalar formülle buradan bilgileri almaya devam etsin.

Bu örnek kodlar burada sabit halde ihtiyaç hissettiğimizde ya da ilerleyen günlerde gerek gördüğümüzde ve bu sistem biraz test edildikten sonra onları uygulayalım derim.

Şuan sadece kırmızı renkli yazdığım şekilde uyarlayıvermenizi rica ediyorum.

Kafamı toparlayamadığım ve birazda kırgınlık var korona vb olabilir düşüncesinde olduğum için bir gün kendimi toparlamaya çalışacağım.

yine kendimi iyi hissedersem yazarım.

Her şey için teşekkürler
 

Ekli dosyalar

@merakli
Önce bir uyarı (belki de yedek olsun diye tuttunuz bilemiyorum).
MODULE içerisinde Workseet_Change kodunun bir anlamı/işlevi olmaz.

Ekleme:
Uygula adını verdiğiniz ve Veri sayfasındaki VERİLERİ ÇEK isimli düğmenin ilişkilendirildiği makro kodunda
LİSTE ÇEK makrosu tetiklenmiyor. Anlatımınıza göre; önce ListeÇek, sonra VeriÇek işlemi olduğuna göre;
Uygula isimli makrodaki Call VeriCek satırının hemen üstüne Call ListeCek diye bir satır eklerseniz önce liste çekilir, sonra notlar.

Kodlar:
-- MODULE1'deki DATA_NUMARA_DEGISTIR isimli makro kodunu aşağıdakiyle değiştirip (küçük güncelleme yaptım)
-- MODULE1'deki bu kodun altına aşağıdaki TEK_ISE_DOGRUDAN_DEGILSE_GECERLI_OLANI_BUL_AKTAR isimli makro kodunu ekleyin.
-- MODULE1'deki VeriCek isimli makronun son kısmındaki Call VeriYerlestir satırını silip bu satırın yerine,
Call DATA_NUMARA_DEGISTIR
Call TEK_ISE_DOGRUDAN_DEGILSE_GECERLI_OLANI_BUL_AKTAR

diye iki satır ekleyin. Sanırım istediğiniz tam olarak bu.

Açıklama:
Kodlarda Application.Calculation.... satırlarını pasif bıraktım. Zaten çok büyük bir veri yığını filan olmadığından gerek yok diye düşündüm.
İsterseniz kodlardaki bu satırları aktifleştirebilirsiniz.

Ayrıca; MODULE1'deki VeriYerlestir isimli makronun işi kalmıyor silin veya her satırın sol başına TEK TIRNAK eklenerek etkisiz hale getirin. Dikkat çekmesi bakımından Data sayfasında değiştirilen öğrenci numarası kırmızı font,
mükerrerlerden geçerli olan satır A : D font yeşil, geçersiz olan A : D kırmızı font uygulanır.

VBA:
You must log in to view content
(64 satır)
 
Merhaba @Ömer BARAN Bey,
Geç bakabildim hala korona belirtilerini taşıyorum. Geçen yıl olmuştuk ama tam bir yıl sonra yine beni yokluyor gibi :)

Son mesajınızı cevaplamaya çalışayım.

Önce bir uyarı (belki de yedek olsun diye tuttunuz bilemiyorum).
MODULE içerisinde Workseet_Change kodunun bir anlamı/işlevi olmaz.

ListeCek Sub'ını excel dosyası açıldığında otomatik olarak çekmesi için içini değiştirmek amacıyla eklemiştim orada kalmış.
Ama hala merak ediyorum düğmeye basınca bu sub'ı tetiklemek yerine bu excel dosyası her açıldığında otomatik olarak bunu çalıştırıp listeyi yenilese sanırım daha mantıklı olacak.
Bu şekilde verileri çekerken bekleme süresini de azaltmış olacağım.

Ekleme:
Uygula adını verdiğiniz ve Veri sayfasındaki VERİLERİ ÇEK isimli düğmenin ilişkilendirildiği makro kodunda
LİSTE ÇEK makrosu tetiklenmiyor. Anlatımınıza göre; önce ListeÇek, sonra VeriÇek işlemi olduğuna göre;
Uygula isimli makrodaki Call VeriCek satırının hemen üstüne Call ListeCek diye bir satır eklerseniz önce liste çekilir, sonra notlar.

Buraya yüklemek için hasta halimde oluşturduğum için gözümden kaçmış normalde orada veriCek vardı ListeCek ise VeriCek'in ilk satırındaydı ancak şimdi sizin dediğiniz gibi değiştirdim.


Kodlar:
-- MODULE1'deki DATA_NUMARA_DEGISTIR isimli makro kodunu aşağıdakiyle değiştirip (küçük güncelleme yaptım)
-- MODULE1'deki bu kodun altına aşağıdaki TEK_ISE_DOGRUDAN_DEGILSE_GECERLI_OLANI_BUL_AKTAR isimli makro kodunu ekleyin.
-- MODULE1'deki VeriCek isimli makronun son kısmındaki Call VeriYerlestir satırını silip bu satırın yerine,
Call DATA_NUMARA_DEGISTIR
Call TEK_ISE_DOGRUDAN_DEGILSE_GECERLI_OLANI_BUL_AKTAR

diye iki satır ekleyin. Sanırım istediğiniz tam olarak bu.

Dediklerinizi bu mesajımdaki excel dosyasına uyguladım.
Ancak şöyle bir durum var.
Birden fazla aynı kişiye ait tekrar olduğunda en çok neti olanı alıyor fakat msgbox içinde bu değişikliği yazmıyor


Açıklama:
Kodlarda Application.Calculation.... satırlarını pasif bıraktım. Zaten çok büyük bir veri yığını filan olmadığından gerek yok diye düşündüm.
İsterseniz kodlardaki bu satırları aktifleştirebilirsiniz.
Bu konu hakkında şuan bilgim yok malesef


Ayrıca; MODULE1'deki VeriYerlestir isimli makronun işi kalmıyor silin veya her satırın sol başına TEK TIRNAK eklenerek etkisiz hale getirin. Dikkat çekmesi bakımından Data sayfasında değiştirilen öğrenci numarası kırmızı font,
mükerrerlerden geçerli olan satır A : D font yeşil, geçersiz olan A : D kırmızı font uygulanır.

Sildim.
Dediğiniz gibi Data sayfasında işlem yapılanların renklendirilmesi çok iyi oldu.
Teşekkürler elinize sağlık.

Üstte kırmızı renkle belirttiğim msgbox içinde uyarı vermemesini çözebilirsek sanırım problemimiz kalmayacak.

Bunun dışında ListeCek'i de excel ilk açıldığında otomatik çalıştırdığımızda bir özellik daha eklemiş olacağız inş.
 

Ekli dosyalar

Geçmiş olsun, aman dikkat. @merakli

Bilgisayarda değilim ( belki geç vakit ) .
Son belgeye de bu nedenle bakmadım.
Daha evvel verdiğim kodların (2 numaralı cevapta) en üstünde yer alan 3tane DİM... satırı var, onları yine en üste yerleştirirseniz MsgBox taki eksikliğin düzelmesi gerekir.

Belgeye baktığımda farklı bir şey görürsem yazarım.

.
 
Geçmiş olsun, aman dikkat.
Daha evvel verdiğim kodların (2 numaralı cevapta) en üstünde yer alan 3tane DİM... satırı var, onları yine en üste yerleştirirseniz MsgBox taki eksikliğin düzelmesi gerekir.
Teşekkürler.
Evet değişkenleri sırayla deneyip tanımlıyordum.
İlk değişkeni tanımladıktan sonra diğerlerini eklemeyi unutmuşum.

şuan sadece ListeCek'in excel açıldığında otomatik çalışması kaldı
 
@ömer bey şöyle bir durum farkettim. Data sayfasında öğrenci numarasını hiç yazmamışsada Ad soyadını aratıp bulduğunda numarasını eklese. Yanlış numara ya da boş ise ... gibi bir şartla eklenebilir gibi sanki.

Bir de Ad Soyadı birleştirdiğimiz DATA_NUMARA_DEGISTIR() içinde
VBA:
You must log in to view content
(1 satır)
Ad ve Soyadın başında ve sonunda boşluk varsa onları kaldırıp ilk harfleri büyük harfe çevrilse nasıl olur
 
@merakli
-- Mevcut kodların baş kısmı (Dim satırları) ve Uygula makrosunu şöyle düzenledim.

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

-- Data Numara değiştir makrosunun ilgili kısmı şöyle olsun.

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

-- TEK_ISE_DOGRUDAN_DEGILSE_GECERLI_OLANI_BUL_AKTAR isimli makronun ilgili kısmı da şöyle olsun.

Kod:
You must log in to view content
(4 satır)

-- Yazdığınız "Bir de Ad Soyadı birleştirdiğimiz DATA_NUMARA_DEGISTIR() içinde...." cümlesini anlamadım.
Bu makroda adı soyadı ile ilgili bir değişiklik/güncelleme yok. Belirttiğiniz o satır, numarası bulunamayan öğrencinin gerçek numarası nedir cevabını bulmak için Data sayfasındaki ad soyad birleşimi Liste sayfasında var mı diye kontrol ediliyor sadece.
Kişi varsa da adı soyadı değil öğrenci numarası doğrusuyla değiştiriliyor.
Bu isteğinizi anlayamadım. Bu veriler google sheets'ten çekiliyor, orijinal (kaynağından olduğu gibi alınan) verilerin değişmesini mi istiyorsunuz?

Yukarıda belirttiğim değişiklikleri yaparak bir deneyin bakalım. Ben rastgele veri değişiklikleri yaparak denedim ve sorun görmedim.

.
.
 
-- Yazdığınız "Bir de Ad Soyadı birleştirdiğimiz DATA_NUMARA_DEGISTIR() içinde...." cümlesini anlamadım.
Bu makroda adı soyadı ile ilgili bir değişiklik/güncelleme yok. Belirttiğiniz o satır, numarası bulunamayan öğrencinin gerçek numarası nedir cevabını bulmak için Data sayfasındaki ad soyad birleşimi Liste sayfasında var mı diye kontrol ediliyor sadece.
Kişi varsa da adı soyadı değil öğrenci numarası doğrusuyla değiştiriliyor.
Bu isteğinizi anlayamadım. Bu veriler google sheets'ten çekiliyor, orijinal (kaynağından olduğu gibi alınan) verilerin değişmesini mi istiyorsunuz?

Yukarıda belirttiğim değişiklikleri yaparak bir deneyin bakalım. Ben rastgele veri değişiklikleri yaparak denedim ve sorun görmedim..

Düzenlemeler için teşekkür ederim.

Bazen öğrenci Ad ya da soyadının başına ya da sonuna boşluk bırakarak yazabiliyor. Bu da numaraları Ad Soyad ile karşılaştırırken o kişiyi bulamamasına yol açabilir.

Elbette bu google Sheets den çekerken düzeltilse daha iyi olur.

Bunun nasıl yapıldığını henüz bilmiyorum. Bundan dolayı Google Visualization APIde Gelen Veri Değiştirebiliyormu? başlığını açmıştım.
Böyle bir sorunumuzda var şuanki örnek dosyaya bakarsanız Data sayfasındaki Boş şeklinde cevaplar Liste sayfasına Boş şeklinde geliyor.
Önceki kullandığımız kodlarda bu gelen veri
İf HucreDegeri = "Boş" Then
HucreDegeri = ""
else
...
End if
şekline Boş kelimeleri silinerek Liste sayfasına gönderiliyordu.
Şuanki kodlarımızda bu eksiklik olduğu için analiz tam oluşmuyor.


üstteki bahsettiğiniz işlemleri eklediğim dosyayıda ekliyorum
 

Ekli dosyalar

@merakli
Veriye müdahale olayı veriler çekildikten sonra yani VeriCek makrosunun en sonunda yapılabilir.
BOŞ ibaresinin silinmesi işlemi sadece CEVAP sütunları için mi olmalı (soyadı BOŞ olan biri olursa ne olacak ;) gibi düşünün) ?
 
VeriCek makrosunda End sub satırının hemen üstüne ekleyin.
Baş harflerin büyük olmasını sağlanır başta/sondaki BOŞLUK karakterlerini silinir, CEVAP sütunlarındaki BOŞ lar silinir.

VBA:
You must log in to view content
(9 satır)
 
VeriCek makrosunda End sub satırının hemen üstüne ekleyin.
Baş harflerin büyük olmasını sağlanır başta/sondaki BOŞLUK karakterlerini silinir, CEVAP sütunlarındaki BOŞ lar silinir.

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

@Ömer BARAN Bey
Boşluk olan verinin tüm cevaplarını ya da satırı siliyor gibi
Sadece ilgili yani Boş yazan verinin bulunduğu hücrenin içini temizleyecek
 
Ben denediğimde öyle bir sorun görmedim.
Benim tereddüt ettiğim husus, Ad ve Soyadlarını, baş harfleri büyük, gerisi küçük harf olayıyla ilgili
muhtemelen Türkçe karakter sorunu oluşacaktır.

Bir öğrencenin adı veya soyadı örneğin Ilgın ILICAN ise sonuç Ilgın Ilican, İmranlı IŞIKCAN ise İmranlı Işikcan olarak değişecektir.
Bunu istiyor musunuz, istemiyor musunuz, nasıl bir sonuç istiyorsunuz.

Bu arada çekilen verideki Boş ibareleriyle ilgili olarak, açtığınız diğer konu sayfasındaki çözüm ve
benim bundan önceki verdiğim kod değişiklik önerisi birlikte değerlendirildiğinde, VeriCek isimli makro kodunun
son kısmının şöyle olması lazım demektir (büyük/küçük harf olayıyla ilgili sorumu net cevaplandırırsanız, tekrar kod güncellemesi gerekecektir.

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

.
 
Ben denediğimde öyle bir sorun görmedim.
Benim tereddüt ettiğim husus, Ad ve Soyadlarını, baş harfleri büyük, gerisi küçük harf olayıyla ilgili
muhtemelen Türkçe karakter sorunu oluşacaktır.

Bir öğrencenin adı veya soyadı örneğin Ilgın ILICAN ise sonuç Ilgın Ilican, İmranlı IŞIKCAN ise İmranlı Işikcan olarak değişecektir.
Bunu istiyor musunuz, istemiyor musunuz, nasıl bir sonuç istiyorsunuz.

Bu arada çekilen verideki Boş ibareleriyle ilgili olarak, açtığınız diğer konu sayfasındaki çözüm ve
benim bundan önceki verdiğim kod değişiklik önerisi birlikte değerlendirildiğinde, VeriCek isimli makro kodunun
son kısmının şöyle olması lazım demektir (büyük/küçük harf olayıyla ilgili sorumu net cevaplandırırsanız, tekrar kod güncellemesi gerekecektir.

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

.
Ad soyad ın baş ve sonlarında boşluk varsa onları almak yeterli ancak Türkçe karakterli şekilde bir array ile de değiştirilebilir gibi hani iki dizi oluşturup birine değişecek karakterleri diğerine onların yerine geçecek karakterleri gibi... fakat bu çok önemli değil şu aşamada ama boşluk karakteri olabiliyor küçük bir ihtimal de olsa
 
Üst