• DİKKAT

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

Belirli aralığı kod ile değiştirmek

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba herkese hayırlı akşamlar.

Ekte gönderdiğim excel dosyamın sayfa1'de C1 ile I20 aralığında bazı yıllar var, bunları Ctrl+H ile yapıyorum ama, yıllar hep farklı olduğu için bunları tek tek yapmaya çalışıyorum, bu da zaman alıyor.

Yapmak istediğim bu aralıktaki yılları 2020'den farklı olanları topluca değiştirmek istiyorum. Makro kaydet yöntemi ile yapmaya çalıştım olmadı.

Yardımcı olur musunuz?
 

Ekli dosyalar

Deneyin.
Kod:
Sub Makro1()
For Each a In Range("C1:I20")
    If a.Value <> 2020 Then
    Range("C1:I20").Replace What:="*", Replacement:="2020", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    End If
Next
End Sub
 
Sayın turist, ilginiz için çok teşekkür ediyorum, bu aralıktaki verilerdeki yazılarıda yıla çeviriyor.

Kod:
Sub Makro1()
For Each a In Range("C1:I20")
    If a.Value <> Range("L1") Then
    Range("C1:I20").Replace What:="*", Replacement:=Range("L1"), LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    End If
Next
End Sub
 
Merhaba.
Alternatif olsun.
Rich (BB code):
Sub DEGISTIR()
For Each hcr In [C1:I20]
    If IsNumeric(hcr.Value) And hcr <> "" And hcr <> "2020" Then hcr.Value = "2020"
Next
End Sub
 
Son düzenleme:
Kod:
Sub askm()
Application.ScreenUpdating = False
For i = 3 To 9
    For x = 1 To 20
        If Cells(x, i) <> "" And Cells(x, i) <> 2020 Then
            Cells(x, i) = 2020
        End If
    Next x
Next i
Application.ScreenUpdating = True
MsgBox "İşlem tamam...", vbInformation
End Sub
 
Hücrede METİN olması durumunu düzelterek önceki cevabımı güncelledim, sayfayı yenileyerek dener misiniz?
 
Son düzenleme:
Cevap veren tüm arkadaşlar kodlar gayet güzel çalışıyor ellerinize sağlık ama istediğim sonucu alamıyorum.

Ekte gönderdiğim excel dosyasındaki formül içerisindeki yılı değiştirmek istiyorum aslında, kodları uyguladığımda formülleri iptal ediyor.
 

Ekli dosyalar

Aşağıdaki gibi deneyin isterseniz.
Rich (BB code):
Sub FORMUL_DEGISTIR()
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
On Error Resume Next
For Each hcr In [C1:I20]
    If hcr.HasFormula Then
        hcr.Formula = Replace(hcr.Formula, Mid(hcr.Formula, WorksheetFunction.Search("[", hcr.Formula) + 1, 4), [L1])
    End If
Next
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
End Sub
 
Deneyin.
Kod:
Sub Makro2()
For Each a In Range("C1:I20")
If a.HasFormula = True Then
    Range("C1:I20").Replace What:="2018", Replacement:=Range("L1"), LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    End If
Next
End Sub
 
Sayın Ömer Bey, 8. mesajınızdaki kodlar işimi gördü ellerinize sağlık, çok teşekkür ediyorum.
Hayırlı geceler diliyorum.
 
Sayın turist, 9.mesajınızdaki kodlar gayet güzel çalışıyor, ellerinize sağlık, burada 2018 sabit olmadığı için, L1'deki yıla göre değiştirmek istiyorum.
 
Geri
Üst