• DİKKAT

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

hücre içinde veri arama

SATYON

Altın Üye
Katılım
5 Mayıs 2006
Mesajlar
121
Excel Vers. ve Dili
Microsoft Office Excel 2013 / İngilizce
Merhaba mükerrer konu açmış olabilirim ama önceki mesajlarda aramama rağmen benim sorunuma yanıt bulamadım. Acil yardım ederseniz sevinirim.
Örn. a1 hücresine yazdığım veriyi belli bir kolonda arasın bulduğu hücrenin üzerine gitsin eğer aradığım veri birden fazla hücrede tekrarlanıyorsa ara butonuna tekrar bastığımda diğer ikinci verinin bulunduğu hücreye gitsin. dosya ekinden inceleyebilirsiniz.
yardım için şimdiden çok teşekkürler.
 

Ekli dosyalar

öncelikle ilginize teşekkürler. ancak bu tam olarak istediğim şeye yanıt vermiyor. tam olarak işlem şu çok büyük bir ürün listem var bu listeye rakip firmaların fiyatlarını işliyorum bunu yaparken de ctrl+f ile ürünü arıyor karşısına fiyatı giriyorum her seferinde ctrl+f yapıp ürünün bulunduğu hücreye mouse ile tıklamak istemediğim için öyle bir makro veya başka bişey yapmalıyım ki aradığım değeri bir hücreye yazdığım anda o ürünün bulunduğu hücrenin üstüne otomatik olarak gitmeli ben de yan hücreye geçip fiyatı girebileyim. aynı ürünün değişik boyları olabilir bu da göz önünde bulundurulmalı doğru ürünün üstüne gidinceye kadar entera bastıkça o modelin geçtiği hücrelerin üzerinde gezmeli. umarım olabilitesi vardır. çok acil lazım bu bana yardımlarınız için şimdiden teşekkürler...
 
aradığım değeri bir hücreye yazdığım anda o ürünün bulunduğu hücrenin üstüne otomatik olarak gitmeli ben de yan hücreye geçip fiyatı girebileyim.

Çalışma sayfasının kod bölümüne kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim c As Range, Adr As Variant, onay As String
 
    If Intersect(Target, [A1]) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
 
    With Cells
      Set c = .Find(Target, LookAt:=xlPart)
        If Not c Is Nothing Then
          Adr = c.Address
            Do
              c.Offset(0, [COLOR=red][B]0[/B][/COLOR]).Select
              onay = MsgBox("Tamam/Devam", vbCritical + vbYesNo, "Dikkat!")
              If onay = vbYes Then Exit Sub
 
            Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With
 
    Set c = Nothing
 
End Sub

A1 hücresine değer girince kod çalışır. Kod çalıştıktan sonra ekrana "Tamam/Devam" şeklinde mesaj gelecektir. Bu mesaja evet derseniz ilgili hücre aktif olur ve kod durur. Hayır derseniz bir sonraki hücreye gider. Ve bu şekilde bulduğu tüm hücrelerde aynı döngü ile ilerler.

Kırmızı işaretli olan 0 değerinin yerine 1 yazarsanız aranan değeri bulduğu hücrenin 1 yan sütunundaki hücre aktif olur.

.
 
tam istediğim şey bu çooooookkkk teşekkürler
 
Çalışma sayfasının kod bölümüne kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim c As Range, Adr As Variant, onay As String
 
    If Intersect(Target, [A1]) Is Nothing Then Exit Sub
    If Target = "" Then Exit Sub
 
    With Cells
      Set c = .Find(Target, LookAt:=xlPart)
        If Not c Is Nothing Then
          Adr = c.Address
            Do
              c.Offset(0, [COLOR=red][B]0[/B][/COLOR]).Select
              onay = MsgBox("Tamam/Devam", vbCritical + vbYesNo, "Dikkat!")
              If onay = vbYes Then Exit Sub
 
            Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With
 
    Set c = Nothing
 
End Sub

A1 hücresine değer girince kod çalışır. Kod çalıştıktan sonra ekrana "Tamam/Devam" şeklinde mesaj gelecektir. Bu mesaja evet derseniz ilgili hücre aktif olur ve kod durur. Hayır derseniz bir sonraki hücreye gider. Ve bu şekilde bulduğu tüm hücrelerde aynı döngü ile ilerler.

Kırmızı işaretli olan 0 değerinin yerine 1 yazarsanız aranan değeri bulduğu hücrenin 1 yan sütunundaki hücre aktif olur.

.
tekrar merhaba bişey daha sormak istiyorum aramayı tüm sayfada değil de yalnızca belli bir kolonda yapabilir miyim? nasıl?
 
With Cells

satırındaki Cells tüm sayfayı ifade eder. Buradaki Cells yerine istediğiniz aralığı yazmanı yeterli olur. Başka bir değişiklik yapmanıza gerek yok.

With Range("C1:F250")

gibi.
 
çok teşekkürler...
 
ben kodda bazı değişiklikler yaptım eveti tıklayınca aramaya devam edip bulduğumda hayır'a tıklıyorum. ESC'ye bastığımda da aramayı durdurup onay penceresini kapatması için kodda nasıl bir değişiklik yapmalıyım?
 
ben kodda bazı değişiklikler yaptım eveti tıklayınca aramaya devam edip bulduğumda hayır'a tıklıyorum. ESC'ye bastığımda da aramayı durdurup onay penceresini kapatması için kodda nasıl bir değişiklik yapmalıyım?

ayrıca arama yaptırdığım kolondan 6. kolona gitmesini sağladım ama 2 kolonda arama yaptırıyorum ve hangi kolonda bulursa aradığım veriyi oradan 6 kolon sayıyor her seferinde aynı kolona gitmesini nasıl sağlarım?
teşekkürler...
 
ayrıca arama yaptırdığım kolondan 6. kolona gitmesini sağladım ama 2 kolonda arama yaptırıyorum ve hangi kolonda bulursa aradığım veriyi oradan 6 kolon sayıyor her seferinde aynı kolona gitmesini nasıl sağlarım?
teşekkürler...

Merhaba,

Kodlarda,

c.Offset(0,0).Select

yukarıdaki satırın yerine aşağıdaki satırı yazarsanız istediğiniz olur. Satırda bulunan "B" sütun ismidir. Siz hangi sütuna gönderecekseniz o sütun ismini yazarsınız.

Cells(c.Row, "B").Select

Kapatmayı ise herhangi bir düzenleme yapmadan enterla da yapabilirsiniz.
 
Geri
Üst