Toplu olarak tarihleri aynı formata getirme

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba herkese hayırlı geceler.

Ekte gönderdiğim excel dosyamın sayfasında örnek olarak 21 ile 26'sı arasında tarihler var, hücre biçimlendirmede hücrelerin hepsi tarih formatında olduğu halde filtrede farklı tarih formatı çıkıyor.

Başka bir sayfada tarih aralıklarında toplama yapmak istediğimde normal tarih olarak yazılı olanları görmediği için toplamıyor. Tarihlerin bulunduğu hücre içerisine F2 ile girip Enter ile çıkış yapıldığı zaman filtrede farklı görünün tarihler düzeliyor. Bu işlemi yapmak için aşağıdaki kod var ancak bu işlemde bu sefer çok uzun sürüyor.

Bu işlemi yapmak için tek seferde hepsini aynı tarih formatına nasıl getirebilirim. Yardımcı olur musunuz?

Kod:
Sub SayıyaÇevir()
Application.Calculation = xlCalculationManual
ActiveSheet.Range("B2").Select
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(3).Row
SendKeys "{F2}"
SendKeys "{ENTER}"
If ActiveCell.Row > ActiveSheet.Range("B" & Rows.Count).End(3).Row Then Exit Sub
Next i
Application.Calculation = xlCalculationAutomatic
End Sub
 

Ekli dosyalar

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Deneyin.
Kod:
Sub SayiyaÇevir()
Application.Calculation = xlCalculationManual
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(3).Row
If Application.WorksheetFunction.IsText(Range("B" & i)) Then
Cells(i, 2).Value = CDate(Cells(i, 2))
End If
Next i
Application.Calculation = xlCalculationAutomatic
End Sub
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist ilginiz için çok teşekkür ediyorum, ellerinize sağlık, valla kod istediğimden daha hızlı çalışıyor.

Ekte gönderdiğim excel dosyamın İSTATİSTİK sayfasındaki butona bağlamak istedim ancak bir türlü yapamadım.

Yapmak istediğim İSTATİSTİK sayfasının C4 hücresindeki ay ismine göre ilgili ay sayfasındaki B sütunundaki tarihleri düzeltmesini istiyorum.

Yardımcı olur musunuz?
 

Ekli dosyalar

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Önceki kodu aşağıdaki gibi değiştirin ve İSTATİSTİK sayfanızdaki butona atayın.
Kod:
Sub SayiyaÇevir()
Dim sayfa As String: sayfa = Range("C4").Value
Sheets(sayfa).Select
Application.Calculation = xlCalculationManual
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(3).Row
If Application.WorksheetFunction.IsText(Range("B" & i)) Then
Cells(i, 2).Value = CDate(Cells(i, 2))
End If
Next i
Application.Calculation = xlCalculationAutomatic
End Sub
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist valla süpersiniz, ellerinize sağlık çok teşekkür ediyorum, Allah razı olsun, önceden bu işe çok uğraşıyordum.

Küçük bir sorum daha olacak, işlem bitince geri İSTATİSTİK sayfasına dönmesi için aşağıdaki gibi yaptım, ancak hata veriyor.

Sheets("İSTATİSTİK").Range("C4").Select Bu kısım hata verdi.


Kod:
Sub SayiyaÇevir()
Dim sayfa As String: sayfa = Range("C4").Value
Sheets(sayfa).Select
Application.Calculation = xlCalculationManual
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(3).Row
If Application.WorksheetFunction.IsText(Range("B" & i)) Then
Cells(i, 2).Value = CDate(Cells(i, 2))
End If
Next i
Sheets("İSTATİSTİK").Range("C4").Select 'Bu kısım hata verdi.
Application.Calculation = xlCalculationAutomatic
End Sub
 
Son düzenleme:

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Sheets("İSTATİSTİK").Select
Range("C4").select
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist anladım, ne kadar teşekkür etsem azdır. Allah razı olsun.

Hayırlı geceler diliyorum.
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Rica ederim, Allah sizden de razı olsun. Sağolun, varolun.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Deneyin.
Kod:
Sub SayiyaÇevir()
Application.Calculation = xlCalculationManual
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(3).Row
If Application.WorksheetFunction.IsText(Range("B" & i)) Then
Cells(i, 2).Value = CDate(Cells(i, 2))
End If
Next i
Application.Calculation = xlCalculationAutomatic
End Sub
Sayın turist bu işlemi sadece H1 ile H2 hücresine bir türlü uyduramadım.
Yardımcı olur musunuz?
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist aslında aşağıdaki kod içerisinde tarih kısmını düzeltme var ama çalışmıyor galiba.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H1:H2")) Is Nothing Then
Cancel = True
takvim.Show
If tarih <> Empty Then
Target = Format(tarih, "dd.mm.yyyy")
End If
End If
End Sub
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
SayınASLAN7410,
İki kod arasında farklar var.
Gerçekten ne yapmak istediğinizi "NET" olarak açıklarsanız ve Örnek Excel sayfanızı ekleyip üzerinde belirtirseniz, yardım almanız daha kolay olur.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist kusura bakmayın rahatsız ediyorum.

H1 ve H2'de fareyi tıkladığımda ekrana takvim geliyor, buradan takvimden istediğim tarihleri işaretliyorum. Butona bastığımda bu iki tarih aralığını bana filitreleme yapmıyor, ama H1 ve H2 hücrelerindeki tarihleri elle girip veya bu hücrelere fare ile girip çıktığım zaman buton çalışıyor.

Aşağıdaki kod ile bunu yaptığımda ilgili hücreler tarih formatı gibi görünüyor ama tarih formatında olmadığı için istenilen veri gelmiyor.
Yapmak istediğim H1 ve H2 hücrelerini tarih formatına çevirmek.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H1:H2")) Is Nothing Then
Cancel = True
takvim.Show
If tarih <> Empty Then
Target = Format(tarih, "dd.mm.yyyy")
End If
End If
End Sub
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist bir tane örnek gönderiyorum, bu örnekte H1 ve H2 hücresine açılan takvimden istediğin tarihleri işaretleyip, yandaki butona bastığımda gerekli filitreleme yapmıyor.

Aşağıdaki kod'da gerekli tarihler işaretlendikten sonra ilgili hücreler tekrar tarih formatına alınsa sorun çözülür diye düşünüyorum.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H1:H2")) Is Nothing Then
Cancel = True
takvim.Show
If tarih <> Empty Then
Target = Format(tarih, "dd.mm.yyyy")
End If
End If
End Sub
 

Ekli dosyalar

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,104
Excel Vers. ve Dili
office2010
Target = Format(tarih, "dd.mm.yyyy")
satırını bu şekilde deneyin.

Target = CDate(tarih)
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Ziynettin Bey, valla süper oldu, Allah razı olsun, çok teşekkür ediyorum.
Aşağıdakilerin arasındaki fark nedir? Küçük bir bilgi verebilir misiniz?

Target = Format(tarih, "dd.mm.yyyy")
Target = CDate(tarih)
 
Son düzenleme:

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
CDate yazılan değeri TARİH formatına dönüştürür.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist ve Sayın Ziynettin, ilginize çok teşekkür ediyorum, ellerinize sağlık.

Hayırlı geceler diliyorum.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın turist, hayırlı akşamlar diliyorum.

Aşağıdaki kod çok işimi görüyor, çok teşekkür ediyorum, bu kodu başka aktarma kodu arasına eklediğimde, aktarılan sayfaya geçiyor orada işlemi yapıp tekrar ana sayfaya dönüyor.
Bu işlemi sayfaya geçmeden yapabilir mi?
Kod:
Sub TariheÇevir1()
Sheets("ARŞİV").Activate
Application.Calculation = xlCalculationManual
For i = 2 To ActiveSheet.Range("E" & Rows.Count).End(3).Row
If Application.WorksheetFunction.IsText(Range("E" & i)) Then
Cells(i, 5).Value = CDate(Cells(i, 5))
End If
Next i
Application.Calculation = xlCalculationAutomatic
End Sub
 

Ekli dosyalar

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,104
Excel Vers. ve Dili
office2010
Sayın turist bağlı değil kod revize edildi.

PHP:
Sub TariheÇevir1()
Application.Calculation = xlCalculationManual
    With Sheets("ARŞİV")
        For i = 2 To .Range("E" & Rows.Count).End(3).Row
            If Application.WorksheetFunction.IsText(.Range("E" & i)) Then
                .Cells(i, 5).Value = CDate(.Cells(i, 5))
            End If
        Next i
    End With
Application.Calculation = xlCalculationAutomatic
End Sub
 
Üst