• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü VBA ile düşeyara kullanımı

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Asterix123

Yeni Üye
Kullanıcı Bilgileri
Katılım
21 Tem 2023
Mesajlar
24
Aldığı beğeni
2
Excel Versiyonu
Office 365 EN
Konuyu Başlatan
Selamlar,
"Hasarlar" sayfası "A" sütununda değişiklik oldukça son girilen değeri "Araclar" sayfasında "A" sütununda bulup getirmesi.
Ekli dosyada yaptığım bir çalışma mevcut fakat çok hata ve gereksiz tekrarlar yapıyor.

Aslında her işlemin bir sırası var bir işlem tamamlanmadan diğerine geçmemesi gerekiyor.
En önemlisi hata olduğu zaman diğer işlemler durmalı hata giderildikten sonra kodlar kaldığı yerden çalışmaya devam etmeli.

Yaptığım şeyler içime sinmedi, hatalarımı düzeltmek için değerli desteklerinizi esirgemezseniz sevinirim.

Teşekkürler.
 

Ekli dosyalar

  • Raporlar Final 01.xlsm
    56.2 KB · Gösterim: 5
Çözüm
Sayın Asterix123 mümkünse sayfa kodlarını hiç kullanmayın.
Ben yine de sizin sayfa kodunuzda düzenleme yaptım.
Bir de buton ekledim.
Hangisi uyarınıza gelirse onu kullanın.
Kolay gelsin.
Merhaba, Kodlarınızı inceleyince;
a) 1 adet end if fazladan koymuşsunuz bu hata veriyordu sildim.
b) Application.EnableEvents=False satırını if şartının dışına, Application.EnableEvents=True satırını ise if şartının içerisine yerleştirmişsiniz.
şart sağlanmadığından Application.EnableEvents=False olarak kalıyor ve uygulama çalışmıyordu.
Application.EnableEvents=True satırını if dışına aldım.
c) Hasar sayfası "A" sütununa yazılacak plakaları veri doğrulama ile Araçlar sayfasından çektirdim. Listeden seçim yapabilirsiniz.
(Veri doğrulama istemezseniz, A sütunundan bir hücreyi seçip; üst menüden Veri>Veri Doğrulama seçtikten sonra açılan pencere içerisinden Bu değişiklikleri aynı ayarlara sahip diğer hücrelerin tümüne uygula seçeneğini seçtikten sonra, Tümünü Sil butonunu tıklayabilirsiniz.)

Şu anda çalışıyor görünüyor.

Dosyayı inceleyiniz.
 

Ekli dosyalar

  • Raporlar Final 01.xlsm
    45.1 KB · Gösterim: 2
Ellernize sağlık,

Ancak Application.EnableEvents ve çok sağlıklı sonuçlar çıkartmıyor.
Örneğin; "J" sütuna tarih girmediğiniz zaman yani text girildiğinde uyarı veriyor ve kodlar Application.EnableEvents nedeni ile kitleniyor çalışmıyor. Dosyayı aç kapa yapmak gerekiyor.

Diğer taraftan If Intersect(Target, [A:A]) Is Nothing Or Target.Row < 2 Then Exit Sub başlayan kodlar mantıklı çalışmıyor.
"Cells(Target.Row, "B") = Sheet1.Range("B" & c.Row)" kod çalıştıktan sonra alt satırındaki kodu çalıştırmak diğer yerine If Not Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub kodlarını çalıştırdıktan sonra Cells(Target.Row, "C") = Sheet1.Range("C" & c.Row) kodu çalıştırıyor. Daha yalın bir kod yazabilmek için araştırıyorum. şöyle birşey =VLOOKUP($A$11;Araclar!A:G;{2;3;4;5;6;7};0)
 
Yapmak istediğim;

Hasarlar sayfası çalıştığım sayfa / Araclar sayfası verilerimin olduğu sayfadır.

1. Hasarlar sayfası A sütununda herhangi bir hücresine plaka girdiğim zaman Araçlar sayfasında eşleşeni bulup B;C;D;E;F;G sütunlarına verileri yazdıracak (VLOOKUP($A$11;Araclar!A:G;{2;3;4;5;6;7};0) gibi...
Ancak birden fazla aynı plakadan bulur ise uyarı verecek ve end sub yaparak işlemi sonuçlandıracak.

Devamında..

2. "I" sütununda ki yazı proper formülü uygulanacak

3. "J" Sütununa tarih girilmesini zorunlu kılacak. Tarih girilmemiş ise uyarı çıkacak ve tarih girilmesini isteyecek.

4. Tarih girildikten sonra "K" sütununa ay yazacak Text;activecell;("mmmm") bu formatta olmalı ama
Tarih girildikten sonra "L" sütununa yıl yazacak Text;activecell;("yyyy") bu formatta olmalı ama
 
Sayın Asterix123 mümkünse sayfa kodlarını hiç kullanmayın.
Ben yine de sizin sayfa kodunuzda düzenleme yaptım.
Bir de buton ekledim.
Hangisi uyarınıza gelirse onu kullanın.
Kolay gelsin.
 

Ekli dosyalar

  • Raporlar Final 01.xlsm
    59.2 KB · Gösterim: 7
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst