Skip to main content

AccessTr.neT


Formülü Vba Makro İle Yazma

Formülü Vba Makro İle Yazma

Çözüldü #1
Kod
=METNEÇEVİR(EĞER(MOD(SAĞDAN(F5;1);2)=1;TARİH(YIL(C5)+TOPLA(F5+J5);AY(C5)+TOPLA(G5+K5);GÜN(C5)+TOPLA(H5+L5));TARİH(YIL(D5)-J5;AY(D5)-K5;GÜN(D5)-L5));"gg.aa.yyyy")

Es Selamün Aleyküm
Ustam yukarıdaki formülü R1C1 formatı ile Makro kaydet ile Excel kendisi yapıyor.

METNEÇEVİR yerine text yazdım
SAĞDAN yerine rıght gibi değiştirdim ama olmadı




Bu formül normal Vba formatı ile nasıl yazılır?
malatyalı, 31-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
Aleyküm selam abey.Benim açımdan son bir defa daha örnek dosya eklemeniz gerek diyeceğim.Dahada açtığınız konularda dosya olmazsa kendimce cevap yazmayacağım Img-cray
Başka konunuzdada dosya ekleyin diye yazmıştık.Tamam bazı sorularda gerek olmayabilir lakin böyle sorularda şart.Gereksiz yere bir sürü yazı yazdım Img-grin
Cevapla
#3
Özür dilerim.
Ayrıca da bayramınız mübarek olsun. Dosya ektedir. "F" sütununda ki tarih işleminin makro halini rica ediyorum
.zip Yeni Microsoft Excel Worksheet.zip (Dosya Boyutu: 6,92 KB | İndirme Sayısı: 5)
malatyalı, 31-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#4
aşağıdaki makroyu deneyebilirsiniz
bir butona atayıp çalıştırdığınızda D sütunundaki son satıra göre tüm F sütunlarını doldurur
Visual Basic Code
Dim Sht As Worksheet

Set Sht = ThisWorkbook.Worksheets("Sayfa3")
With Sht
    SonStr = .Cells(.Rows.Count, "D").End(xlUp).Row
    
    For x = 2 To SonStr
        .Range("F" & x).Value = Format(IIf((.Range("H" & x) Mod 2) = 1, _
                                    DateSerial(Year(.Range("D" & x)) + .Range("H" & x) + .Range("L" & x), Month(.Range("D" & x)) + .Range("I" & x) + .Range("M" & x), Day(.Range("D" & x)) + .Range("J" & x) + .Range("N" & x)), _
                                    DateSerial(Year(.Range("E" & x)) - .Range("L" & x), Month(.Range("E" & x)) - .Range("M" & x), Day(.Range("E" & x)) - .Range("N" & x)) _
                                    ), "dd.mm.yyyy")

    Next x
End With
Cevapla
#5
Bende hazırlamıştım Img-grinHerkese Hayırlı Bayramlar.

[Resim: do.php?img=11029]
https://resim.accesstr.net/do.php?img=11029

Visual Basic Code
Sub kodFormul()

Dim tarh As Date, i As Integer
Dim topla1 As Integer, topla2 As Integer, topla3 As Integer
Dim cikart1 As Integer, cikart2 As Integer, cikart3 As Integer

With ThisWorkbook.Sheets("Sayfa3")
    .Range("A2:A" & Rows.Count).ClearContents
    For i = 2 To .Cells(Rows.Count, "D").End(3).Row
        topla1 = WorksheetFunction.Sum(.Cells(i, "H"), .Cells(i, "L"))
        topla2 = WorksheetFunction.Sum(.Cells(i, "i"), .Cells(i, "m"))
        topla3 = WorksheetFunction.Sum(.Cells(i, "j"), .Cells(i, "n"))
        
        cikart1 = .Cells(i, "L").Value
        cikart2 = .Cells(i, "M").Value
        cikart3 = .Cells(i, "N").Value
        
        If Right(.Cells(i, "H"), 1) Mod 2 = 1 Then
            tarh = DateSerial(Year(.Cells(i, "D").Value) + topla1, Month(.Cells(i, "D").Value) + topla2, Day(.Cells(i, "D").Value) + topla3)
        Else
            tarh = DateSerial(Year(.Cells(i, "E").Value) - cikart1, Month(.Cells(i, "E").Value) - cikart2, Day(.Cells(i, "E").Value) - cikart3)
        End If
        
        .Cells(i, "A").Value = tarh
        .Range("A2:A" & Rows.Count).NumberFormat = "dd.mm.yyyy"
    Next i
End With
End Sub
Cevapla
#6
Berduş ustam Bayramınız mübarek olsun.
Feraz Ustam Bayramınız mübarek olsun.
Daha nice bayramlar göresiniz inşallah.

Yardımlarınızı esirgemediğiniz için de sonsuz teşekkürler. Emanetiniz Canı size verene
malatyalı, 31-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da