Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 11-02-2018, 11:10   #1
jr1453
Altın Üye
 
Giriş: 11/02/2018
Şehir: Ankara
Mesaj: 9
Excel Vers. ve Dili:
Excel 2016 VBA
Unhappy Textboxda ki veriyi veritabanında aratmak

Arkadaşlar merhaba. Bi nöbet listem var ve listeyi düşey ara ve yatay ara ile düzenledim.

Daha sonra bunu bi userforma bağlayıp, veri ekleyebildiğim filan güzel bi arayüz yaptım. Textbox'a veri girip düşeyaranın bağlı olduğu hücreye bağladım ancak haliyle yazdığım şahısa özel sicil sayısı (düşeyaranın bağlı olduğu unique değer) orda yoksa eğer bana "bu kişi bulunamadı" tarzı bi hata vermesini istiyorum. aklıma formülü bir türlü gelmedi, açıkçası yeniyimde.

Yardımlarınızı bekliyorum. Hepinize teşekkür ediyorum.
jr1453 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 11:20   #2
cems
Altın Üye
 
cems kullanıcısının avatarı
 
Giriş: 02/09/2005
Şehir: İstanbul
Mesaj: 1,882
Excel Vers. ve Dili:
office 2003 tr + office 2010 tr 32bit
Varsayılan

Öncelikle foruma hoş geldiniz.

Teorik olarak : aranan veriyi bulan kodların sonunda ve end sub dan önce

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Else
Msgbox" aranan veri bulunamadı "
Deneyin. Ya da bahsettiğiniz kodları taşıyan bir userformu ve atmasyon bir kaç verisi olan olan örnek bir dosyayı hazırlayarak www.dosya.tc. gibi bir dış servera zipleyerek yükleyin, linki de burada paylaşın ki , pratik çözüm de verilebilsin.
cems Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 11:27   #3
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 10,400
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba, foruma hoşgeldiniz.

DÜŞEYARA işlemine ilişkin kodları bilemediğim icin formül mantığına göre cevap vermek istedim. Kodlar da bu mantık üzerine kurulabilir.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
=EĞERHATA(DÜŞEYARA(......);"Bu Kişi Bulunamadı.")
veya
=EĞER(EĞERSAY(...tablonun ilk sütunu... ; ...TextBox metni...)=0;"Bu Kişi Bulunamadı";DÜŞEYARA(...TextBox metni...; ...tablo alanı ...;...sütun indis sayısı...;0))
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosyaupload.com gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 13:08   #4
jr1453
Altın Üye
 
Giriş: 11/02/2018
Şehir: Ankara
Mesaj: 9
Excel Vers. ve Dili:
Excel 2016 VBA
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Merhaba, foruma hoşgeldiniz.

DÜŞEYARA işlemine ilişkin kodları bilemediğim icin formül mantığına göre cevap vermek istedim. Kodlar da bu mantık üzerine kurulabilir.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
=EĞERHATA(DÜŞEYARA(......);"Bu Kişi Bulunamadı.")
veya
=EĞER(EĞERSAY(...tablonun ilk sütunu... ; ...TextBox metni...)=0;"Bu Kişi Bulunamadı";DÜŞEYARA(...TextBox metni...; ...tablo alanı ...;...sütun indis sayısı...;0))
Cevaplarınız için teşekkür ederim. İstediğim dosyanın benzerini yapıp açıklamaları yazdım. Kontrol edip dönüş yapabilir misiniz?
http://s3.dosya.tc/server13/gige8x/deneme.rar.html
jr1453 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 13:18   #5
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 10,400
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Chrome tarayıcısı güvenlik ile ilgili bir uyarı vererek, verdiğiniz harici bağlantı adresi üzerinden örnek dosyanın indirme işlemini durduruyor.
İsterseniz bir de dosyaupload.com paylaşım sitesini deneyin.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosyaupload.com gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 13:25   #6
jr1453
Altın Üye
 
Giriş: 11/02/2018
Şehir: Ankara
Mesaj: 9
Excel Vers. ve Dili:
Excel 2016 VBA
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Chrome tarayıcısı güvenlik ile ilgili bir uyarı vererek, verdiğiniz harici bağlantı adresi üzerinden örnek dosyanın indirme işlemini durduruyor.
İsterseniz bir de dosyaupload.com paylaşım sitesini deneyin.
https://www.dosyaupload.com/9sxH
buyurunuz
jr1453 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 13:59   #7
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 10,400
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Tekrar merhaba.

Gerçek userform ve kodlarınızı paylaşmadığınıza göre ancak aşağıdaki gibi bir cevap verebiliyorum.

İstediğiniz birçok şekilde yapılabilir. Aklıma ilk gelen aşağıdaki gibi bir kod.
(TextBox'un özelliklerinden ControlSource satırını boş bırakmanızda yarar var sanırım.)

Ayrıca sicil numarasının 3 karakter şeklinde standart olduğunu varsayarak,
3 karakter yazıldıktan sonra işlem yapılması ( <<<=== şeklinde işaretledim ) için bir satır ekledim.
Doğru sicil numarası yazıldığında Sayfa2'deki formüllerin yerine gerekli veriler 3'üncü satırına DEĞER olarak yazdırılır,
yanlış sicil numarası yazılmışsa 3'üncü satırdaki veriler silinir.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub TextBox1_Change()
If Len(TextBox1) < 3 Then Exit Sub  '<<<===
If WorksheetFunction.CountIf(Sheets("veritabanı").Range("A2:A" & _
    Sheets("veritabanı").Cells(Rows.Count, 1).End(3).Row), CLng(TextBox1)) = 0 Then
    Sheets("Sayfa2").Range("A3:E3") = ""
    MsgBox "Yazılan sicil numarası veritabanında yok. Yeniden deneyiniz.", vbCritical
Else
    satir = WorksheetFunction.Match(CLng(TextBox1), Sheets("veritabanı").Range("A2:A" & _
            Sheets("veritabanı").Cells(Rows.Count, 1).End(3).Row), 0) + 1
    Sheets("Sayfa2").[A3] = CLng(TextBox1)
    Sheets("Sayfa2").[B3] = Sheets("veritabanı").Range("B" & satir)
    Sheets("Sayfa2").[C3] = Sheets("veritabanı").Range("C" & satir)
    Sheets("Sayfa2").[D3] = Sheets("veritabanı").Range("D" & satir)
    Sheets("Sayfa2").[E3] = Sheets("veritabanı").Range("E" & satir)
    MsgBox "Yazdığınız sicil numarası, veritabanının" & vbLf & _
    satir & " numaralı satırında kayıtlı olup B:E sütun aralığına gerekli bilgiler yazdırıldı.", vbInformation
End If
End Sub
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosyaupload.com gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 14:24   #8
cems
Altın Üye
 
cems kullanıcısının avatarı
 
Giriş: 02/09/2005
Şehir: İstanbul
Mesaj: 1,882
Excel Vers. ve Dili:
office 2003 tr + office 2010 tr 32bit
Varsayılan

Kod ile uygulamada , veritabanı sayfasını kontrol eden userform üzerinde ara ve kaydet tuşları yerleştirildi.

Ekteki dosyayı kontrol ediniz .

http://s3.dosya.tc/server14/1u8eb9/v...amadi.rar.html

Yine de , cevap gönderdikten sonra gördüğüm Sayın Baran'ın gönderdiği çözümün benim önerimden daha sağlıklı olduğunu da eklemem gerek Şiir kitabı okur gibi oluyor insan ; kodları okurken ..

Bu mesaj en son " 11-02-2018 " tarihinde saat 14:44 itibariyle cems tarafından düzenlenmiştir....
cems Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 14:45   #9
cems
Altın Üye
 
cems kullanıcısının avatarı
 
Giriş: 02/09/2005
Şehir: İstanbul
Mesaj: 1,882
Excel Vers. ve Dili:
office 2003 tr + office 2010 tr 32bit
Varsayılan

Yanlış nesne ayarlarınızı farketmemiştim , sorun çıkardığını farkedince mevcut userform1 i silip yeni bir userform1 üzerine nesneleri ve kodları ekledim .

Bu şekilde yenilenen yapıyı bir önceki cevabımdaki linki iptal ederek yeniden yükledim

Bu mesaj en son " 11-02-2018 " tarihinde saat 14:59 itibariyle cems tarafından düzenlenmiştir....
cems Çevrimdışı   Alıntı Yaparak Cevapla
Eski 11-02-2018, 16:14   #10
jr1453
Altın Üye
 
Giriş: 11/02/2018
Şehir: Ankara
Mesaj: 9
Excel Vers. ve Dili:
Excel 2016 VBA
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Tekrar merhaba.

Gerçek userform ve kodlarınızı paylaşmadığınıza göre ancak aşağıdaki gibi bir cevap verebiliyorum.

İstediğiniz birçok şekilde yapılabilir. Aklıma ilk gelen aşağıdaki gibi bir kod.
(TextBox'un özelliklerinden ControlSource satırını boş bırakmanızda yarar var sanırım.)

Ayrıca sicil numarasının 3 karakter şeklinde standart olduğunu varsayarak,
3 karakter yazıldıktan sonra işlem yapılması ( <<<=== şeklinde işaretledim ) için bir satır ekledim.
Doğru sicil numarası yazıldığında Sayfa2'deki formüllerin yerine gerekli veriler 3'üncü satırına DEĞER olarak yazdırılır,
yanlış sicil numarası yazılmışsa 3'üncü satırdaki veriler silinir.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub TextBox1_Change()
If Len(TextBox1) < 3 Then Exit Sub  '<<<===
If WorksheetFunction.CountIf(Sheets("veritabanı").Range("A2:A" & _
    Sheets("veritabanı").Cells(Rows.Count, 1).End(3).Row), CLng(TextBox1)) = 0 Then
    Sheets("Sayfa2").Range("A3:E3") = ""
    MsgBox "Yazılan sicil numarası veritabanında yok. Yeniden deneyiniz.", vbCritical
Else
    satir = WorksheetFunction.Match(CLng(TextBox1), Sheets("veritabanı").Range("A2:A" & _
            Sheets("veritabanı").Cells(Rows.Count, 1).End(3).Row), 0) + 1
    Sheets("Sayfa2").[A3] = CLng(TextBox1)
    Sheets("Sayfa2").[B3] = Sheets("veritabanı").Range("B" & satir)
    Sheets("Sayfa2").[C3] = Sheets("veritabanı").Range("C" & satir)
    Sheets("Sayfa2").[D3] = Sheets("veritabanı").Range("D" & satir)
    Sheets("Sayfa2").[E3] = Sheets("veritabanı").Range("E" & satir)
    MsgBox "Yazdığınız sicil numarası, veritabanının" & vbLf & _
    satir & " numaralı satırında kayıtlı olup B:E sütun aralığına gerekli bilgiler yazdırıldı.", vbInformation
End If
End Sub
Çok teşekkür ederim şimdi deneyeceğim, ancak yanlış anlamadı isem 3. satırın komple silinmesi durumu nasıl oluyor? eğer satır silinir ise orda ki formüllerde silinecektir
jr1453 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 06:17


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Rampa- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Şişli Avukat- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kağıt Bardak- Çorlu Havuz- Çorlu Havuz- Çorlu Perde Yıkama- Okul Danışmanlık- ADR'li taşıma kabı imalatı- Mekanik Tesisat- Çorlu Grafik Tasarım- Çorlu Sondaj- Çorlu Etüt- Futbol Cafe- Beylikdüzü Temizlik- Çorlu Kurs- Çorlu Ders- İzmit Mimar- Hurda Bakır Kablo- Hurda Bakır Kablo- Çorlu Pronet- Çorlu Yönetim- Çorlu Apartman Yönetimi- Çorlu Marangoz- Çorlu Avukat- Çorlu Su Arıtma- Çorlu Kompresör-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden