• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

1 ay sonrasını veren Fonksiyon

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Excel 2007 de bulunan edate fonksiyonu ihtiyacımı karşılıyor ancak altındaki versiyonlarda çalışmıyor. İsteğim şudur:

DURUM1:
15/11/2008 girip x yazınca
x-Sonuç
0-15/11/2008
1-15/12/2008
2-15/01/2009
3-15/02/2009
4-15/03/2009
5-15/04/2009
6-15/05/2009
12-15/11/2009
13-15/12/2009
14-15/01/2010

DURUM2:
31/12/2008 girip x yazınca
x-Sonuç
0-31/12/2008
1-31/01/2009
2-28/02/2009
3-31/03/2009
4-30/04/2009
5-31/05/2009
6-30/06/2009
7-31/07/2009
12-31/12/2009
13-31/01/2010


mümkün müdür?
 
Merhaba,

1. durumda Tarihin A1 de olduğunu varsayarsak :

A2:

Kod:
=TARİH(YIL(A1);AY(A1)+1;GÜN(A1))

2. Durum, Tarih B1 de

B2 :

Kod:
=TARİH(YIL(B1);AY(B1)+2;0)
 

Ekli dosyalar

hocam alakanıza teşekkür ederim. ancak tek formülle iki durumunda çözülmesi lazım ben bunu senet programında kullanacağım.

ilk ödeme tarihini ve vade sayısını yazınca otomatik olarak senetler oluşacak 2007 için yaptım ama ofis 2003 te hata veriyor. :(
 
A1'de tarih,
A2'de eklenecek ay varsa;

ATP fonksiyonu ile;

=EDATE(A1;A2)

Yerleşik fonksiyonlarla;

=DATE(YEAR(A1);MONTH(A1)+A2;MIN(DAY(A1);DAY(DATE(YEAR(A1);MONTH(A1)+A2+1;0))))


.
 
Merhaba,

A1 de tarih B1 de süre(Ay)
 

Ekli dosyalar

Analysis ToolPack


.

2003 olan makinelerde var mı?
VBA da
worksheetfunction.edate(arg1,arg2) şeklindemi kullanılıyor?
ben 2007 de bu şekilde çözmüştüm. bir arkadaşta 2003 var şu an deneme şansım olmadığı için soruyorum.
 
2003 olan makinelerde var mı?
VBA da
worksheetfunction.edate(arg1,arg2) şeklindemi kullanılıyor?
ben 2007 de bu şekilde çözmüştüm. bir arkadaşta 2003 var şu an deneme şansım olmadığı için soruyorum.

Bu bir eklentidir. Office'in CD'sinde var.



Eklentiyi yüklemek için:

1. Araçlar / Tools menüsünden Eklentiler'i / Add_Ins tıklatın.
2. Kullanılabilir eklentiler listesinde, ToolPak Çözümleyicisi / Analysis ToolPak kutusunu seçin ve Tamam'ı / OK tıklatın.
3. Eğer yüklenmiyorsa, Office kur programındaki yönergeleri izleyin.


.
 
bu işlemi yaptığımda aşağıdaki kod ofis2003 te çalışır mı?

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
'If Intersect(Target, Union(Range("B2:B10000"), Range("h2:h10000"))) Is Nothing Then Exit Sub
If Intersect(Target, Range("B14")) Is Nothing Then Exit Sub
Call SubOdemeTablosu1
End Sub

Private Sub SubOdemeTablosu1()
Range("A19:G100").ClearContents
Dim i           As Integer
Dim iBasSat     As Integer
Dim lMiktar     As Long
Dim dBasTar     As Date
Dim iVade       As Integer
Dim iBasAy      As Integer
'ReDim tmpARR(1)
'====================
i = 0
iBasSat = 19
lMiktar = Cells(12, 2)
dBasTar = Cells(13, 2)
iVade = Cells(14, 2)
iBasAy = Month(dBasTar)
'======================
If iVade = 0 Then Exit Sub
ltaksit = lMiktar / iVade
'ActiveCell.FormulaR1C1 = "=FLOOR(RC[-7],0.01)"
'ltaksit = WorksheetFunction.Floor(ltaksit, 0.1)
ltaksit = WorksheetFunction.Floor(ltaksit, 1)

For i = 1 To iVade
  iYazSat = iBasSat + (i - 1)
[B][COLOR=Red]  iYazTar = WorksheetFunction.EDate(dBasTar, i - 1)[/COLOR][/B]
  Cells(iYazSat, 1) = iYazTar
  
  'And iVade <> 1
  If i = iVade Then
    If lMiktar = (ltaksit * iVade) Then
       Cells(iYazSat, 2) = ltaksit
    Else
      Cells(iYazSat, 2) = lMiktar - (ltaksit * (iVade - 1))
    End If
  Else
    Cells(iYazSat, 2) = ltaksit
  End If
  
  'Cells(iYazSat, 2) = ltaksit
  tmpARR = Split(Cells(iYazSat, 2), ",")
      
    If UBound(tmpARR) = 0 Then
      Cells(iYazSat, 3) = tmpARR(0)
      Cells(iYazSat, 4) = 0
    Else
      Cells(iYazSat, 3) = tmpARR(0)
      If Len(Left(tmpARR(1), 2)) = 1 Then
        Cells(iYazSat, 4) = Left(tmpARR(1), 2) * 10
      Else
        Cells(iYazSat, 4) = Left(tmpARR(1), 2)
      End If
    End If
    Erase tmpARR
    Cells(iYazSat, 5) = i
    metin = "İş bu emre muharrer senedim mukabilinde " & Format(iYazTar, "dd.mm.yyyy")
    metin = metin & " tarihinde S.S. İPSALA ESNAF  ve  SANATKARLAR  KREDİ  ve  KEFALET  KOOPERATİFİ BAŞKANLIĞI'na veyahut emrü havalesine yalnız "
    metin = metin & "#" & Replace(ucasetr(FncHsr_YazRakam(Cells(iYazSat, 3), "", "")), " ", "") & "# Türk Lirası "
    'metin = metin & "#" & "ve " & Replace(ucasetr(FncHsr_YazRakam(Cells(iYazSat, 4), "", "")), " ", "") & "# Kuruş "
    metin = metin & "ödeyeceğim. "
    metin = metin & "Bedeli NAKTEN ahzolunmuştur." & " İşbu senedi vadesinde ödemediğim takdirde mütakip senetli borçlarımızında muacceliyet kesbedeceğini, ihtilaf vukuunda İPSALA mahkemelerinin selahiyetini "
    'metin = metin & "Bu meblağ vadesinde ödenmediği takdirde diğer bütün senetli ve senetsiz borçlarımızında "
    metin = metin & " şimdiden kabul eylerim."
    Cells(iYazSat, 6) = metin
  Next i

End Sub
 
Benim 2. yanıt boşa gitti galiba :)

Doğru anlayıp anlamadığımı anlamaya çalıştığım için bu mesajı yazıyorum.
 
Merhaba,

A1 de tarih B1 de süre(Ay)

Benim 2. yanıt boşa gitti galiba :)

Doğru anlayıp anlamadığımı anlamaya çalıştığım için bu mesajı yazıyorum.

necdet hocam alakanıza teşekkür ederim. ama fonksiyon bileşkeniz o ayın sonunu alarak yapyor
1 ise 1 , 2 si ise 2 si olacak.
sorun 30 , 31 de eğer tarih 30 ise şubatta işe yaramayacaktır bunu 28/29 olarak düzeltmek, 31 ise nisan, mayıs, haziran ise 30 olarak düzelsin.
 
Merhaba,

$A$1 yazcakken $A41 yazmışım o yüzden saçmalamış, Malum $ 4 tuşunun üzerinde :)
 

Ekli dosyalar

Bu bir eklentidir. Office'in CD'sinde var.



Eklentiyi yüklemek için:

1. Araçlar / Tools menüsünden Eklentiler'i / Add_Ins tıklatın.
2. Kullanılabilir eklentiler listesinde, ToolPak Çözümleyicisi / Analysis ToolPak kutusunu seçin ve Tamam'ı / OK tıklatın.
3. Eğer yüklenmiyorsa, Office kur programındaki yönergeleri izleyin.


.

Sn. Yurttaş:

"=DATE(YEAR(RC[-3]),MONTH(RC[-3])+RC[-2],MIN(DAY(RC[-3]),DAY(DATE(YEAR(RC[-3]),MONTH(RC[-3])+RC[-2]+1,0))))"
formülünün vba karşılığ nedir?
 
Geri
Üst