Tüm Versiyonu Göster : Excel tablosu içinde bir deðeri arayýp bulan bir makro ?
hamitcan
27-09-2004, 14:03
Excel tablosu içinde (yada bir sütunda) bir deðeri arayýp bulan bir makro istiyorum. O deðer yoksa "yok" mesajý vermeli.
Ben bir makro yaptým ama geliþtiremedim.Yardýmlarýnýzý bekliyorum.
Private Sub CommandButton1_Click()
SONUC2 = TextBox1.Value
Sheets("SAYFA2").Select
Set FC2 = Sheets("SAYFA2").Columns("A").Find(What:=SONUC2)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
End Sub
Aranan deðer varsa buluyor,yoksa hata veriyor.
Farklý bir yöntem olursada farketmez.
Herkese iyi çalýþmalar...
Private Sub CommandButton1_Click()
On Error GoTo hata
SONUC2 = TextBox1.Value
Sheets("sayfa2").Select
Set FC2 = Sheets("sayfa2").Columns("A").Find(What:=SONUC2)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Exit Sub
hata:
MsgBox ("yok")
End Sub
Bazen çözüm ne kadar kolay olabiliyor deðil mi Sayýn Hamitcan!...
Demek ki neymiþ iyi ki varsýn www.excel.web.tr
hamitcan
27-09-2004, 14:53
Kod iþime yaradý, tam istediðim gibi olmuþ Sayýn ALPEN teþekkürler. Sayýn SERPÝLY ,size de katýlýyorum iyiki varsýn excel.web.tr.
Ayrýca bu forumda emeði geçen herkese tekrar teþekkürler...
:oops: :oops: :oops: :oops: :oops:
ozozkilic
27-09-2004, 16:45
sn hamitcan
arama kodunu kullandýðýnýzda ayný veriden iki tane varsa ne yapýyor.
ben daha önce düþeyara'ya arattýrýyordum. ama ayný veriden iki den fazla olunca birini bulup býrakýyor. kullandýðýnýz kod bu durumda ne yapýyor olmazsa bende kodlu sisteme geçerim belki :D
:) :)
Sayýn ozozkýlýç
Þunu önersem iþinize yarar mý acaba?
Arama kriterinizin sayýsýný artýrmak için arama yapýlan tablodaki iki sütunu birinci sutunda Birleþtir erek Birleþtir kullanýlan sutunu Düþeyara da kriter olarak verseniz. Dosya daha iyi anlatýr sanýyorum.
Bir de þöyle bir þey kullanýlabilir;
Sub FindExactMatch()
Dim MyStr As String, InfoMsg As String
Dim Rng1 As String, LookupValue As String
Dim MyQ As VbMsgBoxResult
Dim FoundRng As Variant
MyStr = Trim(Application.InputBox("Aranacak metni girin !", _
"Find exact match ..."))
If Not MyStr = "False" Then
Set FoundRng = Cells.Find(MyStr, LookIn:=xlValues, LookAt:=xlPart)
If Not FoundRng Is Nothing Then
Rng1 = FoundRng.Address
FoundRng.Activate
ResumeSub2:
If Right(FoundRng.Value, 1) <> " " Then LookupValue = FoundRng.Value & " "
MyData = Split(LookupValue, " ", , vbTextCompare)
For i = LBound(MyData) To UBound(MyData)
If MyData(i) = MyStr Then
InfoMsg = "Aranan metin " & FoundRng.Address(False, False) _
& " hücresinde bulundu." _
& vbCrLf & vbCrLf & "Bulunan hücrenin içeriði :" _
& vbCrLf & vbCrLf & FoundRng.Value & vbCrLf _
& vbCrLf & "Aramaya devam etmek istiyormusunuz ?"
MyQ = MsgBox(InfoMsg, vbInformation + vbYesNo, _
"Arama sonucu...")
If MyQ = vbYes Then GoTo ResumeSub1:
Exit Sub
End If
Next
Else
MsgBox "Aranan deðer bulunamadý !", vbInformation, "Arama sonucu..."
Exit Sub
End If
ResumeSub1:
Set FoundRng = Cells.FindNext(FoundRng)
If Rng1 = FoundRng.Address Then
MsgBox "Aranan deðerden baþka bulunamadý !", vbInformation, _
"Arama sonucu..."
Exit Sub
End If
FoundRng.Activate
GoTo ResumeSub2:
End If
Set FoundRng = Nothing
End Sub
function arama. pro version. open source.
ozozkilic
04-10-2004, 08:52
sayýn serpily
biraz geç oldu ama ben gönderdiðiniz eklentiyi aldým. dediðiniz þekilde kullanamadým. daha doðrusu anlamadým. :kafa: :kafa: içinde birde makro göremedim. iyice ne yapacaðýmý karýþtýrdým. yardýmlarýn ve ilgin için ayrý ayrý teþekkürler.
function arama. pro version. open source.
:mrgreen:
:hiho:
:mrgreen:
ozozkilic
04-10-2004, 09:25
function arama. pro version. open source.
:?: :?: :?:
arama fonksiyonu mu kullanayým? tam anlamadým aslýnda. hatta öncekinide anlamamýþým :? :? :?
@ozozkýlýc
Sayýn Raider'ýn vermiþ olduðu örnek dört dörtlük bir arama prosedürü. veriyi arar, bulursa ve istenirse kaldýðý yerden aramaya devam eder, her iþlemi yaptýktan sonra kullanýcýya gerekli bilgiyi verir.
sadece kopyalayýp istediðiniz yerde çaðýrýn.
ozozkilic
04-10-2004, 10:10
sayýn Alpen
ben kodun nasýl kullanýlacaðýný anlamadým. nereye yazýp nereye kopyalayacaðýmý. þöyle bir örnek vereyim:
a sütununa sýrasýyla
1
2
3
4
5
4
3
2
3
4
yazdýðýmý farzediyorum ve örneðin 3 ü aratacaðým. ve 3 ten 3 tane var. bu kodu nasýl kulanacaðýmý çözemedim.
aþaðýdaki dosyayý inceleyin.
ozozkilic
04-10-2004, 10:18
sayýn Alpen
ben kodun nasýl kullanýlacaðýný anlamadým. nereye yazýp nereye kopyalayacaðýmý. þöyle bir örnek vereyim:
a sütununa sýrasýyla
1
2
3
4
5
4
3
2
3
4
yazdýðýmý farzediyorum ve örneðin 3 ü aratacaðým. ve 3 ten 3 tane var. bu kodu nasýl kulanacaðýmý çözemedim.
@ozozkilic:
Ã?rnek dosya ektedir...
Not: Sayýn Alpen, son mesajýný görmeden ben post etmiþim, özür ...
ozozkilic
04-10-2004, 10:33
tamam tamam þimdi anladým çok teþekkürler. hakkatten metettiðiniz kadar varmýþ.
teþekkürler :hey: :) :D
hakkatten metettiðiniz kadar varmýþ.
dedik ya...
function arama. pro version. diye. :mrgreen:
Gerçekten Güzel Çalýþma;
Ancak, hücre alt+enter ile açýýlmýþ ve hücreye iki veya daha fazla veri girilmiþ ise arama yapmýyor.
bunun saðlanmasý mümkün mü ?
Ayrýca bulunun deðerin yer aldýðý satýr çalýþma sayfasýnda renk deðiþtirerek görünebilir mi ?
Ýlginiz için teþekkürler
sanýrým mümkün deðil. Teþekkürler
Evet gerçekten güzel bir makro;
Benim öðrenmek istediðim, bulunan deðerin yer aldýðý satýr ayný makro içersinde seçili duruma getirilebilir mi ? yani makro ile bulunan deðerin yer aldýðý hücre deðil satýr seçili duruma gelebilir mi? Hatta birde reklendirilebilse ..........
Levent Menteþoðlu
21-10-2005, 21:08
Aþaðýdaki kod veriyi alt-enterle yazýlmýþ bile olsa bulur ve bulunduðu satýrý seçer.
[vb:1:19183a0a02]Sub bulvesec()
On Error GoTo 10
ara = InputBox("ARANACAK VERÝYÝ YAZIN")
If ara = "" Then Exit Sub
sat = ActiveSheet.Cells.Find(What:=ara).Row
Rows(sat).Select
Exit Sub
10 MsgBox ("VERÝ BULUNAMADI")
End Sub[/vb:1:19183a0a02]
Bu kodda veriyi sayfa içinde bulur, bulunduðu hücreyi seçer ve satýrý renklendirir.
[vb:1:19183a0a02]Sub bulverenklendir()
Cells.Interior.ColorIndex = xlNone
On Error GoTo 10
ara = InputBox("ARANACAK VERÝYÝ YAZIN")
If ara = "" Then Exit Sub
sat = ActiveSheet.Cells.Find(What:=ara).Row
Rows(sat).Interior.ColorIndex = 6
ActiveSheet.Cells.Find(What:=ara).Select
Exit Sub
10 MsgBox ("VERÝ BULUNAMADI")
End Sub
[/vb:1:19183a0a02]
Ýyiki varsýnýz. Sonsuz Teþekkür
vBulletin v3.7.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.