• DİKKAT

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

Belirtilen Karakter İle Başlayan İlk Hücreye Git

ZuCChiNi

Altın Üye
Katılım
26 Haziran 2006
Mesajlar
267
Excel Vers. ve Dili
Excel 2016, TR, x32
Makro atanmış düğmeye tıklandığında makroda belirtilmiş karakter ile başlayan A sütunundaki ilk hücreye gitmek istiyorum.
Bir nevi sözlük gibi düşünebilirsiniz.
Örneğin Makroda "C" belirtilmiş ise C ile başlayan ilk hücreye gitsin.
Farklı şekillerde örneklere ulaştım ama bu şekilde bulamadım.
 
C++:
Sub SatıraGit()
    Veri = Range("A2:A9999").Value
    For i = 1 To 9999
        If Left(Veri(i, 1)) = "C" Then
            Range("A" & i).Select
            Exit Sub
        End If
    Next i
End Sub
 
Merhaba Arkadaş,
Alternatif olsun. Tabi eğer A sütununu boşaltabilirseniz!
Datalarınızı B sütununa yazıp, İLK HARF YAZ makrosunu çalıştırınız, A sütununa ilk harfleri yazacaktır. Renkli C1 hücresine aradığınız harfi yazıp ve ARANAN HARFİ BUL makrosunu çalıştırınız. Aynı makroyu tekrar çalıştırdığınızda sonraki aynı harfle başlayan cümleye gidecektir.
İyi çalışmalar
 

Ekli dosyalar

Cevaplarınız için teşekkür ederim.

Ömer Bey, "Left" için "Argumant not optional" hatası verdi.

Tevfik Bey, yapmak istediğim gibi olmasa da işe yarıyor.
 
Bu Left ve Right işlevleri bazen bende de sorun yaratıyor. Sebebini bilemiyorum. Sonra kendiliğinden düzeliyor.
 
Rich (BB code):
If Left(Veri(i, 1), 1) = "C" Then

.
 
Merhaba Arkadaşım,
Kısa bir örnek koymuş olsanız, daha farklı çözülebilirdi.
İyi çalışmalar
 
Sanırım böyle birşey işinizi görür.

Kod:
Sub Diger()

lRow = Range("A" & Rows.Count).End(xlUp).Row
Set MR = Range("A2:A" & lRow)
x = InputBox("Lütfen kriter harfi girin", "Tek bir harf kullanın")
For Each cell In MR
If Left(cell.Value, 1) = x Or Left(cell.Value, 1) = LCase(x) Then
cell.Select
Exit Sub
End If
Next

End Sub
 
Cevaplarınız için teşekkür ederim.

Ömer Bey, "Left" için "Argumant not optional" hatası verdi.

Tevfik Bey, yapmak istediğim gibi olmasa da işe yarıyor.
Bu Left ve Right işlevleri bazen bende de sorun yaratıyor. Sebebini bilemiyorum. Sonra kendiliğinden düzeliyor.
Rich (BB code):
If Left(Veri(i, 1), 1) = "C" Then

.


Sayın Haluk düzeltmeyi yapmış, ben de bu hatanın nedenini açıklamaya çalışayım:

Left ve Right yani SOLDAN ve SAĞDAN işlevlerinin/komutlarının iki değişkeni vardır. Birincisi hangi veri üzerinde işlem yapılacağı, ikincisi ise kaç karakterin formülde değerlendirileceği. Siz komutta hangi verinin değerlendirileceğini belirlemişsiniz ama o verinin SOLDAN kaç karakterinin kullanılacağını belirtmemişsiniz. Haluk üstadımız o eksikliği tamamlamış.
 
Alternatif;

C++:
Option Explicit

Sub Goto_Cell()
    On Error GoTo 10
    Application.Goto Range("A:A").Find(Application.InputBox("Lütfen bir harf yazınız...") & "*", Cells(Rows.Count, 1), , xlWhole)
    Exit Sub
10  MsgBox "Lütfen bir harf yazınız!", vbCritical
End Sub
 
Herkese ayrı ayrı teşekkür ediyorum.
Benim için en uygun çözüm @ÖmerFaruk Beyin kodu oldu.
Aşağıdaki şekilde kendime göre uyarladım.
Bir hata satırı ekleyince tamam olacak.

Korhan Beyin güzel çalışmasında ilk harfe göre değil de harfi ilk bulduğu hicreye gidiyor.
Örnek "C" için BİLECİK'e gidiyor. Normalde bulamaması lazım.

Kod:
Sub SatıraGit()
    Dim Harf As String
    Harf = "Ç"
    Veri = Range("A2:A9999").Value
    For i = 1 To 9999
        If Left(Veri(i, 1), 1) = Harf Then
            Range("A" & i + 1).Select
            Exit Sub
        End If
    Next i
End Sub
 
Önerdiğim koda küçük bir ekleme yaptım. Tekrar deneyiniz.
 
Korhan Bey, yeni ekleme ile istediğim gibi oldu.

Ömer Bey, eğer aranan değeri bulamazsa mesaj yazması için bir hata satırı lazımdı. Onu ekledim.

Tekrar teşekkür ederim.

Yapmak istediğim -en başta göndermem gereken- örnek dosyanın son halini ekliyorum.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst