Iki Satirin Comboboxta Cikmasi



Merhaba arkadaslar yukaridaki gibi bir listeniz oldugunda bunu veri dograla ile listeledeiginizi dunusunun, ve asagidaki verimdeki gibi bunlari secebildiginizi varsayin..

Peki bunu yaparken yukaridaki gibi sadece sayilari gormek yerine istediginizde hucreye cift tiklayarak bunlari asagidaki gibi 2 sutun halinde listelesin istemezmiydiniz..

Bahsettigim gibi ornegimiz yukaridaki gibi list icerisine aldigimiz tanimlari tek bircomboboxta gosmetmek.. Yukaridaki gorunume nasil ulastigimizi inceleyelim..

Oncelikle bu verilerimize isimler veriyoruz..

Burada gordugunuz gibi toollist ve tolllistfull olmak uzere iki ad tanimlamasi kullanmisiz bu ad tanimlarindan ilki tollist sadece rakamlarin aldigi hucreleri kapsarken diger ad tanimimiz tolllistfull ise tum tabloyu yani bu iki sutunu kapsamaktadir..

Oncelikle ikinci resmimizdeki gorunume yani sadece list olan hucre gorunumune gelmek icin data menusunden veri dogrulama / list secenegini kullanrak ve referansini tolllist gostererek hucrelerimizde list bulunmasini sagliyoruz..

Birazdan vericegim kodlarida ekledikten sonra olusan combobox`imizin dizayn modda iken ozelliklerine girip resimde gordugunuz gibi ColumnCount ozelligini 2 sutun sectigimizde 2 yapiyoruz..

Visual Basic Kodlari

Option Explicit
Private Sub TempCombo_KeyDown(ByVal _
KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
Select Case KeyCode
Case 9
ActiveCell.Offset(0, 1).Activate
Case 13
ActiveCell.Offset(1, 0).Activate
Case Else
'Birsey Yapma
End Select
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Dim wsList As Worksheet
Set ws = ActiveSheet
Set wsList = Sheets("Degerler")
Cancel = True
Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1) & "Full"
With cboTemp
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 15
.Height = Target.Height + 5
.ListFillRange = str
.LinkedCell = Target.Address
End With
cboTemp.Activate
End If
errHandler:
Application.EnableEvents = True
Exit Sub
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet
Application.EnableEvents = False
Application.ScreenUpdating = False
If Application.CutCopyMode Then
GoTo errHandler
End If
Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
.Top = 10
.Left = 10
.Width = 0
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
End With
errHandler:
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub
End Sub

Ornek dosyamizi inceleyiniz..

2kolonlu Combobox

Yazar: mmustafaaslan

2004 yilindan itibaren ozel bir sirketin finans departmaninda calismaktadir. Kendini excel, visual basic kullaniminda gelistirmis olan yazarimiz; Meslegi geregi SAP konusunda ileri derecede bilgilidir.

“Iki Satirin Comboboxta Cikmasi” için 1 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


1 + 2 =