UserForm da Düşeyara kodunda ki adresi nasıl düzeltebilirim?

Katılım
18 Nisan 2012
Mesajlar
7
Excel Vers. ve Dili
2010
tr
Kod yazma konusunda pek bilgim yok bu yüzden düzeltme yapamıyorum. Düşeyara kodunda bulunan kod sadece hücre adresi yazıyor. Başka sayfa açıkken userform çalışmıyor.

Kod:
Private Sub ComboBox1_Click()
[a1:a65536].Find(ComboBox1.Value).Select
    TextBox1 = Selection.Offset(0, 1)
    TextBox2 = Selection.Offset(0, 2)
    TextBox3 = Selection.Offset(0, 3)
    TextBox4 = Selection.Offset(0, 4)
End Sub
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "a1:a" & [a65536].End(3).Row
End Sub
Diğer sayfalarda çalışmamasının sebebi nedir acaba. Hücre adreslerine nasıl sayfa adresi ekleyebilirim?
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
düşeyara demek ne derece doğru ayrı tartışma olur :)

aşağıdaki gibi deneyin.
Sheet1 ibaresini sayfanızın ismi ile değiştirin.

Kod:
Private Sub ComboBox1_Click()
    
    Set cll = Worksheets("Sheet1").Columns(1).Find(ComboBox1.Value)
    
    TextBox1 = cll.Offset(, 1)
    TextBox2 = cll.Offset(, 2)
    TextBox3 = cll.Offset(, 3)
    TextBox4 = cll.Offset(, 4)

End Sub

Private Sub UserForm_Initialize()

    With Worksheets("Sheet1")
        ComboBox1.List = .Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
    End With

End Sub
 
Katılım
18 Nisan 2012
Mesajlar
7
Excel Vers. ve Dili
2010
tr
düşeyara demek ne derece doğru ayrı tartışma olur :)

aşağıdaki gibi deneyin.
Sheet1 ibaresini sayfanızın ismi ile değiştirin.
Maalesef kod çalışmadı kodu biraz değiştirdim diğer sayfa açık olunca sanırım comboboxta seçileni bulamıyor.
Kod:
Private Sub ComboBox1_Click()
   
    [COLOR="Red"]Worksheets("Sayfa1").Columns(1).Find(ComboBox1.Value).Select[/COLOR]
    TextBox1 = Selection.Offset(0, 1)
    TextBox2 = Selection.Offset(0, 2)
    TextBox3 = Selection.Offset(0, 3)
    TextBox4 = Selection.Offset(0, 4)
    
End Sub

Private Sub UserForm_Initialize()
    Dim say As Integer
    say = Sheets("Sayfa1").[A65536].End(3).Row + 1
    ComboBox1.RowSource = "Sayfa1!A2:A" & say
End Sub
 
Son düzenleme:

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sorunuz net değil, daha detaylı bilgi verirmisiniz. Mümkünse dosya ekleyerek.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
gayet güzel çalışıyor.

kendi kodunuzu silin. onları kopyalayın.

hatta _Click olayını _Change olayına dönüştürmek daha amaca uygun olur.

hücreler için Select metodu aktif sayfadaki hücreleri seçmek için kullanılır. ve daha çok makro kaydedici yolu ile elde edilen kodlarda olur. nesnelerle çalışmak için, çok ender durumlar hariç, onları seçmek zorunda değiliz. hele buradaki gibi bulunan değerin hizasındaki hücre değerlerini textbox'lara yüklemek için hiç.
 
Katılım
18 Nisan 2012
Mesajlar
7
Excel Vers. ve Dili
2010
tr
Benim ofis sürümü 2013 belki bundan kaynaklanıyodur. Öğrenme amaçlı form düzenledim bence güzel oldu bilmiyorum eksik hata fazladan kod yazımı veya kısaca yapılacak bir işi dolaştırıpta yapma var mı? Yorumlarınız bekliyorum. Belki yeni başlayanlar içinde örnek olur.

http://yadi.sk/d/s1a4k-2BGKeX4
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Merhaba. Aldığınız hata ne bilmiyorum ancak dosyanızın bendeki hatası aşağıdakine benzer satırlarda oluyordu. Çözümümünüde satırın başına (.) koyunca düzeldi .

.[A1:A65536].Find(ComboBox1.Value).Select
 
Katılım
18 Nisan 2012
Mesajlar
7
Excel Vers. ve Dili
2010
tr
Merhaba. Aldığınız hata ne bilmiyorum ancak dosyanızın bendeki hatası aşağıdakine benzer satırlarda oluyordu. Çözümümünüde satırın başına (.) koyunca düzeldi .

.[A1:A65536].Find(ComboBox1.Value).Select
Benim düşüncem belirli bir sayda birkaç tane buton koymak mesela isimle aramak yapmak isteyince butona tıklayıp userformu açıp arama yapmaktı ama bu kodda sayfa ismi konsa bile o sayfa açık olmayınca hep hata veriyo. Belki bendeki excelden kaynaklanıyodur. Form biraz daha geliştirince biraz daha bilgi öğrenince form açılınca otomatik istenilen sayfaya gidebileceğini öğrendim bu sorun ortadan kalktı ve faklı kriterlerle aynı form üzerinde arama yapmaya çalışınca biraz karışıklık oldu bende ayrı formlar düzenledim böylece bu sorunda halloldu kafamda yapmak istediklerimi yaptım sayılır. Zaten işle ilgili birşey değil benimki öğrenme amaçlı. Şimdi veri kaydetme ve armayı yaptım tekrar düzenleme olayı var onuda yaptım mı tamamdır :)
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
excel de 2 sayfam (firma ve veri isimli) var veri isimli sayfanın koduna
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("e2")) Is Nothing Then Exit Sub 'müşteri no"

With Sheets("firma")
Set c = .Range("a:a").Find(Range("e2"), , xlValues, xlWhole) 'müşteri no"
If Not c Is Nothing Then
Range("b16") = .Cells(c.Row, "b")
Range("b15") = .Cells(c.Row, "c") 'müşteri adı
Range("b17") = .Cells(c.Row, "d")
Range("a12") = .Cells(c.Row, "e")
Else
MsgBox "Hatalı Müşteri Numarası", , "Murat Bozkurt"

End If
End With

End Sub

makrosu yazdım bu kod düşeyara formülü gibi çalışıyor niye düşeyara ile yazmadın da makro ile yazdın derseniz bazen üzerine yazdığım için formül siliniyor makroda bir problem yok...
bu kod ile e2 hücresine müşteri numarasını yazıp entere bastığımda firma isimli sayfadan verileri yazdırıyor. ben bir kademe daha ileri giderek bir userform yaptım üzerine textbox ve CommandButton ekledim. ve aşağıdaki kodu yazdım

Private Sub CommandButton1_Click()

Range("E2").Value = TextBox2.Value

End Sub

buraya kadar herşey çalışıyor. çalışmıyan userform üzerinden textbox nesnesine müşteri numarasını yazıp CommandButton1 düğmesine tıklayıpda müşteri numarasını yazıyor ancak yukarıdaa belirttiğim makro ile düşeyara formülünü yazdığım e2 hücresindeki verileri ilgili hücrelere getirmiyor
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
makro ile düşeyara

Merhaba,

Sorunuz net değil, daha detaylı bilgi verirmisiniz. Mümkünse dosya ekleyerek.
excel de 2 sayfam (firma ve veri isimli) var veri isimli sayfanın koduna
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("e2")) Is Nothing Then Exit Sub 'müşteri no"

With Sheets("firma")
Set c = .Range("a:a").Find(Range("e2"), , xlValues, xlWhole) 'müşteri no"
If Not c Is Nothing Then
Range("b16") = .Cells(c.Row, "b")
Range("b15") = .Cells(c.Row, "c") 'müşteri adı
Range("b17") = .Cells(c.Row, "d")
Range("a12") = .Cells(c.Row, "e")
Else
MsgBox "Hatalı Müşteri Numarası", , "Murat Bozkurt"

End If
End With

End Sub

makrosu yazdım bu kod düşeyara formülü gibi çalışıyor niye düşeyara ile yazmadın da makro ile yazdın derseniz bazen üzerine yazdığım için formül siliniyor makroda bir problem yok...
bu kod ile e2 hücresine müşteri numarasını yazıp entere bastığımda firma isimli sayfadan verileri yazdırıyor. ben bir kademe daha ileri giderek bir userform yaptım üzerine textbox ve CommandButton ekledim. ve aşağıdaki kodu yazdım

Private Sub CommandButton1_Click()

Range("E2").Value = TextBox2.Value

End Sub

buraya kadar herşey çalışıyor. çalışmıyan userform üzerinden textbox nesnesine müşteri numarasını yazıp CommandButton1 düğmesine tıklayıpda müşteri numarasını yazıyor ancak yukarıdaa belirttiğim makro ile düşeyara formülünü yazdığım e2 hücresindeki verileri ilgili hücrelere getirmiyor
 
Üst