Soru sayfalar arası arama hatası

Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
arkadaşlar merhaba,
çalışma kitabında TRAFİK - DASK - KASKO adında 3 adet sheet var. aşağıdaki kodlarla texboxlara veri getirip güncelleme yapıyorum. ancak sheet Dask tayken devamlı
" Range("E:E").Find(aranan).Select " bu bölümde hata veriyor. yani trafik sayfasındayken dask araması hata veriyor, dask sayfasındayken trafik araması hata veriyor.
istediğim hangi sayfa görüntüleniyorsa görüntülensin arama yapabilmek ve hata almamak.

şimdiden teşekkür ederim.






rivate Sub TextBox6_Change()
Dim aranan As String
Dim pr As Worksheet
Set pr = Sheets("TRAFiK")
Dim x As Long

Dim tablo As Range
Set tablo = pr.Range("A:Q")

aranan = TextBox6.Text
Range("E:E").Find(aranan).Select

sil_satir = ActiveCell.Row


ComboBox3.Value = Worksheets("TRAFiK").Cells(sil_satir, 18)
TextBox4.Value = Worksheets("TRAFiK").Cells(sil_satir, 11)
TextBox5.Value = Worksheets("TRAFiK").Cells(sil_satir, 16)
TextBox11.Value = Worksheets("TRAFiK").Cells(sil_satir, 15)
TextBox15.Value = Worksheets("TRAFiK").Cells(sil_satir, 12)
TextBox14.Value = Worksheets("TRAFiK").Cells(sil_satir, 14)
TextBox16.Value = Worksheets("TRAFiK").Cells(sil_satir, 17)
TextBox13.Value = Worksheets("TRAFiK").Cells(sil_satir, 13)

TextBox15.Value = Format(TextBox15.Value, "dd.mm.yyyy")
TextBox4.Value = Format(TextBox4.Value, "dd.mm.yyyy")
Exit Sub
End Sub
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
dask ta uyguladığım kodda aşağıdaki gibidir.

Private Sub TextBox22_Change()
Dim aranan As String
Dim pr As Worksheet
Set pr = Sheets("DASK")

Dim x As Long

Dim tablo As Range
Set tablo = pr.Range("A:Q")

aranan = TextBox22.Text

Range("E:E").Find(aranan).Select

sil_satir = ActiveCell.Row


TextBox29.Value = Worksheets("DASK").Cells(sil_satir, 13)
TextBox20.Value = Worksheets("DASK").Cells(sil_satir, 11)
TextBox21.Value = Worksheets("DASK").Cells(sil_satir, 16)
TextBox27.Value = Worksheets("DASK").Cells(sil_satir, 15)
TextBox30.Value = Worksheets("DASK").Cells(sil_satir, 14)
TextBox31.Value = Worksheets("DASK").Cells(sil_satir, 12)




Exit Sub
TextBox20.Value = Format(TextBox20.Value, "dd.mm.yyyy")
TextBox31.Value = Format(TextBox31.Value, "dd.mm.yyyy")
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Dosyanızı tam olarak görmeden bir şey diyemem.
Bu satır kodların aktif olduğu sayfada çalışır.
Range("E:E").Find(aranan).Select
Muhtemelen bu durumdan dolayı hata alıyorsunuz.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
ilginize teşekkür ederim.
dosya ekleyemediğim için direkt kodları yapıştırdım.
Range("E:E").Find(aranan).Select
bu kod yerine yazabileceğim bir kod varmı
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Select komutu seçmek için kullanılır. Olmadığınız bir sayfada seçim yapamayacağınız için hata alıyorsunuz.
Seçmek yerine bulunan değeri bir değişkene atayanız.

Kullandığınız bu komutları silerek,
Range("E:E").Find(aranan).Select
sil_satir = ActiveCell.Row

Bu komutu kullanınız.
sil_satir = Sheets("Trafik").Range("E:E").Find(aranan).Row

olarak kullanınız. Bu komut DATA sayfasında iken TRAFİK sayfasında arama yapıldığında hata almanızı engelleyecektir.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
Hocam emeğinize sağlık,
çözüldü teşekkür ederim.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
Hocam şimdide arama ilk satırı getiriyor diğer satırlar gelmiyor

Private Sub TextBox22_Change()
Dim aranan As String
Dim pr As Worksheet
Set pr = Sheets("DASK")

Dim x As Long

Dim tablo As Range
Set tablo = pr.Range("A:Q")

aranan = TextBox22.Text



sil_satir = Sheets("DASK").Range("E:E").Find(aranan).Row

TextBox25.Value = Worksheets("DASK").Cells(sil_satir, 4)
TextBox24.Value = Worksheets("DASK").Cells(sil_satir, 10)
TextBox23.Value = Worksheets("DASK").Cells(sil_satir, 2)
TextBox19.Value = Worksheets("DASK").Cells(sil_satir, 9)
TextBox18.Value = Worksheets("DASK").Cells(sil_satir, 3)
TextBox29.Value = Worksheets("DASK").Cells(sil_satir, 13)
TextBox20.Value = Worksheets("DASK").Cells(sil_satir, 11)
TextBox17.Value = Worksheets("DASK").Cells(sil_satir, 6)
TextBox30.Value = Worksheets("DASK").Cells(sil_satir, 14)
TextBox31.Value = Worksheets("DASK").Cells(sil_satir, 12)
TextBox21.Value = Worksheets("DASK").Cells(sil_satir, 16)
TextBox27.Value = Worksheets("DASK").Cells(sil_satir, 15)
TextBox26.Value = Worksheets("DASK").Cells(sil_satir, 8)
TextBox28.Value = Worksheets("DASK").Cells(sil_satir, 7)



TextBox20.Value = Format(TextBox20.Value, "dd.mm.yyyy")
TextBox31.Value = Format(TextBox31.Value, "dd.mm.yyyy")
Exit Sub

End Sub
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
bu şekilde listboxtan tıklayarak plakayı alıyorum


Private Sub lst_dask_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
For i = 0 To lst_dask.ListCount - 1
If lst_dask.Selected(i) = True Then
' frmanamenu.TextBox23 = lst_dask.Column(0, i)
' frmanamenu.TextBox18 = lst_dask.Column(1, i)
' frmanamenu.TextBox25 = lst_dask.Column(2, i)
frmanamenu.TextBox22 = lst_dask.Column(3, i)
' frmanamenu.TextBox17 = lst_dask.Column(4, i)
' frmanamenu.TextBox28 = lst_dask.Column(5, i)
' frmanamenu.TextBox26 = lst_dask.Column(6, i)
' frmanamenu.TextBox19 = lst_dask.Column(7, i)
' frmanamenu.TextBox24 = lst_dask.Column(8, i)
End If
Next i
End Sub
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
İlk satır geliyor, diğerleri gelmiyor dediğiniz nedir tam anlayamadım.
Zira siz,
sil_satir=Sheets("DASK").Range("E:E").Find(aranan).Row
Komut satırı ile Dask sayfasında Textbox22'nin bulunduğu satırın numarasını buluyorsunuz.

Sonraki kodlarda bulduğunuz bu satır numarasını da hep aynı şekilde kullanıyorsunuz. Yani bulunan satırın, 4.sütunu veya 10. sütundaki veriyi al gibi.
TextBox25.Value = Worksheets("DASK").Cells(sil_satir, 4)
TextBox24.Value = Worksheets("DASK").Cells(sil_satir, 10)


Bulunan satırın 4 veya 10 gibi sütunlarında veri yok ise haliyle birşey gelmeyecektir.

Kısacası, örnek bir dosya ekleme imkanı var ise, dosyanız üzerinden yardımcı olmaya çalışalım.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
İlk satır geliyor, diğerleri gelmiyor dediğiniz nedir tam anlayamadım.
Zira siz,
sil_satir=Sheets("DASK").Range("E:E").Find(aranan).Row
Komut satırı ile Dask sayfasında Textbox22'nin bulunduğu satırın numarasını buluyorsunuz.

Sonraki kodlarda bulduğunuz bu satır numarasını da hep aynı şekilde kullanıyorsunuz. Yani bulunan satırın, 4.sütunu veya 10. sütundaki veriyi al gibi.
TextBox25.Value = Worksheets("DASK").Cells(sil_satir, 4)
TextBox24.Value = Worksheets("DASK").Cells(sil_satir, 10)


Bulunan satırın 4 veya 10 gibi sütunlarında veri yok ise haliyle birşey gelmeyecektir.

Kısacası, örnek bir dosya ekleme imkanı var ise, dosyanız üzerinden yardımcı olmaya çalışalım.
Hocam diğer satırlarda dolu,
Dosya eklemeyi bilmediğim için ekleyemiyorum
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
hocam şöyle anlatayım. multipage kullanarak 3 adet page oluşturdum, trafik - dask - kasko, sheetlerde aynı bu şekilde.
listboxtan çift tıklama ile plakayı getiriyorum. sonra textbox change den yaralanarak diğer texboxlara bilgi getirtiyorum.
trafik page de iken hiçbir sorun yok aşağıda kodlarını yazıyorum. aynı kodlar dask olarak uyarladığımda textbox change bölümündeki textboxlara bilgi getirmiyor.



Private Sub TextBox6_Change()
Dim aranan As String
Dim pr As Worksheet
Set pr = Sheets("TRAFiK")
Dim x As Long

Dim tablo As Range
Set tablo = pr.Range("A:Q")

aranan = TextBox6.Text


sil_satir = Sheets("TRAFiK").Range("E:E").Find(aranan).Row


ComboBox3.Value = Worksheets("TRAFiK").Cells(sil_satir, 18)
TextBox4.Value = Worksheets("TRAFiK").Cells(sil_satir, 11)
TextBox5.Value = Worksheets("TRAFiK").Cells(sil_satir, 16)
TextBox11.Value = Worksheets("TRAFiK").Cells(sil_satir, 15)
TextBox15.Value = Worksheets("TRAFiK").Cells(sil_satir, 12)
TextBox14.Value = Worksheets("TRAFiK").Cells(sil_satir, 14)
TextBox16.Value = Worksheets("TRAFiK").Cells(sil_satir, 17)
TextBox13.Value = Worksheets("TRAFiK").Cells(sil_satir, 13)
TextBox2.Value = Worksheets("TRAFiK").Cells(sil_satir, 3)
TextBox3.Value = Worksheets("TRAFiK").Cells(sil_satir, 9)
TextBox2.Value = Worksheets("TRAFiK").Cells(sil_satir, 3)
TextBox7.Value = Worksheets("TRAFiK").Cells(sil_satir, 2)
TextBox8.Value = Worksheets("TRAFiK").Cells(sil_satir, 10)
ComboBox2.Value = Worksheets("TRAFiK").Cells(sil_satir, 4)
ComboBox1.Value = Worksheets("TRAFiK").Cells(sil_satir, 8)
TextBox1.Value = Worksheets("TRAFiK").Cells(sil_satir, 6)
TextBox12.Value = Worksheets("TRAFiK").Cells(sil_satir, 7)

TextBox15.Value = Format(TextBox15.Value, "dd.mm.yyyy")
TextBox4.Value = Format(TextBox4.Value, "dd.mm.yyyy")

Exit Sub
End Sub
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Dosyanızı görmeden, tahmini olarak şu şekilde cevap vereyim.

Trafik sayfasında aradığınız veri E sütununda, pekiyi Data sayfasında da E sütununda mı acaba ?
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Dosya ekleme konusunda,
Dosya.tc isimli siteden veya benzer sitelerden yükleyebilirsiniz. Siteye dosyayı yüklüyorsunuz ve o da size bir link veriyor.
İşte o linki buradaki mesaja yazdığınızda bizler sizin yüklemiş olduğunuz dosyayı indirip kontrol edebiliyoruz.
Yalnız, dosyanıda özel bilgiler olmasın. Var ise isimleri, TC'leri vb. değiştirip dosyanızı yükleyin. Siz veya bilgisi paylaşılan kişiler bu tür paylaşımlardan zarar görmesinler.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
Dosyanızı görmeden, tahmini olarak şu şekilde cevap vereyim.

Trafik sayfasında aradığınız veri E sütununda, pekiyi Data sayfasında da E sütununda mı acaba ?



Hocam çok uğraştırdım farkındayım ama bir türlü çözemiyorum.
ayrı bir data sayfası yok trafik - dask ve kasko adında 3 sheet var. verileri buradan çektiriyorum.
sıkıntım şu
textbox change olayında 3 adet textbox a veriyi getirmek. bu işlemi trafik multipage de yapıyorum. ama daskta olmuyor. kodları tamamen ona uyarladım. trafik yazan heryere dask yazıyorum olmuyor. ve tüm sayfalarda E sütunundaki veri plaka. bende aratmayı hep plaka üzerinden yaptırıyorum.

bakın çalışan kod bu ;

Private Sub TextBox6_Change()
Dim aranan As String
Dim pr As Worksheet
Set pr = Sheets("TRAFiK")
Dim x As Long

Dim tablo As Range
Set tablo = pr.Range("A:Q")

aranan = TextBox6.Text


sil_satir = Sheets("TRAFiK").Range("E:E").Find(aranan).Row


ComboBox3.Value = Worksheets("TRAFiK").Cells(sil_satir, 18)
TextBox4.Value = Worksheets("TRAFiK").Cells(sil_satir, 11)
TextBox5.Value = Worksheets("TRAFiK").Cells(sil_satir, 16)
TextBox11.Value = Worksheets("TRAFiK").Cells(sil_satir, 15)
TextBox15.Value = Worksheets("TRAFiK").Cells(sil_satir, 12)
TextBox14.Value = Worksheets("TRAFiK").Cells(sil_satir, 14)
TextBox16.Value = Worksheets("TRAFiK").Cells(sil_satir, 17)
TextBox13.Value = Worksheets("TRAFiK").Cells(sil_satir, 13)
TextBox2.Value = Worksheets("TRAFiK").Cells(sil_satir, 3)
TextBox3.Value = Worksheets("TRAFiK").Cells(sil_satir, 9)
TextBox2.Value = Worksheets("TRAFiK").Cells(sil_satir, 3)
TextBox7.Value = Worksheets("TRAFiK").Cells(sil_satir, 2)
TextBox8.Value = Worksheets("TRAFiK").Cells(sil_satir, 10)
ComboBox2.Value = Worksheets("TRAFiK").Cells(sil_satir, 4)
ComboBox1.Value = Worksheets("TRAFiK").Cells(sil_satir, 8)
TextBox1.Value = Worksheets("TRAFiK").Cells(sil_satir, 6)
TextBox12.Value = Worksheets("TRAFiK").Cells(sil_satir, 7)

TextBox15.Value = Format(TextBox15.Value, "dd.mm.yyyy")
TextBox4.Value = Format(TextBox4.Value, "dd.mm.yyyy")

Exit Sub
End Sub



çalışmayan kodda bu ;


Private Sub TextBox22_Change()
Dim aranan As String
Dim pr As Worksheet
Set pr = Sheets("DASK")

Dim x As Long

Dim tablo As Range
Set tablo = pr.Range("A:Q")

aranan = TextBox22.Text



sil_satir = Sheets("DASK").Range("E:E").Find(aranan).Row

'TextBox25.Value = Worksheets("DASK").Cells(sil_satir, 4)
'TextBox24.Value = Worksheets("DASK").Cells(sil_satir, 10)
'TextBox23.Value = Worksheets("DASK").Cells(sil_satir, 2)
'TextBox19.Value = Worksheets("DASK").Cells(sil_satir, 9)
'TextBox18.Value = Worksheets("DASK").Cells(sil_satir, 3)
'TextBox29.Value = Worksheets("DASK").Cells(sil_satir, 13)
'TextBox20.Value = Worksheets("DASK").Cells(sil_satir, 11)
'TextBox17.Value = Worksheets("DASK").Cells(sil_satir, 6)
TextBox30.Value = Worksheets("DASK").Cells(sil_satir, 14)
'TextBox31.Value = Worksheets("DASK").Cells(sil_satir, 12)
TextBox21.Value = Worksheets("DASK").Cells(sil_satir, 16)
TextBox27.Value = Worksheets("DASK").Cells(sil_satir, 15)
'TextBox26.Value = Worksheets("DASK").Cells(sil_satir, 8)
'TextBox28.Value = Worksheets("DASK").Cells(sil_satir, 7)



' TextBox20.Value = Format(TextBox20.Value, "dd.mm.yyyy")
' TextBox31.Value = Format(TextBox31.Value, "dd.mm.yyyy")

Exit Sub

End Sub

sadece sheet isimlerini değiştirdim.
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Bunu bir deneyeniz.

Private Sub TextBox22_Change()
Dim aranan As String
aranan = TextBox22
Sheets("DASK").Select
[A1].Select
sil_satir = Sheets("DASK").Range("E:E").Find(aranan).Select
Exit Sub
TextBox30.Value = Cells(sil_satir, 14)
TextBox27.Value = Cells(sil_satir, 15)
TextBox21.Value = Cells(sil_satir, 16)
Sheets("TRAFiK").Select
End Sub

Arama yapmadan önce Dask sayfasına geçiyoruz. Aramayı yaptırıyoruz. Akabinde kod durur. Sayfadaki aktif olan hücreye bakın.
Aradığınız plakanın olduğu hücre ise "EXIT SUB" yazan satırı silip, arama yaptığımız find yazan satırda da Select'i yine Row yaparak deneyiniz. Çalışması lazım.
 
Son düzenleme:
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
Hocam çözdüm;
aynı hata veren kodları kullandım. sadece aranan textbox22 plaka e sütunundaydı
arananı textbox19 yaptım tc ı sütununa aldım bu kadar.

bu hatayı neden vermiş olabilir.
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Dosyanızı görmeden hatanın sebebini söylemek inanın çok zor. Belki Change olayı tetiklenmemiştir.
Kendi sorununuzu kendinizin çözmesine sevindim. Başarılar..
 
Üst