• DİKKAT

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

Class Module Hakkında

Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Arkadaşlar forumda bulduğum bir class modul'ü çalışmama uyarladım fakat 2 türlü sorun oluştu ve class modul hakkındda fazla bir bilgim olmadığı sorunumu bir türlü halledemedim.

1- Combolardan Seçriğim veriyi textbox'a getiriyorum ama yanlış veri geliyor.
2- Seçtiğim veriyi kaydet dediğim zaman textbox'daki veriyi order sayfasında bulup kalan dz kısmından düşebilirmi.

Daha detaylı açıklamayı dosya içinde yaptım.
 
Son düzenleme:
Private Sub cmb_Change()
Set s1 = Sheets("ORDER")
ad = cmb.Name
If InStr(ad, "R") > 0 Then
Urt_Gir.Controls("B" & Replace(cmb.Name, "R", "")).Clear
For a = 2 To s1.[a65536].End(3).Row
If s1.Cells(a, "e") = cmb Then Urt_Gir.Controls("B" & Replace(cmb.Name, "R", "")).AddItem s1.Cells(a, "f")
Next
Else
Urt_Gir.Controls("KA" & Replace(cmb.Name, "B", "")) = ""
Sat = s1.[f1:g65536].Find(cmb).Row
Urt_Gir.Controls("KA" & Replace(cmb.Name, "B", "")) = s1.Cells(Sat, "h")
End If
End Sub

Kırmızı renkli satır f1:g65536 hücreleri arasında ilk bulduğu değeri alıyor. Oysaki diğer ComboBox lardan yaptığınız seçimlere bakarak bulunması gerekiyor.
 
Sayın alpi tam olarak nereyi değiştirmem gerektiğini anlamadım kusura bakmayın. Arayacağı veriler d:g65536 arasında. Bu şekilde denedim gene olmadı.
 
Son düzenleme:
Arkadaşlar 4 saat oldu halen bir çözüm bulamadım. 2. sorum için forumda aşağıdaki gibi bir kod buldum ama sadece 2 comboboxa göre hareket ediyor

Kod:
If ComboBox1 = "" Then
MsgBox "SİPARİŞ NO BOŞ BIRAKILAMAZ..."
Exit Sub
End If
Worksheets("Veri").Select
Dim ilksatir As Integer
Set ara = Range("e2:e65000").Find(what:=ComboBox2, searchdirection:=xlNext, MatchCase:=False)
ilksatir = ara.Row
Set ara = Range("e2:e65000").FindPrevious(after:=Range("b65000"))
sonsatir = ara.Row
Set ara = Range(Cells(ilksatir, 1), Cells(sonsatir, 1)).Find(what:=ComboBox2, searchdirection:=xlNext, MatchCase:=False)
Cells(ilksatir, 11) = Cells(ilksatir, 11) - TextBox64.Value
 
arkadaşlar ben halen yapamadım ne tür denediysem olmadı sayın alpi'nin dediğini tam olarak anlayamadım lütfen yardım edermisiniz
 
Class modülde yazan kodlarınızı silip aşağıdakileri yazın.

Kod:
Public WithEvents cmb As MSForms.ComboBox
Private Sub cmb_Change()
    Set s1 = Sheets("ORDER")
    ad = cmb.Name
    If InStr(ad, "R") > 0 Then
        Urt_Gir.Controls("B" & Replace(cmb.Name, "R", "")).Clear
        For a = 2 To s1.[a65536].End(3).Row
            If s1.Cells(a, "e") = cmb Then
                Urt_Gir.Controls("B" & Replace(cmb.Name, "R", "")).AddItem s1.Cells(a, "f")
            End If
        Next
    Else
        Urt_Gir.Controls("KA" & Replace(cmb.Name, "B", "")) = ""
        sat = s1.[f1:g65536].Find(cmb, Cells(1, 6)).Row
        For i = 1 To WorksheetFunction.CountA(s1.Range("A1:A65536"))
            If Urt_Gir.Controls("OR" & Replace(cmb.Name, "B", "")) = s1.Cells(sat, "d") And _
                Urt_Gir.Controls("R" & Replace(cmb.Name, "B", "")) = s1.Cells(sat, "e") And _
                Urt_Gir.Controls("B" & Replace(cmb.Name, "B", "")) = s1.Cells(sat, "f") Then
                Urt_Gir.Controls("KA" & Replace(cmb.Name, "B", "")) = s1.Cells(sat, "h")
                Exit Sub
            End If
            sat = s1.[f1:g65536].Find(cmb, Cells(sat, 6)).Row
        Next
    End If
End Sub
 
Sayın alpi yardımlarınız için çok teşekkür ederim tam istediğim gibi olmuş. İkinci sorum için forumda bulduğum bir kodu uyarlamaya çalıştım ama olmadı. Kırmızı yazan kısımda hata verdi. Burda yapmak istediğim combolardan seçtiğim veri karşılığında U.G kısmına veri geliyor. GN ve GC ye veri girdiğimde U.G den duşüyor. Kaydet dediğim zaman Order sayfasından daha önce combolardan seçtiğim veriyi bulup ordaki rakkamdan U.G kısmındaki rakkamla değiştirmesini istiyorum. Bununu nasıl yapabilirim

Worksheets("ORDER").Select
Set ara = Range("e,d2:d65000").Find(what:=OR1, searchdirection:=xlNext, MatchCase:=False)
ilksatir = ara.Row
Set ara = Range("d2:d65000").FindPrevious(after:=Range("C65000"))
sonsatir = ara.Row
Set ara = Range("e2:e65000").FindPrevious(after:=Range("d65000"))
sonsatir2 = ara.Row
Set ara = Range(Cells(ilksatir, 1), Cells(sonsatir, 1), Cells(sonsonsatir2, 1)).Find(what:=OR1, searchdirection:=xlNext, MatchCase:=False)
Cells(ilksatir, 7) = KA1.Value
 
Arkadaşlar çalışmamda sadece bu sorun kaldı. Dünden beri uğraşıyorum ama beceremedim yardım edebilirmisiniz.
 
Arkadaşlar biliyorum biraz fazla oluyorum ama rica etsem bi bakarmısınız.
 
Arkadaşlar yardımcı olabilirmisiniz. 2 Gündür uğraşıyorum ama sonuç aynı
 
Aşağıdaki kodu deneyin.

Kod:
Private Sub CommandButton2_Click()
On Error Resume Next
Dim t As Range
Dim ilksatir As Integer
Set s1 = Sheets("VERİ")
Set s2 = Sheets("ORDER")
If T1 = "" Then
MsgBox "TARİH BOŞ BIRAKILAMAZ..."
Exit Sub
End If
For a = 1 To 12
If Controls("MN" & a) = "" Then Exit Sub
For b = 2 To s2.[b65536].End(3).Row
If Controls("OR" & a) = s2.Cells(b, "d") And _
Controls("R" & a) = s2.Cells(b, "e") And _
Controls("B" & a) = s2.Cells(b, "f") Then
s2.Cells(b, "g") = Controls("KA" & a) * 1
Exit For
End If
Next
c = c + 1
s1.Cells(c + 1, "A") = c
s1.Cells(c + 1, "B") = CLng(CDate(T1.Value))
s1.Cells(c + 1, "C") = Controls("MN" & a) * 1
s1.Cells(c + 1, "D") = Controls("OR" & a)
s1.Cells(c + 1, "E") = Controls("R" & a)
s1.Cells(c + 1, "F") = Controls("B" & a)
s1.Cells(c + 1, "G") = Controls("GN" & a) * 1
s1.Cells(c + 1, "H") = Controls("GC" & a) * 1
Next
End Sub
 
Sayın leventm yardımlarınız için size ne kadar teşekkür etsem azdır. Emeğiniz için sağolun çok teşekkür ederim. Saygılar
 
Geri
Üst