Tarihe Ay Ekleme - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html) +--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html) +--- Konu Başlığı: Tarihe Ay Ekleme (/konu-tarihe-ay-ekleme.html) Sayfalar:
1
2
|
Tarihe Ay Ekleme - tarkanaykın - 26/05/2022 merhaba arkadaşlar, tarihe sayı formatında ay eklemeyi öğrendim ama benim durumum biraz daha karışık; bende bir tarih sütunu, bir de bu tarihten itibaren ki süreyi belirten ifadeler var ve o sütunda "5 ay", "10 gün" " 8 ay", "2 yıl" ... gibi yazılar var. Amacım tarih sütununa bu ifadeleri eklemek, çıkan sonucu bir sonraki sütuna yazdırmak. eğer ki sadece "5" gibi bir ifadeyse işim kolay, ama "5 ay" gibi olursa işin içine string de girdiğinden işim zor, bunu left fonksiyonuyla yapmaya çalışsam olur da o da tam iş görmez diye düşünüyorum, acaba bir ifadedeki string ile sayıyı ayıran bir fonksiyon var mı? RE: Tarihe Ay Ekleme - tarkanaykın - 27/05/2022 bi yerden sadece sayıyı ayıran bir makro buldum ve ben de aynı anda metni de ayıracak şekilde revize etmeye çalıştım ama hiç çalışma belirtisi göstermiyor, hata bile vermiyor, bi bakabilir misiniz? teşekkürler. Dosyam ekte... Sub Düğme1_Tıklat() Dim metin As String Dim nums As String For i = 4 To Cells(65536, 12).End(xlUp).Row For b = 1 To Len(Cells(i, 12)) If IsNumeric(Mid(Cells(i, 12), b, 1)) = True Then nums = nums & Mid(Cells(i, 12), b, 1) Else metin = metin & Mid(Cells(i, 12), b, 1) End If Next b If metin = "AY" Then Cells(i, 13).Valuıe = DateAdd("m", nums, Cells(i, 9).Value) Else End If If metin = "GÜN" Then Cells(i, 13).Valuıe = DateAdd("d", nums, Cells(i, 9).Value) Else End If If metin = "YIL" Then Cells(i, 13).Valuıe = DateAdd("y", nums, Cells(i, 9).Value) Else End If nums = "" metin = "" Next i End Sub RE: Tarihe Ay Ekleme - mozuer - 27/05/2022 Function fGetDate(pStrVal As String, pDateVal As Variant) On Error Resume Next Dim i As Integer, xLen As Integer Dim xStr As String, xText As String, xNum As String, xDate As String fGetDate = vbNullString xNum = vbNullString xText = vbNullString xLen = Len(pStrVal) For i = 1 To xLen xStr = Mid(pStrVal, i, 1) If IsNumeric(xStr) Then xNum = xNum + xStr Else xText = xText + xStr End If Next xText = Trim(xText) Select Case xText Case "gün", "Gün", "GÜN" xDate = "d" Case "hafta", "Hafta", "HAFTA" xDate = "ww" Case "ay", "Ay", "AY" xDate = "m" Case "yıl", "Yıl", "YIL" xDate = "yyyy" End Select fGetDate = DateAdd(xDate, CInt(xNum), pDateVal) End Function Örneğin; A1 hücresi 5 gün olsun B1 hücresi 27.05.2022 olsun C1 hücresine = fGetDate(A1;B1) yazıp dener misiniz istediğinizi karşılayabilir... RE: Tarihe Ay Ekleme - tarkanaykın - 27/05/2022 sayın mozuer, ilgilendiğiniz için çok teşekkür ederim, dediğinizi yaptım ve şöyle bir sayı yazıldı c1 hücresine: 44713 RE: Tarihe Ay Ekleme - mozuer - 27/05/2022 Tarihi yazdıracağınız hücre formatı Kısa Tarih biçiminde olsun Ya da son satırı şu şekilde yazın fGetDate = Format(DateAdd(xDate, CInt(xNum), pDateVal), "Short Date") RE: Tarihe Ay Ekleme - tarkanaykın - 27/05/2022 tabi ya onu akıl edemedim çok teşekkür ederim, süper oldu yarın çok işime yarayacak, çok teşekkürler, iyi geceler olsun, kolay gelsin yalnız benim anlamadığım bir şey var benim bulduğum kod neden ne hata verdi ve neden çalışmadı acaba çok merak ediyorum, mantıklı bir dizge ama anlamadım bir türlü, neyse. |