Userformda Fonksiyon Tanımlama / Max Fonksiyonu

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
511
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Merhaba

Bir vba çalışmamda ardışık olarak artan sıra numarası vermek için internette max fonksiyonu kullanımı ile ilgili bir kod buldum. Ve kendi çalışmamda bir bölümde düzgün olarak işliyor. Ancak kodu biraz geliştirmeye çalışıyorum.

Aşağıda n = YeniSayi("120.01.") şeklinde olan satırda parantez için manuel olarak giriliyor. Ben parantez içindeki değeri textbox2 den aldırmak istiyorum. Bu mümkün müdür? Mümkünse kodlarda nasıl bir değişiklik yapmam gerekir?


Kod:
Private Function YeniSayi(x As String) As Long
YeniSayi = 1 + Application.Evaluate("MAX(IF((F:F=""" & x & """),INT(G:G)))")
End Function

Sub Yeni_Numara()
    Dim n As Long
    n = YeniSayi("120.01.")
    MsgBox n
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Mümkünse 20 satırlık örnek bir dosya paylaşabilirmisiniz.
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
511
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Merhaba,

Mümkünse 20 satırlık örnek bir dosya paylaşabilirmisiniz.

Dosya ektedir. Cntrl + g ile ana menüye ulaşacaksınız. Cari Hesaplar butonu ile açılan userform üzerinden kayıt yaratmaktayım. Benzeri işlemi GL Hesap Tanımla butonu ile açılan userform üzerinden yapmak istedim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alttaki fonksiyonu Useform5 nesnesinin kod bölümüne kopyalayın.

C++:
Private Function YeniSayi(x As String) As Long
    YeniSayi = 1 + Application.Evaluate("MAX(IF((F:F=""" & x & """),INT(G:G)))")
End Function
Sonra Userform5 üzerine yeni bir buton (CommandButton5) ekleyin ve Textbox2 ye veri girip aşağıdaki kodu deneyiniz.

C++:
Private Sub CommandButton5_Click()
    x = YeniSayi(TextBox2)
    MsgBox x
End Sub
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
511
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Alttaki fonksiyonu Useform5 nesnesinin kod bölümüne kopyalayın.

C++:
Private Function YeniSayi(x As String) As Long
    YeniSayi = 1 + Application.Evaluate("MAX(IF((F:F=""" & x & """),INT(G:G)))")
End Function
Sonra Userform5 üzerine yeni bir buton (CommandButton5) ekleyin ve Textbox2 ye veri girip aşağıdaki kodu deneyiniz.

C++:
Private Sub CommandButton5_Click()
    x = YeniSayi(TextBox2)
    MsgBox x
End Sub
Teşekkürler Korhan Bey
 
Üst