UserForm Uygulaması Hakkında Yardım

Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Merhabalar, bu foruma üye olduğumdan bu yana çok desteğinizi gördüm ve sayenizde kendimi excel konusunda orta seviye denecek kadar ilerlettim. Bunun için öncelikle tüm excel.web.tr yönetici ve üyelerine teşekkür ediyorum.

Soruma gelecek olursak, burdan edindiğim bilgiler ve yardımlar doğrultusunda oluşturduğum excel dosyasını 1 tık ileri götürüp userform şeklinde yapmak istedim. Fakat hazırlamış olduğum dosyada bulunan veri sayfasında formüller aracılığıyla yapmış olduğum sorgulamaları userform'a aktarma konusunda sıkıntılar yaşadım.

Daha önce burada paylaştığım dosyalar üzerinde verilen örnekleri geliştirerek oluşturduğum bu dosyayı yine sizlerin yardımınızla userform mantığıyla devam ettirmek istiyorum.

Yardımcı olacak kişilerden ricam İhbarlar sekmesinde yapılan işlemleri userform üzerine taşıma konusunda bir örnek yapmalarıdır.



Amacım resimdeki gibi bir form oluşturmak, girilen verileri alt bölümde listelemek, girilen sıra numarasına göre verileri düzenleyebilmek ve üstteki butonlar aracılığıyla sayfalar arası geçiş yapabilmek istiyorum.

Excel dosyasını linkte veriyorum. Yardımlarınız için şimdiden teşekkürler.

Dosya Linki: https://mega.nz/#!HkRgyJjD!AT7U2UKFl1dOiECM1PAzG8m7kcg2Kk39RxVeL-tQz1Q
 
Katılım
3 Aralık 2014
Mesajlar
213
Excel Vers. ve Dili
Microsoft Excel 2007
Merhabalar sayın dnmtnk ; çalışmanız oldukça başarılı. Userform üzerine almak için tereddüt etmeden kendiniz yapabilirsiniz bunu. Eğer akşam üstü vaktim kalır ise size yardımcı olmaya çalışırım.Sayfalar arası geçişinizi CommandButton değilde MultiPage açarak yaparsanız çok daha sağlıklı olur.
İncelemeniz ile rahat bir şekilde kendinize uyarlayabileceğiniz bir dosya koyuyorum. İyi çalışmalar.

Advanced Userform
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Merhabalar sayın dnmtnk ; çalışmanız oldukça başarılı. Userform üzerine almak için tereddüt etmeden kendiniz yapabilirsiniz bunu. Eğer akşam üstü vaktim kalır ise size yardımcı olmaya çalışırım.Sayfalar arası geçişinizi CommandButton değilde MultiPage açarak yaparsanız çok daha sağlıklı olur.
İncelemeniz ile rahat bir şekilde kendinize uyarlayabileceğiniz bir dosya koyuyorum. İyi çalışmalar.

Advanced Userform
Öncelikle bu kadar hızlı bir şekilde cevap verdiğiniz için teşekkür ederim. Göndermiş olduğunuz dosyayı şuan çalıştığım için çok detaylı inceleyemiyorum. Fakat kafamdaki ilk soru şu oldu; benim hazırlamış olduğum dosyada veri doğrulama kullanılarak Mahalle seçiyorum ve seçilen mahalleye göre Sokak Adı listeleniyor. Bunu userform üzerine uygularken nasıl yapmalıyım acaba?

Yani en azından İhbarlar sayfası için elimde bir örnek olursa diğerlerine uygulamakta sorun yaşayacağımı sanmıyorum.

Bende akşam müsait olduğumda vermiş olduğunuz dosyayı detaylı olarak inceleyerek denemeler yapacağım. Teşekkürler :)
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Mahalle - Sokak adları tamamdır.
Dosyanız aşağıdaki linktedir.:cool:

DOSYAYI İNDİR
........
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Sağolun arkadaşlar, şimdilik bu 2 dosyanın bana ciddi faydaları olacak. Dosyayı düzenledikten sonra son halini ve eksiklerimi paylaşırım. Elinize emeğinize sağlık.
 
Katılım
28 Temmuz 2015
Mesajlar
88
Excel Vers. ve Dili
ingilizce ve türkçe
Bir örnekte ben vereyim.
Ben bu form üzerinden yaptım kendi formlarımı bana fikir vermişti umarım sizede yararlı olur
 

Ekli dosyalar

Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Bir örnekte ben vereyim.
Ben bu form üzerinden yaptım kendi formlarımı bana fikir vermişti umarım sizede yararlı olur
Vermiş olduğunuz eki Altın Üyeliğim olmadığından ötürü yükleyemiyorum. Rica etsem dosyayı farklı bir yere yükler misiniz?
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Mahalle - Sokak adları tamamdır.
Dosyanız aşağıdaki linktedir.:cool:

DOSYAYI İNDİR
........
Sayın Orion1, vermiş olduğunuz dosya gayet güzel sorunsuz fakat şöyle bir sorum olacak;

ComboBox1 değiştiğinde seçilen mahalle adına göre ComboBox2'ye sokak isimleri geliyor.

ComboBox3'e de yine ComboBox1'de seçili olan mahalleye göre site/bina isimlerini listeletmek istiyorum.

Site bina isimleri data sayfasındaki Z sütununda bulunuyor.

Mahalle - Sokak için verdiğiniz kod
Kod:
Private Sub ComboBox4_Change()
Dim i As Long, sonsat As Long, sh As Worksheet
ComboBox5.Clear
Set sh = Sheets("DATA")
sonsat = sh.Cells(Rows.Count, "T").End(xlUp).Row
For i = 3 To sonsat
    If sh.Cells(i, "S").Value = ComboBox4.Value Then
        ComboBox5.AddItem sh.Cells(i, "T").Value
    End If
Next i
If ComboBox5.ListCount > 0 Then ComboBox5.ListIndex = 0
End Sub
Bu koda nasıl bir ekleme yaparsam combobox3 te data sayfasındaki z sütununu sokaklarda olduğu gibi listeletebilirim?
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,654
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Çalışmanızı dikkatle takip ediyorum güzel bir çalışma elinize sağlık son halini çok merak ediyorum
 
Katılım
3 Aralık 2014
Mesajlar
213
Excel Vers. ve Dili
Microsoft Excel 2007
Merhaba sayın dnmtnk ; bu sorunuzun cevabını size özelden yolladığım dosya ile yaklaşık 1 ay önce vermiş olduğumu hatırlıyorum sanki... Gelen kutunuzu tekrar kontrol ederek dosyaya bakabilir misiniz ??
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Merhaba sayın dnmtnk ; bu sorunuzun cevabını size özelden yolladığım dosya ile yaklaşık 1 ay önce vermiş olduğumu hatırlıyorum sanki... Gelen kutunuzu tekrar kontrol ederek dosyaya bakabilir misiniz ??
Merhabalar TEGCreative,
Göndermiş olduğun userform dosyasını aldığımda hata vermişti ve dosya çalışmamıştı. Sanırım hatanın neden olduğunu farkettim ve şuan hatamı düzelttim. Uyardığın için teşekkür ederim. En kısa zamanda düzenlenmiş halini burdan paylaşacağım.

Emeğine sağlık üstad teşekkür ederim.
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Arkadaşlar bir süre önce açmış olduğum konuda ufakta olsa ilerleme kaydetmiş bulunmaktayım. Sayın TEGCreative paylaşmış olduğu Advanced Userform uygulamasını editleyerek yol katetmeye çalışıyorum.

Şimdiye kadar yapmış olduğum düzenlemelere gelecek olursak;

- MultiPage eklendi
- Sayfa görseli düzenlendi
- Tarih textboxu koşula bağlandı, gün aralığı 01-31, ay aralığı 01-12 olarak düzenlendi. Yılı kendisi 16 olarak yazıyor. Bunu koşula bağlamayı denedim fakat yılın ilk hanesi 1 dışında girilmesin dediğimde diğer rakamlar da girilebildiği için böyle bişey yaptım.
- Aynı şekilde saat formatınıda düzenledim. Saat aralığı 00-23, dakika aralığı 00-59 şeklinde düzenlendi.
- Abone Adı kısmına otomatik büyük harf girişi eklendi
- Telefon No kısmına sadece rakam girilmesi ve telefon formatına dönüştürmesi sağlandı
- Comboboxlar veri hücrelerine bağlandı
- Mahalle - Sokak - Bina ve İhbar Konusu - İhbar Alt Konusu birbirleri ile ilişkilendirildi.

Yardım Almam Gereken Diğer Konular:
- Listbox yerine Listview kullanma konusunda yardım istiyorum. Excel 2013 TR 64 bit kullanıyorum. Listview penceresini bulamadım.
- Listview penceresinde listelenen Tarih 01.01.16 şeklinde, Saatlerin de 23:30 şeklinde listelenmesini nasıl sağlayabilirim?
- İhbar Açıklaması kısmına yazılan mesaj kutuya sığmadığı takdirde kaydırma çubuğu çıkacak şekilde nasıl yapılabilir? İnternet sayfalarında kullanılan messagebox gibi yani.
- Mahalle Adı, Sokak Adı, İhbar Özeti, İhbar Konusu ve İhbar Alt Konusu comboboxlarında listelenen verilerin dışında manuel olarak başka birşey yazılmaması için ne gibi bir yöntem izlemeliyim? Çünkü bazen o listenin dışında manuel olarak yazılan bazı şeyleri de kaydeden arkadaşlar oluyor bunu engellemem gerek.

Ayrıca ek olarak Abone adı (textbox5) kısmına şuan rakam ve karakter de girilebiliyor. Ben rakam ve karakter girilmesini istemiyorum. Burada büyük harf girilmesini sağlayan kod olduğundan sadece harf girilebilmesi için gereken kodu bununla birlikte nasıl kullanabilirim?

Aynı şekilde abone tel no (textbox6) sadece rakam girilebilmesi ve telefon formatında olabilmesi için 2 farklı kodu ayrı ayrı kullandım. Bunları bir arada tek bir change içinde düzenleyebilmek mümkünmüdür?
Kod:
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox6_Change()
If Len(TextBox6.Text) = 3 Then
TextBox6.Text = Chr(40) & TextBox6.Text & Chr(41) & " "
End If
If Len(TextBox6.Text) = 9 Then
TextBox6.Text = TextBox6.Text & Chr(45)
End If
TextBox6.MaxLength = 14
End Sub
 

Ekli dosyalar

Katılım
3 Aralık 2014
Mesajlar
213
Excel Vers. ve Dili
Microsoft Excel 2007
Merhaba dnmtnk ; yazdıklarını sırasıyla cevaplamak istiyorum.

Listview hakkında hiçbir bilgim yok. O konularda yardımcı olamayacağım.
Textbox boyutlandırması hakkında bildiğim kadarıyla excel vba üzerinde yapılamıyor dediğin gibi. Fakat yazdığın yazıya göre boyutlandırmak mümkün. Textbox'un width boyutunu sabit tutup multiline girişini true yaparsan ve textbox'ın change koduna textboxX.height = TextboxX.TextLenght diyerek yazılan yazıya göre büyütür textbox'u. Ne derece işine yarar bilemiyorum benim sunacağım çözüm budur.
Bir diğer konu ise combobox'a veri girişini engellemek. Ona da her bir combobox'un Keypress kodlarına MsgBox ile uyarı verirsin mesela MsgBox " Lütfen listeden veri girişi sağlayınız ! " ve hemen ardına İlgili Combobox'a ait DropDown kodunu çalıştırırsın ki direk liste önüne sunulsun.
 
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Merhaba dnmtnk ; yazdıklarını sırasıyla cevaplamak istiyorum.

Listview hakkında hiçbir bilgim yok. O konularda yardımcı olamayacağım.
Textbox boyutlandırması hakkında bildiğim kadarıyla excel vba üzerinde yapılamıyor dediğin gibi. Fakat yazdığın yazıya göre boyutlandırmak mümkün. Textbox'un width boyutunu sabit tutup multiline girişini true yaparsan ve textbox'ın change koduna textboxX.height = TextboxX.TextLenght diyerek yazılan yazıya göre büyütür textbox'u. Ne derece işine yarar bilemiyorum benim sunacağım çözüm budur.
Bir diğer konu ise combobox'a veri girişini engellemek. Ona da her bir combobox'un Keypress kodlarına MsgBox ile uyarı verirsin mesela MsgBox " Lütfen listeden veri girişi sağlayınız ! " ve hemen ardına İlgili Combobox'a ait DropDown kodunu çalıştırırsın ki direk liste önüne sunulsun.
Anladığım kadarıyla eklentideki resimde olduğu gibi userformda mesaj kutusu bulunmuyor.
Peki textbox5 ve textbox6 için yardımcı olabilme imkanın var mı üstad.
Bunların dışında yollamış olduğun dosyalar ve yönlendirmelerin için de ayrıca teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Tekrar merhabalar,
Userform neredeyse bitti. Şimdi takıldığım noktaları yazacağım yardımcı olursanız memnun olurum arkadaşlar.

1- Textbox'a girilen veri comboboxtan seçilen satıra göre arama yapması (Listview için) çözülemedi.

2- İhbarlar sekmesinde sağ üstte bulunan ilk kayıt - önceki kayıt - sonraki kayıt - son kayıt butonlarını çalıştıramadım.

3- Userformumda multipage kullandım ve multipage sayfalarının tümünü yükleyip 1.sayfayı açması için

Kod:
Private Sub UserForm_Activate()
For siraileac = 0 To 2
MultiPage1.Value = siraileac
Next
MultiPage1.Value = 0
End Sub
Bu kodu kullanıyorum. Fakat bu kodu kullandığımda ise Listviewde listelenen verileri sondan başa doğru (999'dan 1'e doğru) sıralamamı sağlayan

Kod:
ListView1.ListItems(ListView1.ListItems.Count).Selected = True
ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
Bu kod işlevini yapmıyor. Bu sorunu nasıl çözebilirim?

5- Textbox5 te capslock kapalı dahi olsa büyük harf girilsin(şuan var ve çalışıyor) ama rakam veya boşluk dışında karakter girilemesin. Bu konuda da yardıma ihtiyacım var.

6- Değiştir ve Sil işlemlerinde de başarılı olamadım.

7- Comboboxlarda boşlukları kaldıramadım ve comboboxa listede olmayan bir yazı yazılarak kayıt yapılmasını engellemek istiyorum.

SON YAPILAN VE ÇALIŞAN DÜZENLEMELER.
1- Listbox'tan Listview'e geçildi.
2- Listview'e çift tıklandığında verilerde düzenleme yapabilmek için textboxlara ve comboboxlara veri getirilmesi sağlandı.
3- Değiştir butonu aktifken kaydet, sil ve listele butonları pasif hale getirildi. (Değiştir butonuna tıklandığında veriler değişmiyor - çözülemedi.)
4- Listviewde listelenen veriler son kayıttan ilk kayıta doğru sıralandı. (Üstteki 5.maddedeki sorundan dolayı ilk açılışta ilk kayıttan son kayıta sıralıyor fakat listele butonuna basınca son kayıttan ilk kayıta oluyor)
5- Toplam Kayıt sayısı label olarak yazdırıldı.
6- Listviewde seçilen satır numarası formun en üstünde bulunan textbox15 e yazdırıldı. Hangi satır seçilirse o satırın numarası yazıyor.

Bunlarıda tamamlarsam örnek formumu tamamlamış olacağım. Hepinize yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Katılım
3 Aralık 2014
Mesajlar
213
Excel Vers. ve Dili
Microsoft Excel 2007
Tekrar merhabalar,
Userform neredeyse bitti. Şimdi takıldığım noktaları yazacağım yardımcı olursanız memnun olurum arkadaşlar.

1- Textbox'a girilen veri comboboxtan seçilen satıra göre arama yapması (Listview için) çözülemedi.

2- İhbarlar sekmesinde sağ üstte bulunan ilk kayıt - önceki kayıt - sonraki kayıt - son kayıt butonlarını çalıştıramadım.

3- Userformumda multipage kullandım ve multipage sayfalarının tümünü yükleyip 1.sayfayı açması için

Kod:
Private Sub UserForm_Activate()
For siraileac = 0 To 2
MultiPage1.Value = siraileac
Next
MultiPage1.Value = 0
End Sub
Bu kodu kullanıyorum. Fakat bu kodu kullandığımda ise Listviewde listelenen verileri sondan başa doğru (999'dan 1'e doğru) sıralamamı sağlayan

Kod:
ListView1.ListItems(ListView1.ListItems.Count).Selected = True
ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
Bu kod işlevini yapmıyor. Bu sorunu nasıl çözebilirim?

5- Textbox5 te capslock kapalı dahi olsa büyük harf girilsin(şuan var ve çalışıyor) ama rakam veya boşluk dışında karakter girilemesin. Bu konuda da yardıma ihtiyacım var.

6- Değiştir ve Sil işlemlerinde de başarılı olamadım.

7- Comboboxlarda boşlukları kaldıramadım ve comboboxa listede olmayan bir yazı yazılarak kayıt yapılmasını engellemek istiyorum.

SON YAPILAN VE ÇALIŞAN DÜZENLEMELER.
1- Listbox'tan Listview'e geçildi.
2- Listview'e çift tıklandığında verilerde düzenleme yapabilmek için textboxlara ve comboboxlara veri getirilmesi sağlandı.
3- Değiştir butonu aktifken kaydet, sil ve listele butonları pasif hale getirildi. (Değiştir butonuna tıklandığında veriler değişmiyor - çözülemedi.)
4- Listviewde listelenen veriler son kayıttan ilk kayıta doğru sıralandı. (Üstteki 5.maddedeki sorundan dolayı ilk açılışta ilk kayıttan son kayıta sıralıyor fakat listele butonuna basınca son kayıttan ilk kayıta oluyor)
5- Toplam Kayıt sayısı label olarak yazdırıldı.
6- Listviewde seçilen satır numarası formun en üstünde bulunan textbox15 e yazdırıldı. Hangi satır seçilirse o satırın numarası yazıyor.

Bunlarıda tamamlarsam örnek formumu tamamlamış olacağım. Hepinize yardımlarınız için şimdiden teşekkürler.
Merhaba sayın dnmtnk ;

Dosyanızın VBA sında çalışma yapamıyorum listview kullanamadığım/desteklemediği için.Ancak size burdan yardımcı olabileceğim konular var.
1 - Arama kutusunun olduğu kod bloğunu iyi inceleyin. Case ve Select Case satırları var. Siz el ile 3 farklı arama itemi eklemişsiniz combo ya fakat o eklediğiniz itemleri case kodu ile arama yaptığınız textbox ın kodunda eklemeniz gerekiyor zaten hali hazırda var
Kod:
Select Case ComboBox1.Value
Case "SIRA NO"
For sat = 2 To Cells(65536, "A").End(xlUp).Row
Set deg1 = Cells(sat, "A")
If UCase(deg1) Like UCase(deg2) & "*" Then
ListView1.AddItem
ListView1.List(S, 0) = Cells(sat, "A")
ListView1.List(S, 1) = Cells(sat, "B")
ListView1.List(S, 2) = Cells(sat, "C")
ListView1.List(S, 3) = Cells(sat, "D")
ListView1.List(S, 4) = Cells(sat, "E")
ListView1.List(S, 5) = Cells(sat, "F")
ListView1.List(S, 6) = Cells(sat, "G")
ListView1.List(S, 7) = Cells(sat, "H")
ListView1.List(S, 8) = Cells(sat, "I")
ListView1.List(S, 9) = Cells(sat, "J")
ListView1.List(S, 10) = Cells(sat, "K")
ListView1.List(S, 11) = Cells(sat, "L")
ListView1.List(S, 11) = Cells(sat, "M")
ListView1.List(S, 11) = Cells(sat, "N")
ListView1.List(S, 11) = Cells(sat, "O")
ListView1.List(S, 11) = Cells(sat, "P")
ListView1.List(S, 11) = Cells(sat, "Q")
ListView1.List(S, 11) = Cells(sat, "R")
S = S + 1
End If: Next
Kodlarınızda burayı bulun ve buna göre düzenleme yapın.

2 - Commandbutton'larınıza düzenleme yaparak kodları yazın. Bu kodlar listbox için olan kodlardır.
Kod:
Private Sub Cmdbutton1_Click() ' Bir Sonraki
If TextBox15 = 0 Then
Exit Sub
End If
If ListBox1.ListIndex = 0 Then
MsgBox "İlk Kayıt", vbCritical
Exit Sub
Else
TextBox15 = TextBox15 - 1
With Me.ListBox1
        .ListIndex = .ListIndex - 1
        
    End With
End If
End Sub

Private Sub Cmdbutton2_Click() ' Bir Önceki
If ListBox1.ListIndex = ListBox1.ListCount - 1 Then
MsgBox "Son Kayıt", vbCritical
Exit Sub
Else
TextBox15 = TextBox15 + 1
With Me.ListBox1
        .ListIndex = .ListIndex + 1
End With
End If
End Sub

Private Sub Cmdbutton3_Click() 'İlk Kayıt
ListBox1.ListIndex = 0
End Sub

Private Sub Cmdbutton4_Click() 'Son Kayıt
ListBox1.ListIndex = ListBox1.ListCount - 1
End Sub
3 soru için herhangi bir bilgim yok eğer bilgi sahibi olursam size de memnuniyet ile iletirim.

5- Textbox da boşluk ve sadece harf muhabbeti için ;
Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("A") To Asc("Z")
Case Asc("a") To Asc("z")
Case Asc(".")
Case Asc("-")
Case Asc(":")
Case Asc("/")
Case Asc("=")
Case Asc("-")
Case Asc(" ")
Case Else
KeyAscii = 0
End Select
End Sub
Ben bu kodla sonuç alıyorum. Deneyiniz.

6 - Değiştir ve sil işlemleri için sizden ricam önceden size iletmiş olduğum Advanced Userform isimli dosyayı orjinal halde özellikle incelemenizdir.

7- Combo'lara veri girişini engellemek için lütfen userform initialize kodlarında
Kod:
ComboboxX.Style =2
yazarsanız direk combobox a tıkladıklarında liste açılır. Boşlukları kaldırmak derken neyi kastettiğinizi anlamadım.

Kolay gelsin iyi çalışmalar. Saygılarımla.
 
Son düzenleme:
Katılım
20 Şubat 2012
Mesajlar
114
Excel Vers. ve Dili
Excel 2013 TR
Merhaba sayın TEGCreative verdiğiniz düzenlemeleri yaptıktan sonra size resimli şekilde göndereceğim. Sorunlarımı resimli olarak anlatacağım.
 
Üst