• DİKKAT

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

Soru Userformdaki Comboboxtaki değişim sonrası ile ilgili problemim

  • Konbuyu başlatan Konbuyu başlatan goko36
  • Başlangıç tarihi Başlangıç tarihi
Katılım
5 Mayıs 2020
Mesajlar
31
Excel Vers. ve Dili
İng-14.0.6023
Selamlar. Fazlaca userformdan oluşan bir program yazdım. Son userforma geldiğinde kullanıcının bilgileri girmesini ve bu bilgilerle hesaplama yapmasını istiyorum programının. Kullanıcı FlowRateSICalc formundaki calculate tuşuna bastığında PipeMaterial comboboxunda seçtiği pipe material a göre karşılık gelen sayfa2deki b sütunundaki sayıyıda çekip işlem yapmasını istiyorum. Ne yazıkki nasıl yapacağımı bulamadım. Yardımcı olurmusunuz?

Excel olarak yüklemeyi bulamadığım için indirme sayfası olarak hazırladığım exceli ekledim. teşekkürler.

Book1.xlsm - 23 KB
 
Aşağı düştüğü için upp. yardıma ihtiyacım var
 
DÜŞEYARA fonksiyonunu kullanabilirsiniz.
 
Bu kodları eğer siz yazdıysanız bu soruyu sormamanız gerekir diye düşünüyorum.
 
Bu kodları eğer siz yazdıysanız bu soruyu sormamanız gerekir diye düşünüyorum.
Evet kodları ben yazdım. Hatta temiz dursun diye arama yaptırdığım yeri silmiştim. şu anlık bu problemi çözdüm fakat bu seferde calculate tuşuna bastığımda çekmesi gereken sayıyı başka hesaplatma yapmam gerekiyor fakat typemismatch alıyorum cunku aynı değişkeni 2 defa kullandım. bunu nasıl önleyebilirim. sadece yazdığım kod kısmını atıyorum.
Kod:
Option Explicit
Private Sub PipeMaterialCmb_Change()
Dim pipem As String
Dim a As Double
Dim s2 As Worksheet

Set s2 = Sheets("Sheet2")
pipem = PipeMaterialCmb.Value

a = Application.WorksheetFunction.VLookup(pipem, s2.Range("A1:B17"), 2, 0)

End Sub

Private Sub UserForm_Initialize()
PipeMaterialCmb.RowSource = "PipeMaterial"
End Sub
Public Sub CommandButton1_Click()
Dim lenght, Diameter, temp, ahl As Double
Dim fricfac As Double
Dim a As Double
Dim x, Pi As Double

Call PipeMaterialCmb_Change

lenght = LenghtBox.Value
Diameter = DiameterBox.Value
ahl = AhlBox.Value
temp = TempBox.Value

MsgBox "dffasdfa" + a + ahl

End Sub
 
"a" değişkenini Calculate butonu altında kullanın. Diğerlerine gerek yok gibi görünüyor.
 
"a" değişkenini Calculate butonu altında kullanın. Diğerlerine gerek yok gibi görünüyor.

a = Application.WorksheetFunction.VLookup(pipem, s2.Range("A1:B17"), 2, 0)

bunu yapmassam o sayıları nasıl alabilirm. denedim ama calculate butonu altında olmadı
 
Olmayan nedir anlamadım. Verdiğiniz kod satırını Calculate butonu altına yazacaksınız.
 
Olmayan nedir anlamadım. Verdiğiniz kod satırını Calculate butonu altına yazacaksınız.
yazıyorum fakat hata alıyorum yine. değişkenleride calculate butonu altına getiriyorum fakat yine olmuyor.

Kod:
Public Sub PipeMaterialCmb_Change()
Dim pipem As String
Dim a As Double
Dim s2 As Worksheet

Set s2 = Sheets("Sheet2")
pipem = PipeMaterialCmb.Value

a = Application.WorksheetFunction.VLookup(pipem, s2.Range("A1:B17"), 2, 0)

End Sub

bu satır altında combobox değişince a yı alıyorum. neden calculate butonu altında yazayım anlayamadım. buton altında yazsamda excel vba ya nasıl anlatacağım combobox değişince o değişen şeyi excelde bulması gerektiğini
 
Bu şekilde "Calculate" altına yazıp deneyiniz. Değişken tanımlamasını artık siz yaparsınız.

C++:
a = Application.WorksheetFunction.VLookup(PipeMaterialCmb.Value, s2.Range("A:B"), 2, 0)
 
Bu şekilde "Calculate" altına yazıp deneyiniz. Değişken tanımlamasını artık siz yaparsınız.

C++:
a = Application.WorksheetFunction.VLookup(PipeMaterialCmb.Value, s2.Range("A:B"), 2, 0)
Selamlar özür dilerim geç cevap verdiğim için.

Object variable not set (Error 91)

hatasını alıyorum nedense. hala çözemedim nasıl tanımlamalıyım variableları. debugda baktım aldığım hata s2.range kısmında ama üst tarafta zaten tanımladım variable olarak. ne yapmalıyım? teşekkür ederim yardımlarınız için.
 
Geri
Üst