Makroyu Tekrar Ettirme

Katılım
18 Mart 2021
Mesajlar
26
Excel Vers. ve Dili
2016. Türkçe
Arkadaşlar merhaba,
Bir firmanın çalışanlarının daha önce hazırlanmış görev formlarının üzerinden güncelleme yapıyorum. Ne yazık ki aynı excel sayfasında onlarca form var ama bazı standart kelimelerde var.

Şimdi amacım aynı kitaptaki onlarca forma aynı ifadeyi ekletmek. Şöyle bir makro yazdım kendimce.

Sub gorevformu()
Range("A:d").Find("şehirdışında").EntireRow.Insert
Range("A:d").Find("şehirdışında").Select
ActiveCell.Offset(-1,0).Resize(1,4).Select
Selection.Merge True
ActiveCell.FormulaR1C1=_
"Amirinin verdiği bütün işleri eksiksiz yapmak"
Selection.Font.Bold = False
End Sub

Bu makrodan sonra 50 tane görev formuda olsa her çalıştırdığımda sadece ilk Şehirdışında kelimesini bulup önün üstünü birleştirip cümlemi ekliyor. Diğer görev formlarına gitmiyor. Diğer formlarda ki kelimeyi bulup nasıl kullanabilirim.

Biliyorum genellikle örnek dosya istiyorsunuz ama İnternete kapalı firmada çalıştığım için telefondan konu açıyorum, gerekirse akşam evimde bir form oluşturup ekleyebilirim. Şimdiden teşekkürler.
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,616
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Merhaba her form için ayrı sayfa mı var ?
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Findnext ile sonraki değeri buldurabilirsiniz.
Örnek olarak aşağıdaki kodu deneyiniz. Örnek dosya üzerinde denenmediği için hata oluşma olasılığının yüksek olduğunu unutmayınız.
Kod:
Sub gorevformu()
Dim bul As Range
Set bul = Range("A:d").Find("şehirdışında")
sat = bul.Row + 1
Do
    bul.EntireRow.Insert
    With bul.Offset(-1, 0).Resize(1, 4)
        .Merge True
        .FormulaR1C1 = "Amirinin verdiği bütün işleri eksiksiz yapmak"
        .Font.Bold = False
    End With
    Set bul = Range("A:D").FindNext(bul)
Loop While bul.Row > sat
End Sub
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
makronun durma koşulu eksik olabilir.
Belki olabilir, kapsamlı test etme imkanım olmadı.
Yaptığım denemede problem olmamıştı, ancak farklı senaryolarda belki olabilir.
Hata denetimi de içermesi açısından aşağıdaki kod kullanılabilir.
Kod:
Sub gorevformu()
Dim bul As Range, sat As Long
Set bul = Range("A:d").Find("şehirdışında")
If bul Is Nothing Then
    MsgBox "Veri bulunamadı."
    Exit Sub
End If
Do
    bul.EntireRow.Insert
    With bul.Offset(-1, 0).Resize(1, 4)
        .Merge True
        .FormulaR1C1 = "Amirinin verdiği bütün işleri eksiksiz yapmak"
        .Font.Bold = False
    End With
    sat = bul.Row
    Set bul = Range("A:D").FindNext(bul)
Loop While bul.Row > sat
End Sub
 
Katılım
18 Mart 2021
Mesajlar
26
Excel Vers. ve Dili
2016. Türkçe
Belki olabilir, kapsamlı test etme imkanım olmadı.
Yaptığım denemede problem olmamıştı, ancak farklı senaryolarda belki olabilir.
Hata denetimi de içermesi açısından aşağıdaki kod kullanılabilir.
Kod:
Sub gorevformu()
Dim bul As Range, sat As Long
Set bul = Range("A:d").Find("şehirdışında")
If bul Is Nothing Then
    MsgBox "Veri bulunamadı."
    Exit Sub
End If
Do
    bul.EntireRow.Insert
    With bul.Offset(-1, 0).Resize(1, 4)
        .Merge True
        .FormulaR1C1 = "Amirinin verdiği bütün işleri eksiksiz yapmak"
        .Font.Bold = False
    End With
    sat = bul.Row
    Set bul = Range("A:D").FindNext(bul)
Loop While bul.Row > sat
End Sub
Elinize sağlık sorunsuz çalıştı.
Çok teşekkür ederim.
Önünüzde saygıyla eğiliyorum.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
İyi çalışmalar diliyorum.
 
Üst