kontrol programı

Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
excelde makro oluşturarak şöyle bişey yapmam gerekiyor. size basitçe özetliyeyim. elimde 100 lira param var hergün de 100 lira kazanıyorum. benm 03.07.07 tarihine 100 lira 04.07.07 tarihine 900 lira ödemm var. bu ödemleri o tarihlerde yapabilecekmiyim onu kontrol edecek ve eğer o tarihte yapamayacaksam hangi tarihte yapabilirim onu bulacak. yardım ederseniz sevinrim.
 

Necdet

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

Umarım sorunuzu doğru anlamışımdır. Ekteki dosyayı inceleyiniz

Kod:
Public Sub Hesapla()
Dim i As Date
i = [C2]
Kazanc = [B2]
Borc = [E2]
Range("F2:H2").ClearContents
Para = [A2]
Do While i < [D2]
    Para = Para + Kazanc
    i = i + 1
Loop
[F2] = Para
[G2] = i
If Para <= Borc Then
    Do While Para <= Borc
        Para = Para + Kazanc
        i = i + 1
    Loop
End If
[G2] = i
[H2] = Para
End Sub
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
evet doğru anlamışsınız da başka bi sorun var. bu bir satırlık kodun çok sayıda satır için yapılması gerekiyor. kaç satır olacağı da bilinmiyor. çünkü başka bi dosyadan alınacak ve kaç satır gelirse hepsi için aynı işlem yapılmalı. tabi bu arada bütün işlemler kontrollü ilerlemeli. bunu da yapabilirseniz dileyin benden ne dilerseniz:dua: :p
 

Necdet

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

Sorunuzu örnek dosya ile destekleyiniz, o zaman daha çabuk yanıt alırsınız.
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
ekte anlatmaya çalıştım yardımcı olabilirseniz sevinirim.
 

Necdet

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

Tam kontrolünü yapamadım, sonucunu sizden bekliyorum.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
aşağıdaki kodu dener misiniz >>
Kod:
Sub hesapla()
For x = 2 To [a65536].End(3).Row + 1
If Cells(x, 3) < Cells(x, 4) Then
Cells(x, 6) = Cells(x, 1) + (Cells(x, 4) - Cells(x, 3)) * Cells(x, 2)
Cells(x, 7) = Cells(x, 4) + (Cells(x, 5) - Cells(x, 6)) / Cells(x, 2)
Cells(x, 8) = (Cells(x, 7) - Cells(x, 3)) * Cells(x, 2) + Cells(x, 1)
End If
Next
End Sub
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
ya ben beceremiyorum ya kodlarda sorun var. necdet bey sizin gönderdiğiniz kodda 100 lira bile ödeyecek olsa bugünün tarihi 3.07 olmasına rağmen bitiş tarihi olan 10.07 de ödeyebileceğini gösteriyor.
emre bey sizin gönderdiğiniz kodda
Cells(x, 7) = Cells(x, 4) + (Cells(x, 5) - Cells(x, 6)) / Cells(x, 2)
kısmında hata veriyor. nedenini anlamadım.
benim tek sorunum satır sayısı belli olmadan son satıra kadar aynı işlemi tekrarlatmak. buna çözüm bulursak herşey hallolmuş olacak sanırım. teşekkürler yardımlarınız için..
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
emre bey eğer borç sütununda bütün borçların 100 olduğunu varsayarsak ödeyebileceği tarih 29.06 ya kadar düşüyo bugünün tarihi 03.07 olmasına rağmen:)
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
sn priorix başlangıç tarihini küçük verirseniz küçük çıkması normal tam olarak sorununuzu anlayamadım...
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,435
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayın emrexcel123 formülleştirerek işi kısaltmış, bende gereksiz yere uzatmışım.

Sayın emrexcel123'ün makrolu çözümünü fonksiyonlu çözüm haline getirdim. Yararlı olabilir.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,435
Excel Vers. ve Dili
Ofis 365 Türkçe
İlk mantığıma göre önerdiğim çözümü (uzun da olsa) düzeltilmiş haline ekleyim.
 
Üst