1 ay sonrasını veren Fonksiyon

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?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
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

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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. :(
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
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))))


.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

A1 de tarih B1 de süre(Ay)
 

Ekli dosyalar

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
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.


.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Benim 2. yanıt boşa gitti galiba :)

Doğru anlayıp anlamadığımı anlamaya çalıştığım için bu mesajı yazıyorum.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

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

Ekli dosyalar

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
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?
 
Üst