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

ZuCChiNi

Altın Üye
Katılım
26 Haziran 2006
Mesajlar
265
Excel Vers. ve Dili
Excel 2016, TR, x32
Altın Üyelik Bitiş Tarihi
10-10-2029
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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
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

ZuCChiNi

Altın Üye
Katılım
26 Haziran 2006
Mesajlar
265
Excel Vers. ve Dili
Excel 2016, TR, x32
Altın Üyelik Bitiş Tarihi
10-10-2029
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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu Left ve Right işlevleri bazen bende de sorun yaratıyor. Sebebini bilemiyorum. Sonra kendiliğinden düzeliyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Rich (BB code):
If Left(Veri(i, 1), 1) = "C" Then
.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşım,
Kısa bir örnek koymuş olsanız, daha farklı çözülebilirdi.
İyi çalışmalar
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
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
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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ış.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

ZuCChiNi

Altın Üye
Katılım
26 Haziran 2006
Mesajlar
265
Excel Vers. ve Dili
Excel 2016, TR, x32
Altın Üyelik Bitiş Tarihi
10-10-2029
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,274
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerdiğim koda küçük bir ekleme yaptım. Tekrar deneyiniz.
 

ZuCChiNi

Altın Üye
Katılım
26 Haziran 2006
Mesajlar
265
Excel Vers. ve Dili
Excel 2016, TR, x32
Altın Üyelik Bitiş Tarihi
10-10-2029
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:
Üst