• DİKKAT

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

Listbox dan seçilen verinin makroyu çalıştırması

  • Konbuyu başlatan Konbuyu başlatan why35
  • Başlangıç tarihi Başlangıç tarihi
Katılım
21 Nisan 2006
Mesajlar
72
Merhaba Arkadaşlar ,

Daha öncede bu tip bir soru sormuştum ama çalışmadığı için sorumu yinelemek istiyorum.

Listboxsa sıraladığım verilerden herhangi birini seçtiğimde o veriye ait makronun çalışmasını istiyorum.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = [a1] Then
If [a1] = "ali" Then ali
If [a1] = "veli" Then veli
End If
End Sub

Sub ali()
MsgBox "ali makrosu çalıştı"
End Sub

Sub veli()
MsgBox "veli makrosu çalıştı"
End Sub

Şeklinde bir makro vermişti arkadaşımız
Ama bunun çalıştırdığımda ona baglı olan makromun daha ilk satırında
"Range("E1:E8").Select" sarı renkte hata verip makroyu durdurmaktadır.

Nedeni nedir acaba
Saygılarımla
 
listboxtan seçilen verinin makronun adı olduğunu kabul edersek aşağıdaki gibi deneyin.

Kod:
Run ListBox1
 
Sayın Levent Bey ,

Vermiş olduğunu komutu nereye koymam gerekiyor ?

Saygılarımla
 
Sayın levent Bey ,

Oluşturmuş olduğum listbox ı Tasarım Modundan yapmadım ,

Veri - Doğrulama - Liste ' den belirlemiş olduğum hücre aralığından oluşturdum , dolayısı ile bunu nereye koyacağımı anlıyamadım.
Yardımcı olursanız sevinirin.

Saygılarımla
 
Aşağıdaki kodu sayfanın kod sayfasına kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [d10]) Is Nothing Then Exit Sub
Run [d10].Value
End Sub

Not: Çalışması için bir normal modülde ALİ, VELİ...... isminde prosedürler olmalıdır.
 
Sayın Levent Bey ,

Listboxda seçtiğim yazı ile makronun isminin aynı olmaması için ne yapabilirim ,

Çünkü listboxda parantezli , uzun ve farklı karakterde yazılar var.
O yüzden orda seçtiğim hücredeki ile makronun adının aynı olmasını istemiyorum.

Teşekkür ederim.
 
Bu durumda aşağıdaki gibi bir kodlama kullanabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [d10]) Is Nothing Then Exit Sub
Select Case Target
Case "ALİ": makro1
Case "VELİ": makro2
.
.
.
End Select
End Sub
 
Sayın Levent Bey ,

Yardımlarınızdan dolayı çok teşekkür ederim , tam olarak istediğim gibi oldu.

Saygılarımla
 
Geri
Üst