Tarihlere Göre Hücre oluşturma

Katılım
6 Ocak 2021
Mesajlar
8
Excel Vers. ve Dili
2010 türkçe
Merhabalar sayın forum kullanıcıları, bir sorunum var kısaca anlatayım.
Excel sayfasında günlere ait kayıtlar var ve her tarihin bitimine birleştirilmiş bir hücre actırıp suyun olarak bulunan verileri saydırıp bir metin yazdırmam gerekli . Örneğin yanlızca 3 adet evrak vardır. Şeklinde yazmak istiyorum
Excel dosyasını ek yapamıyorum fakat görselini ekliyorum.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
" her tarihin bitimine birleştirilmiş bir hücre actırıp "
Bunun da görselini atarmısın
 
Katılım
6 Ocak 2021
Mesajlar
8
Excel Vers. ve Dili
2010 türkçe
Hocam excellde 3 farkı tarih var. Farklı tarihlerin altına yapacak işlemi. Birazdan örnek atıyorum
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sayfanın Kod bölümünde çalıştırın
C++:
Sub SatırEkle()
    i = 4 'ilk satır numaranız, yanlışsa doğrusuyla değiştirin
    Do
        say = WorksheetFunction.CountIf(Range("C:C"), Range("C" & i))
        Rows(i + say).Insert
        'Belirmediğiniz için A-H sütunlarını birleştirdim
        'Farklıysa harfleri değiştirin
        'Ayrıca hücre formatını belirtirseniz o da ayarlanabilir.
        Range("A" & i + say, "H" & i + say).Merge
        Range("A" & i + say) = "YALNIZCA " & say & " ADET EVRAK KAYDEDİLMİŞTİR ."
        Range("A" & i + say).HorizontalAlignment = xlCenter
        i = i + say + 1
    Loop Until Not IsDate(Range("C" & i))
End Sub
 
Katılım
6 Ocak 2021
Mesajlar
8
Excel Vers. ve Dili
2010 türkçe
Sayfanın Kod bölümünde çalıştırın
C++:
Sub SatırEkle()
    i = 4 'ilk satır numaranız, yanlışsa doğrusuyla değiştirin
    Do
        say = WorksheetFunction.CountIf(Range("C:C"), Range("C" & i))
        Rows(i + say).Insert
        'Belirmediğiniz için A-H sütunlarını birleştirdim
        'Farklıysa harfleri değiştirin
        'Ayrıca hücre formatını belirtirseniz o da ayarlanabilir.
        Range("A" & i + say, "H" & i + say).Merge
        Range("A" & i + say) = "YALNIZCA " & say & " ADET EVRAK KAYDEDİLMİŞTİR ."
        Range("A" & i + say).HorizontalAlignment = xlCenter
        i = i + say + 1
    Loop Until Not IsDate(Range("C" & i))
End Sub
Hocam bu kodları çalıştırdım fakat buton veya worksheet yaptığımda ilk açtığı kaydı açmaya devam ediyor. Ve alttaraflara kayıt açmıyor. Exceli tekrar temizleyip yeniden makroyu kullanmam gerekiyor.
Bunu kodlardan çözemedim.
Çözebilir miyiz. Yoksa bu kodları tek tıkla silinecek ve sonra tekrar butonla çalışacak hali ilede yapabilir miyiz.
Yani bu işleme silme mi koysak bilemedim
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Range("A" & i + say, "H" & i + say).Merge
Range("A" & i + say) = "YALNIZCA " & say & " ADET EVRAK KAYDEDİLMİŞTİR ."

işleminden dolayı, ilkinin peşine kodları tekrar çalıştırırsanız dediğiniz durum olmak zorunda.

Kodların başında gerekli kontrol ve silme işlemlerini ekledim.. Örnek dosyanız olmadığı için kontrol edemedim. Deneyin lütfen.
C++:
Sub SatırEkle()
    For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
        If InStr(1, Range("A1"), "YALNIZCA ") > 0 Then Rows(i).Delete
    Next i
    i = 4 'ilk satır numaranız, yanlışsa doğrusuyla değiştirin
    Do
        say = WorksheetFunction.CountIf(Range("C:C"), Range("C" & i))
        Rows(i + say).Insert
        'Belirmediğiniz için A-H sütunlarını birleştirdim
        'Farklıysa harfleri değiştirin
        'Ayrıca hücre formatını belirtirseniz o da ayarlanabilir.
        Range("A" & i + say, "H" & i + say).Merge
        Range("A" & i + say) = "YALNIZCA " & say & " ADET EVRAK KAYDEDİLMİŞTİR ."
        Range("A" & i + say).HorizontalAlignment = xlCenter
        i = i + say + 1
    Loop Until Not IsDate(Range("C" & i))
End Sub
 
Katılım
6 Ocak 2021
Mesajlar
8
Excel Vers. ve Dili
2010 türkçe
Range("A" & i + say, "H" & i + say).Merge
Range("A" & i + say) = "YALNIZCA " & say & " ADET EVRAK KAYDEDİLMİŞTİR ."

işleminden dolayı, ilkinin peşine kodları tekrar çalıştırırsanız dediğiniz durum olmak zorunda.

Kodların başında gerekli kontrol ve silme işlemlerini ekledim.. Örnek dosyanız olmadığı için kontrol edemedim. Deneyin lütfen.
C++:
Sub SatırEkle()
    For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
        If InStr(1, Range("A1"), "YALNIZCA ") > 0 Then Rows(i).Delete
    Next i
    i = 4 'ilk satır numaranız, yanlışsa doğrusuyla değiştirin
    Do
        say = WorksheetFunction.CountIf(Range("C:C"), Range("C" & i))
        Rows(i + say).Insert
        'Belirmediğiniz için A-H sütunlarını birleştirdim
        'Farklıysa harfleri değiştirin
        'Ayrıca hücre formatını belirtirseniz o da ayarlanabilir.
        Range("A" & i + say, "H" & i + say).Merge
        Range("A" & i + say) = "YALNIZCA " & say & " ADET EVRAK KAYDEDİLMİŞTİR ."
        Range("A" & i + say).HorizontalAlignment = xlCenter
        i = i + say + 1
    Loop Until Not IsDate(Range("C" & i))
End Sub
Denedim hocam ama aynı şekilde çalışıyor.
Üst üste kullanınca macroyu ilk yazdığının altına devam ediyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
If InStr(1, Range("A" & i ), "YALNIZCA ") > 0 Then Rows(i).Delete
bu satırı yeni haliyle değiştirir misin
 
Üst