Koşula göre macroyu seçmek

tahkurth

Altın Üye
Katılım
26 Ağustos 2019
Mesajlar
27
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
05-10-2027
Saygıdeğer ustadlarım ufak bir sorunum var ve bunun içinden çıkamadım.Kitap1314 de UserForm1 çalıştırılıp TextBM textbox ına girdiğim değer ile module1 deki macroyu çalıştırmak istiyorum.

Command butonuna tıkladığımda yapmak istiyorum. Module1 de 3 adet macro var ve Sayfa2 de bir hücreye değer atıyor. Her macro farklı bir değer atıyor. TextBM textbox ısana hangisini yazarsam o değer atamasını ve adet textindeki miktar kadar seçili macronun değerini çarpıp sayfa2 D4 hücresine yazdırmasını istiyorum.

Değerli zamanınızı ve yardımlarınızı bekliyorum.
 

Ekli dosyalar

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
2,4,6 sabit olduğunun düşünülerek aşağıdaki şekilde;

C++:
Private Sub CommandButton1_Click()
    Select Case TextBM.Value
        Case 2
            Sheets("Sayfa2").Range("D4").Value = 2 * TextBAdet.Value
        Case 4
            Sheets("Sayfa2").Range("D4").Value = 4 * TextBAdet.Value
        Case 6
            Sheets("Sayfa2").Range("D4").Value = 6 * TextBAdet.Value
        Case Else
            MsgBox "Lütfen geçerli bir değer giriniz."
    End Select
End Sub

Aşağıdaki kısımda değere göre Call'dan sonra yazılan makroyu çağırır.

C++:
Private Sub CommandButton1_Click()
    Select Case TextBM.Value
        Case 2
            Call Makroadı1
        Case 4
            Call Makroadı2
        Case 6
            Call Makroadı3
        Case Else
            MsgBox "Lütfen geçerli bir değer giriniz."
    End Select
End Sub
 

tahkurth

Altın Üye
Katılım
26 Ağustos 2019
Mesajlar
27
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
05-10-2027
Sayın
RBozkurt
Cevabınız için teşekkürler. İstediğimi tam ifade edemedim sanırım. textbox a kayıtlı macrolardan birinin adını yazacağım ve butona bastığımda bu macronun değerini adet textbox ında değerle çarpıp sayfa2 d4 yazacak. Bu mümkünmü dür?
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Sayın
RBozkurt
Cevabınız için teşekkürler. İstediğimi tam ifade edemedim sanırım. textbox a kayıtlı macrolardan birinin adını yazacağım ve butona bastığımda bu macronun değerini adet textbox ında değerle çarpıp sayfa2 d4 yazacak. Bu mümkünmü dür?
n500 makrosu çalışınca S2D4'e 2 yazar.Burda 2,4,6 değeri sabitse 2. bir makroya gerek yok diye yukarıdakini ekledim.

n500 yazınca Sayfa2 D4 = 2 * Textboxa yazılan adet
n700 yazınca Sayfa2 D4 = 4 * Textboxa yazılan adet
n900 yazınca Sayfa2 D4 = 6 * Textboxa yazılan adet
İstenilen bu şekilde mi ?


Kendi makro kodlarınız.
Kod:
Sub n500()
Sheets("Sayfa2").Range("D4").Value = 2
End Sub

Sub n700()
Sheets("Sayfa2").Range("D4").Value = 4
End Sub

Sub n900()
Sheets("Sayfa2").Range("D4").Value = 6
End Sub
 

tahkurth

Altın Üye
Katılım
26 Ağustos 2019
Mesajlar
27
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
05-10-2027
Private Sub CommandButton1_Click()
Select Case TextBM.Value
Case "n500"
Call Module1.n500
Sheets("Sayfa2").Range("D5").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value
Case "n700"
Call Module1.n700
Sheets("Sayfa2").Range("D5").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value
Case "n900"
Call Module1.n900
Sheets("Sayfa2").Range("D5").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value
Case Else
MsgBox "Lütfen geçerli bir değer giriniz."
End Select
End Sub





bu şekilde bir düzenleme yapabildim ama sonucu aynı hücre içersinde hem hesaplanan değer hemde sonuç olarak veremedim ayrı bir hücrede referansladım. Aynı hücrede yapabilirsem 70 adet macro çalıştırmam daha kolay olabileceğine inanıyorum.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Bu şekilde olması daha mantıklı. Tek makro ile istediğiniz değere istediğiniz işlem atanır. 70 tanede olsa 100 tanede olsa girilecek değere işlemi atarsınız.
Aşağıya diğer kodu ekledim. O işlem çok zahmetli olur her işleme 1 makro eklemek...
C++:
Private Sub CommandButton1_Click()
    Select Case TextBM.Value
        Case "n500"
            Sheets("Sayfa2").Range("D4").Value = 2 * TextBAdet.Value
        Case "n700"
            Sheets("Sayfa2").Range("D4").Value = 4 * TextBAdet.Value
        Case "n900"
            Sheets("Sayfa2").Range("D4").Value = 6 * TextBAdet.Value
        Case Else
            MsgBox "Lütfen geçerli bir değer giriniz."
    End Select
End Sub

Aşağıdaki kod istediğiniz şekilde makro çağrılır ardından o hücredeki değer ile yazılan değer çarpılıp tekrar aynı hücreye yazar.

C++:
Private Sub CommandButton1_Click()
    Select Case TextBM.Value
        Case "n500"
            Call n500
            Sheets("Sayfa2").Range("D4").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value

        Case "n700"
            Call n700
            Sheets("Sayfa2").Range("D4").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value

        Case "n900"
            Call n900
            Sheets("Sayfa2").Range("D4").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value

        Case Else
            MsgBox "Lütfen geçerli bir değer giriniz."
    End Select
End Sub
 
Son düzenleme:

tahkurth

Altın Üye
Katılım
26 Ağustos 2019
Mesajlar
27
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
05-10-2027
Bu şekilde olması daha mantıklı. Tek makro ile istediğiniz değere istediğiniz işlem atanır. 70 tanede olsa 100 tanede olsa girilecek değere işlemi atarsınız.
Aşağıya diğer kodu ekledim. O işlem çok zahmetli olur her işleme 1 makro eklemek...
C++:
Private Sub CommandButton1_Click()
    Select Case TextBM.Value
        Case "n500"
            Sheets("Sayfa2").Range("D4").Value = 2 * TextBAdet.Value
        Case "n700"
            Sheets("Sayfa2").Range("D4").Value = 4 * TextBAdet.Value
        Case "n900"
            Sheets("Sayfa2").Range("D4").Value = 6 * TextBAdet.Value
        Case Else
            MsgBox "Lütfen geçerli bir değer giriniz."
    End Select
End Sub

Aşağıdaki kod istediğiniz şekilde makro çağrılır ardından o hücredeki değer ile yazılan değer çarpılıp tekrar aynı hücreye yazar.

C++:
Private Sub CommandButton1_Click()
    Select Case TextBM.Value
        Case "n500"
            Call n500
            Sheets("Sayfa2").Range("D4").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value

        Case "n700"
            Call n700
            Sheets("Sayfa2").Range("D4").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value

        Case "n900"
            Call n900
            Sheets("Sayfa2").Range("D4").Value = Sheets("Sayfa2").Range("D4").Value * TextBAdet.Value

        Case Else
            MsgBox "Lütfen geçerli bir değer giriniz."
    End Select
End Sub

Evet haklısınız. Bu son yazdığınız sornumu halletti. Çok Teşekkürler.
 
Üst