InputBox aracılığıyla değiştirilecek metin ve yerine getirilecek metin bilgileri verildiğinde seçilen alanı kontrol edip değiştirme işlemi yapıyor.
Option Explicit
Sub SecilenAlandaBirMetniBaskaBirMetinleDegistir()
Dim i As Integer
Dim degistirilecek As String
Dim yerine_getirilecek As String
Dim firstAddress As String
Dim c As Object
degistirilecek = _
InputBox("Değiştirilecek ifadeyi girin:", "DEĞER GİRİŞİ 1")
yerine_getirilecek = _
InputBox("Yerine getirilecek ifadeyi girin:", "DEĞER GİRİŞİ 2")
With Selection
Set c = .Find(degistirilecek, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = _
Application.WorksheetFunction.Substitute( _
c.Value, degistirilecek, yerine_getirilecek)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
Option Explicit
Sub SecilenAlandaBirMetniBaskaBirMetinleDegistir()
'--------------------------------------------------
'Değişkenler
'--------------------------------------------------
Dim i As Integer
Dim degistirilecek As String
Dim yerine_getirilecek As String
Dim ilkAdres As String
Dim alan As Object
'--------------------------------------------------
'Değiştirilecek metni InputBox ile
'al ve değişkene aktar.
'--------------------------------------------------
degistirilecek = _
InputBox("Değiştirilecek ifadeyi girin:", "DEĞER GİRİŞİ 1")
'--------------------------------------------------
'Yerine getirilecek metni InputBox
'ile al ve değişkene aktar.
'--------------------------------------------------
yerine_getirilecek = _
InputBox("Yerine getirilecek ifadeyi girin:", "DEĞER GİRİŞİ 2")
'--------------------------------------------------
'Seçilen alan üzerinde işlem yap.
'--------------------------------------------------
With Selection
'--------------------------------------------------
'Alanların (Range) değerlerinde değiştirilecek
'metni içerenleri bul ve alan isimli değişkene ata.
'--------------------------------------------------
Set alan = .Find(degistirilecek, LookIn:=xlValues)
'--------------------------------------------------
'Eğer değiştirilecek veriyi içeren
'alan bulunduysa işlem yap.
'--------------------------------------------------
If Not alan Is Nothing Then
'--------------------------------------------------
'Elenmiş Range içeriğinin
'ilk hücresinin adresini al.
'--------------------------------------------------
ilkAdres = alan.Address
'--------------------------------------------------
'Döngüye başla.
'--------------------------------------------------
Do
'--------------------------------------------------
'Metin değiştirme işlemini yap.
'--------------------------------------------------
alan.Value = _
Application.WorksheetFunction.Substitute( _
alan.Value, degistirilecek, yerine_getirilecek)
'--------------------------------------------------
'Sonraki elenmiş alana geç.
'FindNext metodu ile bize verilen alanı
'alan isimli değişkene ata.
'--------------------------------------------------
Set alan = .FindNext(alan)
'--------------------------------------------------
'Değiştirilecek veiyi içeren alanlar bitene
'kadar ve döngüdeki alan bilgisi ilkAdres
'değişkenindeki alan bilgisine eşit değilse
'döngüye devam et.
'--------------------------------------------------
Loop While Not alan Is Nothing And alan.Address <> ilkAdres
End If
End With
End Sub