• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Birleşik giriş kutusu (activex denetimli) eklemek istiyorum yardım lütfen

  • Konbuyu başlatan Konbuyu başlatan osm87
  • Başlangıç tarihi Başlangıç tarihi
Katılım
25 Eylül 2011
Mesajlar
119
Excel Vers. ve Dili
2003-2007-2010 türkçe
Arkadaşlar ekteki excell dosyasının içerisinde anlatım yaptım birleşik giriş kutusu eklemek istiyorum ama hazırlanmış olan programın içerisinde uyarlanması lazım program dili olan bir arkadaşımız yardımcı olabilirmi lütfen
 

Ekli dosyalar

Merhabalar.

Maksadınız, İÇERİR mantığıyla D6'dan itibarenki tabloda FİLTRE uygulamak ise açılır liste yerine METİN KUTUSU kullanmak lazım.

Açılır listeyi silip yerine bir metin kutusu ekleyin (ben eklediğimde TextBox6 adını aldı, kod'da da o şekilde kullandım) .
YAZI sayfasının kod bölümündeki Private Sub Worksheet_Change(ByVal Target As Range) kod blokunu silip yerine aşağıdaki kodları yapıştırın.
Kod:
[B]Private Sub TextBox[COLOR="red"]6[/COLOR]_Change()[/B]
On Error Resume Next
a = TextBox[B][COLOR="red"]6[/COLOR][/B].Value
Range("A5:D" & [D65536].End(3).Row).AutoFilter Field:=4, Criteria1:="*" & TextBox[B][COLOR="red"]6[/COLOR][/B].Value & "*"
If a = "" Then
Selection.AutoFilter Field:=4
End If
[B]End Sub[/B][SIZE="1"]

[/SIZE][B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
If Intersect(Target, [D2]) Is Nothing Then Exit Sub
Dim y As Worksheet: Set y = Sheets("YAZI")
TextBox[B][COLOR="red"]6[/COLOR][/B] = ""
Call LİSTELE
[B]End Sub[/B]
Metin kutusuna yazacağınız metin, içerir mantığı ile D sütununda filtre uygular.
 
Son düzenleme:
ömer bey verdiğiniz kodu uyguladım filitreleme yapıyor ama benim istediğim veri doğrulama yapılan kısımı kaldırıp combobox koymak veri doğrulamada hücreye tıklamadan aşağıya açılır kısım aktif olmuyor. Ama activex denetimli combobox kullanım açısından daha kolay sağ tarafında aşağıya açılır listenin butonu bulunuyor istersek oraya tıklayıp harf sırasına göre yetki başlıklarını görüyoruz istersek direk oradan dört aylık yazdıkmı dört aylık bordro işlemleri başlığı geliyor oradan seçtiğimizde de dört aylık bordro işlemleri altındaki yetkileri görüp seçerek işlemimize devam ediyoruz. Anlatabildimmi tam olarak bilmiyorum ama kısaca yazı sayfasında yetkilerin bulunduğu d2 hücresinin veri doğrulamasını kaldırıp combobox (ActiveX denetimli) koymak
 
Son düzenleme:
Anladım, şimdi bilgisayar başında değilim, bir saate kadar cevap yazarım.
 
Merhabalar.

Belgeniz ekte.
Belge içerisinde açıklamalar yazdım, okuyunuz.
.
 

Ekli dosyalar

Ömer Bey elinize sağlık güzel olmuş ancak tespit edebildiğim birkaçtane hata var;
1. pdf e dönüştür dedikten sonra A sütunundaki bilgileri silerken B sütunundaki bilgileri silmiyor.

2. D2 hücresindeki comboboxa tıkladığımda yetki başlığını yazmak için backspace ile sildiğimde runtime error hatası veriyor. Debug ile baktığımda
a = WorksheetFunction.Match(l.Cells(ComboBox1.ListIndex + 1, 1), l.Range("1:1"), 0) kısmında hata olduğunu söylüyor.

3. Yine comboboxa tıklayıp mouse ile yetki adını seçip (kelimenin üstü mavi olarak işaretli hale gelen yer) direk kelime yazdığımda mesela doğrudan alım yetkisini yazarken doğ yazıyorum "dogrudan alim" çıkıyor ama yazmaya devam ettiğimde D3 hücresine kelimenin devamını yazıyor.

4. comboboxda scroll tuşu ile aşağı yukarı kaydırma yapabilirmiyiz?

D2 deki comboboxa tıkladığımda metin girme aktif olsa mesela G yazsam
Genel sağlık, güvence gibi içerisinde g ile başlayan yetki başlıklarını açsa sonrada üzerine mouse ile gelip mesela güvenceye tıklasam onun altındaki yetkiler gözükse bu şekilde bir kod ile comboboxu düzenleme imkanımız varmı Ömer Bey
 
Son düzenleme:
Tasarım modu'na geçtikten sonra;
-- ComboBox'a sağ tıklayıp özelliklerini açın ve açılan listedeki MatchEntry özelliğini 1- fmMatchEntryComplete şeklinde değiştirin.
-- YAZI sayfasının kod bölümündeki Private Sub ComboBox1_Change kısmındaki kod'u silip yerine aşağıdaki yapıştırın.
Kod:
Private Sub ComboBox1_Change()
Dim l As Worksheet: Set l = Sheets("LİSTE")
Dim y As Worksheet: Set y = Sheets("YAZI")
sony = y.[D65536].End(3).Row
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

If OptionButton2 = True And ActiveCell.Column < 4 Then Exit Sub
If ComboBox1.ListIndex = 0 Then
    y.Range("D6:D" & sony) = ""
    y.Cells(5, 4) = "YETKİ LİSTESİ"
    Exit Sub
End If

y.Range("D6:D" & sony) = ""
y.Cells(5, 4) = "YETKİ LİSTESİ"
On Error Resume Next
a = WorksheetFunction.Match(l.Cells(ComboBox1.ListIndex + 1, 1), l.Range("1:1"), 0)
sonl = l.Cells(65536, a).End(3).Row

For k = 2 To sonl
    Cells(k + 4, 4) = l.Cells(k, a)
Next

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Pdf olayına hiç bakmamıştım, onun için de yine YAZI sayfasının kod bölümündeki Private Sub CommandButton2_Click başlığı olan kod bölümünde End Sub'dan önce yeşil renkli 'ComboBox1 = ""satırından sonraki kısmı silip aşağıdakini yapıştırın.
Kod:
y.Range("A6:D300").ClearContents
y.Range("A6:D300").ClearComments
y.Cells(5, 1) = "TALEP EDİLEN YETKİLER"
y.Cells(5, 4) = "YETKİ LİSTESİ"
OptionButton2 = True
y.Cells(3, 7) = 2
y.Cells(4, 4).Activate

Bildiğim kadarıyla açılır listede yazılan harfi içeren satırları getirme diye birşey mümkün değil, belki de ben bilemiyorum.
 
Açılır liste bu haliyle şöyle kullanılabilir;
-- Klasik sağ taraftaki OK işaretine fareyle tıklayıp, açılan listeden seçim yapmak.
-- Örneğin G harfine basıp (bu sırada G harfiyle BAŞLAYAN ilk veriyi getirir) AŞAĞI OK veya YUKARI OK ile listedeki seçim değiştirilebilir.
 
Ömer Bey söylediklerinizi yaptım çok güzel oldu öncelikle çok teşekkür ederim comboboxdan yetki seçiyorum mesela güvence yetkisi altında listeleniyor daha önce texbox içerisinde filitre uygulamasını göstermiştiniz onu ekledim programa sıralanan yetkilerin alt tarafta uzun olan yetkilerin kolay bulunması için ama hata veriyordu CALL LİSTELE satırını sildim hata gitti ancak textbox filitresindeyken aşağıya açılır listeden seçiyorum yetkiyi eklemiyor textbox içeriğini silip tıkladığımda ekliyor excell dosyasını ekledim nerede hata yapıyorum acaba sizide çok uğraştırdım biliyorum ama bu sefer son olacak inşallah program bitti sayenizde
 

Ekli dosyalar

Merhaba.
-- Private Sub Worksheet_SelectionChange(ByVal Target As Range) kodundaki Call EKLE satırından ÖNCE aşağıdaki satırı ekleyin,
Kod:
Selection.AutoFilter Field:=4
-- Private Sub Worksheet_Change(ByVal Target As Range) kodunu silin.
 
Bir şeyi unutmuşum;
Private Sub ComboBox1_Change() kodunun sonlarında; Application.Calculation = xlCalculationAutomatic satırından önce de aşağıdaki iki satırı ekleyin.
Kod:
TextBox6 = ""
Selection.AutoFilter Field:=4
Sanırım böylece sorun kalmamış olur.
 
Ömer Bey elinize sağlık çok güzel oldu teşekkür ederim yardımlarınız için son bir sorum var tasarım modundayken sayfalar gözükmüyor sayfaları göstermenin bir yolu varmı ne yaptıysam ulaşamadım o sayfaları hani ilerde değişiklik yapmak istersek sayfalarda nerden açacam orayı onu bilemedim
 
ESC tuşuyla tam ekrandan çıkın,
--Sol üst köşede EXCEL SÜMGESİ
--excel seçenekle
--gelişmiş
-- altlarda "sayfa sekmelerini göster" kutusunu işaretleyin.
İşinizi bitirince tersini yapın, GÖRÜNÜM menüsünden
--kılavuz çizgi
-- formül çubuğu
-- satır/sütün başlıkları
kutucuklarından işaretli olanların işaretini kaldırın, TAM EKRAN moduna geçin, TASARIM MODUndan çıkın, kaydet, kapat , yeniden açarak kontrol edin.
Cep telefonundan ancak bu kadar anlatabildim.
 
Ömer bey A1 hücresi ve D4 hücresini kilitlemek istiyorum SGK logosu ile Sarı renkli satır silinmesin diye daha doğrusu sayfada birşey silmelerini istemiyorum çalışanların. A1 hücresini kilitliyorum y.Range("D2").Interior.ColorIndex = 3 satırında hata alıyorum sayfanın hiçbir yerinde A1 hücresi dışında kilitli hücre yok. comboboxdan yetki başlığı seçtikten sonra D6 hücresinden itibaren açılan yetkilere tıkladığımda da Selection.AutoFilter Field:=4 satırında hata alıyorum. Run time error (end ve debug uyarısı olarak çıkan hata) hatası alıyorum. A1 hücresi dışında yapılan işlemde yok neden öyle bir hata veriyor anlayamadım.
 
Belgenizi son haliyle yükler misiniz onun üzerinde bakayım en iyisi.

Ancak şunları da net ifade edin;
-- kullanıcı hangi hücreleri seçebilir/seçemez,
-- kullanıcı hangi hücrelerde değişiklik yapabilir/yapamaz.
.
 
Ömer Bey dosyayı yükledim. A1 hücresinde bulunan SGK logosu ve D4 hücresi silinemiyecek. Yani personel için silinebilecek birşey olmasın yada değişiklik yapamasın. sayfayı koru yaptım ancak A1 hücresi haricinde hiç bir yeri kitlemediğim halde yine de error verdi.
 

Ekli dosyalar

Tekrar merhaba.

Yeni belge ekte.

Belgeye sayfa koruma uygulanmıştır.
Kodlara (tüm sayfalar ve Module1) bakıp sayfa koruma şifresini değiştiriniz.
Mevcut şifre 123.

İyi günler dilerim.
 

Ekli dosyalar

Ömer Bey Çok teşekkür ederim ellerinize sağlık
 
Estağfurullah, sorun değil de, istekler sonradan değişince kodlar bence biraz gereksiz uzun ve karışık oldu.
Çünkü her yeni istekte kodlar sıfırdan düşünülmeyip ilave If GoTo Then vs. satırlarıyla ihtiyaç çözüldü, tabi parça parça.
Belge sıfırdan ele alınıp kodlar düzenlenebilir aslında, müsait zamanım olursa bakmaya çalışırım.
İyi günler dilerim.
 
Ömer Bey programın texbox kısmında arama yaptığımızda filitre uygulamıyor yazmış olduğumuz yazılarda gözükmüyor kodlarda bir bozulmamı oldu acaba ?
 
Geri
Üst