Class Module Hakkında

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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:
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
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.
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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:

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
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
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkadaşlar çalışmamda sadece bu sorun kaldı. Dünden beri uğraşıyorum ama beceremedim yardım edebilirmisiniz.
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkadaşlar biliyorum biraz fazla oluyorum ama rica etsem bi bakarmısınız.
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkadaşlar yardımcı olabilirmisiniz. 2 Gündür uğraşıyorum ama sonuç aynı
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
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
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
603
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
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
 
Üst