• DİKKAT

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

Listeden Müşteri Seçimi ve Başka Sekmeye Yönlendirme

Katılım
19 Temmuz 2009
Mesajlar
59
Excel Vers. ve Dili
2003 - türkçe
S.a. "liste" sekmesinde b4:b100 aralığında müşteri isimleri ve a4:a100 aralığında da müşteri numaraları mevcut. Her müşteri numarasıyla da ayrı ayrı sekmeler mevcut. "Müşteri Bul" butonuna basıldığında bir pencere (boş bir satır ve yanında bir ok) açılsın. Oka basıldığında aşağıya doğru alfabetik sıra ile müşteriler listelensin. Mesela Koray DURMAZ seçilecek. K harfine tıklandığında K harfi ile başlayan bütün müşteriler görülsün. Müşteri seçilip Tamam butonuna basıldığında bu isme karşılık gelen numaraya sahip sekme açılsın. Bütün bu işlemleri yapmak için neler yapmak gerek? Şimdiden ALLAH razı olsun...
 
Örnek dosyayı hazırladım. İlgilendiğiniz için teşekkür ederim.
 

Ekli dosyalar

Örnek dosyayı hazırladım. İlgilendiğiniz için teşekkür ederim.

merhaba
yapılışı adım adım tarif edeyim siz de sıfırdan yapın.
önce bir tane userform ve bir tane module oluşturun.
module'nin içine A-Z'ye sıralamak için
Kod:
Dim MyForm As Variant
Option Base 1
Sub OrganizeComboBox()
Dim noData, İ, J, K, m As Integer
Dim MyComboArray()
Dim MyRevizedComboArray()
Dim MyData As Range
Dim SortedColl As New Collection
Dim Swap1, Swap2 As Variant
'
For Each MyControl In UserForms(MyForm).Controls
i = 0
J = 0
K = 0
If TypeName(MyControl) = "ComboBox" Then
noData = MyControl.ListCount
ReDim MyComboArray(noData)
For Each MyData In Range(MyControl.RowSource)
i = i + 1
MyComboArray(i) = MyData
Next
For m = 1 To UBound(MyComboArray)
If Not WorksheetFunction.IsNumber(MyComboArray(m)) Then
MyComboArray(m) = UCase(MyComboArray(m))
MyComboArray(m) = Replace(MyComboArray(m), "Ç", "Ç")
MyComboArray(m) = Replace(MyComboArray(m), "İ", "İ")
MyComboArray(m) = Replace(MyComboArray(m), "Ğ", "Ğ")
MyComboArray(m) = Replace(MyComboArray(m), "Ş", "Ş")
MyComboArray(m) = Replace(MyComboArray(m), "Ü", "Ü")
MyComboArray(m) = Replace(MyComboArray(m), "Ö", "Ö")
End If
Next
For i = 1 To UBound(MyComboArray)
For J = i + 1 To UBound(MyComboArray) - 1
If MyComboArray(i) = MyComboArray(J) Then
MyComboArray(i) = ""
End If
Next
Next
MyControl.RowSource = ""
For i = 1 To UBound(MyComboArray)
If MyComboArray(i) <> "" Then
K = K + 1
ReDim Preserve MyRevizedComboArray(K)
MyRevizedComboArray(K) = MyComboArray(i)
End If
Next
i = 0
J = 0
For i = 1 To UBound(MyRevizedComboArray)
SortedColl.Add MyRevizedComboArray(i)
Next
For i = 1 To SortedColl.Count - 1
For J = i + 1 To SortedColl.Count
If SortedColl(i) > SortedColl(J) Then
Swap1 = SortedColl(i)
Swap2 = SortedColl(J)
SortedColl.Add Swap1, before:=J
SortedColl.Add Swap2, before:=i
SortedColl.Remove i + 1
SortedColl.Remove J + 1
End If
Next J
Next i
For i = 1 To SortedColl.Count
MyControl.AddItem SortedColl(i)
Next
For i = SortedColl.Count To 1 Step -1
SortedColl.Remove i
Next
End If
Erase MyComboArray
Erase MyRevizedComboArray
Next
End Sub
bu kodu yazın.
userform'un içine bir tane textbox - bir tane combobox ve bir tanede commanbutton oluşturun ve kod bölümüne
Kod:
Private Sub CommandButton1_Click()
TextBox1 = WorksheetFunction.Index(Sheets("liste").Range("A2:A1000"), WorksheetFunction.Match(ComboBox1.Value, Sheets("liste").Range("B2:B1000"), 0), 1)
Sheets(TextBox1.Text).Select
Unload Me
End Sub
Private Sub UserForm_Initialize()
MyForm = Me.Name
ComboBox1.RowSource = "liste!B2:B1000"
OrganizeComboBox
End Sub
bu kodu yapıştırın.

son olarak module'nin alttarafına userform'u açmak için
Kod:
Sub [COLOR="red"]aç[/COLOR]()
UserForm1.Show
End Sub
bu kodu yapıştırın.

ve sayfa'daki müşteri bul'a sağ tuş tıklayın. makro ata deyin çıkan menüden olana çift tıklayın.
sonra deneyin.
örnek dosya ekte
önemli not : kodlar (ç)alındır.
 

Ekli dosyalar

ALLAH razı olsun kardeşim. Çok güzel olmuş, ellerine sağlık. Yalnız bir şey söylemeyi unuttum. Numarası 100 den büyük olanlar başka dosyada. İsme karşılık gelen numara 100 den küçük ise aynı dosyadaki sekmelere, 100 den büyük ise diğer dosyadaki sekmelere yönlendiren bir kod yazılabilir mi? Teşekkür ederim.
 
peki sizce bunu nasıl yapabilirim
görmeden etmeden ezbere mi bir işlem yapmalıyım
 
Haklısınız. Örnek dosyaları gönderiyorum. Teşekkür ederim.
 

Ekli dosyalar

Haklısınız. Örnek dosyaları gönderiyorum. Teşekkür ederim.

merhaba
deneme4.xls dosyasını D:\ sürücüne atın
ve userform'da bulunan commanbutton'un kodlarını
Kod:
Private Sub CommandButton1_Click()
TextBox1 = WorksheetFunction.Index(Sheets("liste").Range("A2:A1000"), WorksheetFunction.Match(ComboBox1.Value, Sheets("liste").Range("B2:B1000"), 0), 1)
If TextBox1 < 5 Then
Sheets(TextBox1.Text).Select
Else
Workbooks.Open ("[COLOR="Red"]D:\deneme4.xls[/COLOR]")
Sheets(TextBox1.Text).Select
End If
Unload Me
End Sub
bununla değişin. bakalım istediğiniz oluyor mu_?
 
Geri
Üst