Hücre Aralığında İşlem yapmak

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Merhabalar alttaki kodu Tb_Veri1 yerine A1:F20 hücreleri arasına uygulamak istiyorum.

Tb_Veri1 = Replace(Tb_Veri1, "i", "İ")
Tb_Veri1 = Replace(Tb_Veri1, "ı", "I")
Tb_Veri1 = StrConv(Tb_Veri1, vbUpperCase)

alttaki şekilde yapınca hata alıyorum yardımlarınızı bekliyorum. teşekkür ederim.

Range ("A1:F20") = Replace("A1:F20", "i", "İ")
Range ("A1:F20")= Replace("A1:F20", "ı", "I")
Range ("A1:F20")= StrConv("A1:F20", vbUpperCase)
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Sub aa()
Dim hcr As Range
For Each hcr In Range("A1:F20")
hcr = Replace(hcr, "i", "İ")
hcr = Replace(hcr, "ı", "I")
hcr = StrConv(hcr, vbUpperCase)
Next
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
C++:
Sub aa()
Dim hcr As Range
For Each hcr In Range("A1:F20")
hcr = Replace(hcr, "i", "İ")
hcr = Replace(hcr, "ı", "I")
hcr = StrConv(hcr, vbUpperCase)
Next
End Sub
Hocam çok teşekkür ederim. değişken atamadan hücreleri yazarak çalıştırma yöntemi varmıdır peki merak ettim sadece teşekkürler
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Olabilir. Bu size çok hız kaybettiriyorsa, o yöntem oluyorsa biri cevap vercektir.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
şuan alttaki makroda A1 hücresine yazdığım harf otomatik büyük harfe çevriliyor ama bu alanı biraz genişletmeyi bir türlü başaramadım
mesela A1:F10 arası hücrelere genişletmeye çalıştığımda çok farklı yöntemler denememe rağmen hata alıyorum.
ayrıca aynı şekilde büyük harfi küçüğe çevirebilecek bir makro ihtiyacım var
lütfen bana yardımcı olurmusunuz. şimdiden teşekkür ederim



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A1") = Replace(Range("A1"), "i", "İ")
Range("A1") = Replace(Range("A1"), "ı", "I")
Range("A1") = StrConv(Range("A1"), vbUpperCase)
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
hocam bu kod çalışmadı sayfadan atıyor
Siz gönderdiğim kodu nerede ne zaman çalıştırıyorsunuz?
Böyle biir durumfda koda bazı satırlar ilave edip farklı olayların tetiklenmesini engellemelisiniz. Aşağıda buna bir örnek var.

C++:
Dim hcr As Range
Application.EnableEvents = False 'Olayların tetiklenmesini pasif ediyoruz'
For Each hcr In Range("A1:F20")
    hcr = Replace(hcr, "i", "İ")
    hcr = Replace(hcr, "ı", "I")
    hcr = StrConv(hcr, vbUpperCase)
Next
Application.EnableEvents = True 'Olayların tetiklenmesini aktif ediyoruz'
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Siz gönderdiğim kodu nerede ne zaman çalıştırıyorsunuz?
Böyle biir durumfda koda bazı satırlar ilave edip farklı olayların tetiklenmesini engellemelisiniz. Aşağıda buna bir örnek var.

C++:
Dim hcr As Range
Application.EnableEvents = False 'Olayların tetiklenmesini pasif ediyoruz'
For Each hcr In Range("A1:F20")
    hcr = Replace(hcr, "i", "İ")
    hcr = Replace(hcr, "ı", "I")
    hcr = StrConv(hcr, vbUpperCase)
Next
Application.EnableEvents = True 'Olayların tetiklenmesini aktif ediyoruz'
ben bunu Worksheet_SelectionChange te kullanıyorum. fazlasıyla ağır çalışıyor ve hücreye tıkladığımızda donuyor bunun döngüsüz daha pratik bir yolu yokmu acaba teşekkürler.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Şöyle anlayabilir miyim?
A1:F20 aralığında her bir hücreye ya da bazılarına veri girdiğinizde girdiğiniz hücredeki ifadeyi büyük harfe çevirmeye çalışıyorsunuz.
Doğruysa aşağıdakini uygulayın. Sadece giriş yaptığınız hücre değişecek.

C#:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:F20")) Is Nothing Then Exit Sub
Application.EnableEvents = False 'Olayların tetiklenmesini pasif ediyoruz'
Cells(Target.Row, Target.Column) = StrConv(Replace(Replace(Cells(Target.Row, Target.Column), "i", "İ"), "ı", "I"), vbUpperCase)
Application.EnableEvents = True 'Olayların tetiklenmesini aktif ediyoruz'
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Şöyle anlayabilir miyim?
A1:F20 aralığında her bir hücreye ya da bazılarına veri girdiğinizde girdiğiniz hücredeki ifadeyi büyük harfe çevirmeye çalışıyorsunuz.
Doğruysa aşağıdakini uygulayın. Sadece giriş yaptığınız hücre değişecek.

C#:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:F20")) Is Nothing Then Exit Sub
Application.EnableEvents = False 'Olayların tetiklenmesini pasif ediyoruz'
Cells(Target.Row, Target.Column) = StrConv(Replace(Replace(Cells(Target.Row, Target.Column), "i", "İ"), "ı", "I"), vbUpperCase)
Application.EnableEvents = True 'Olayların tetiklenmesini aktif ediyoruz'
End Sub
Evet Hocam tam olarak istediğim ve aradığım şey buydu şuan gayet hızlı ve sorunsuz çalışıyor.
çok teşekkür ederim.
aynı yöntemle büyük harfi küçüğe çevirme şansımız var mı teşekkürler
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Replace içlerini tarife gerek yok sanırım.
StrConv içinde vbLowerCase ifadesini kullanabilirsin
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Replace içlerini tarife gerek yok sanırım.
StrConv içinde vbLowerCase ifadesini kullanabilirsin
Bilgileriniz çok değerli sayenizde öğrenmek zevkli oluyor. zaman ayırdığınız için çok teşekkürler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,316
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Altenatif;

Çoklu veri girişlerinde hata vermeden çalışacaktır.

Kod:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Veri As Range
    
    On Error GoTo 10
    
    Application.EnableEvents = False
    
    Select Case True
        Case Not Intersect(Target, Range("A1:F20")) Is Nothing
        For Each Veri In Intersect(Target, Range("A1:F20"))
            Veri.Value = Evaluate("UPPER(""" & Veri.Value & """)")
        Next
    End Select
    
10  Application.EnableEvents = True
End Sub
 
Üst