Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 17-07-2017, 17:19   #1
sakoz
 
Giriş: 17/04/2007
Şehir: İzmir
Mesaj: 275
Excel Vers. ve Dili:
Office 2013 Türkçe
Arrow Çoklu iskonto hesaplama

Arkadaşlar Merhaba,

Ekteki dosyamızda bir makro çalışmaktadır. Sonradan G ve H sütunları ilave edildi.

Şimdi yapmak istediğimiz kısaca ;

F sütunu ve G sütunundaki iskontolar toplanacak. Sonuç D sütunundan (KDV HARIC FIYAT) % olarak çıkartılıp H sütununa yazdırılacak.

Varolan makromuza bunların ilave edilmesini sağlayabilirmiyiz acaba ?
Şimdiden herkese teşekkürler...

http://s6.dosya.tc/server9/6fzr5a/SABLONV3.rar.html

Saygılar,
__________________
Kılıcı eşsiz bir maharetle kullanan Türk eli, mağlup ettiği insanların yarasını sarmakta da o kadar ustadır. [B](Lord Byron)[/B]
sakoz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-07-2017, 17:31   #2
Orion1
Uzman
 
Orion1 kullanıcısının avatarı
 
Giriş: 01/03/2005
Mesaj: 19,573
Excel Vers. ve Dili:
Win7 Home Basic TR 64 Bit Ofis-2010-TR 32 Bit
Varsayılan

Buyurun.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub FIYATLA()

Application.ScreenUpdating = False
Set sf = ThisWorkbook.Worksheets("FIYATLAMA")
Set ss = ThisWorkbook.Worksheets("SIRKULER")
    For i = 2 To 100433
        For k = 10 To sf.Range("b65536").End(xlUp).Row
        If sf.Cells(k, 2) = ss.Cells(i, 1) Then
            sf.Cells(k, 3) = ss.Cells(i, 3)
            sf.Cells(k, 4) = ss.Cells(i, 4)
            sf.Cells(k, 5) = ss.Cells(i, 6)
            sf.Cells(k, 6) = ss.Cells(i, 7)
            sf.Cells(k, "H").Value = (ss.Cells(i, "F").Value + ss.Cells(i, "G").Value) _
                    - ss.Cells(i, "D").Value
        End If
        Next k
    Next i
    



[D30] = WorksheetFunction.Sum([D10:D29])
[E30] = WorksheetFunction.Sum([E10:E29])
[H30] = WorksheetFunction.Sum([H10:H29])
[I30] = WorksheetFunction.Sum([I10:I29])
sf.Range("D30").Font.Bold = True
sf.Range("E30").Font.Bold = True
sf.Range("H30").Font.Bold = True
sf.Range("I30").Font.Bold = True

Application.ScreenUpdating = True


End Sub
__________________
evrengizlen@hotmail.com

KOD ANLATILMAZ,YAZILIR!
Bir sümer atasözü;
Madem biliyorsun neden öğretmiyorsun.Boşa vakit geçirdin neye yaradı.
Orion1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-07-2017, 17:42   #3
sakoz
 
Giriş: 17/04/2007
Şehir: İzmir
Mesaj: 275
Excel Vers. ve Dili:
Office 2013 Türkçe
Varsayılan

Evren Hocam ,

% olarak hesaplama yapması lazım. Yani ; 15+8 ise %23 olarak alması lazım
KDVHARIC fiyattan iskontoların %toplamını çıkarıp net fiyatı almamız gerekiyor.

Örnek ;
D10 F10 G10 H10
41,15 15 8 = 31,6855 olmazı lazım

Yani ; =D10-(D10*(F10+G10)/100) formülünün yaptığı işlemi yaptırmamız gerekiyor hocam.
Teşekkürler...
__________________
Kılıcı eşsiz bir maharetle kullanan Türk eli, mağlup ettiği insanların yarasını sarmakta da o kadar ustadır. [B](Lord Byron)[/B]

Bu mesaj en son " 17-07-2017 " tarihinde saat 18:00 itibariyle sakoz tarafından düzenlenmiştir....
sakoz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-07-2017, 18:01   #4
sakoz
 
Giriş: 17/04/2007
Şehir: İzmir
Mesaj: 275
Excel Vers. ve Dili:
Office 2013 Türkçe
Varsayılan

Yani ; =D10-(D10*(F10+G10)/100) formülünün yaptığı işlemi yaptırmamız gerekiyor hocam.
Teşekkürler...
__________________
Kılıcı eşsiz bir maharetle kullanan Türk eli, mağlup ettiği insanların yarasını sarmakta da o kadar ustadır. [B](Lord Byron)[/B]
sakoz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-07-2017, 18:39   #5
Orion1
Uzman
 
Orion1 kullanıcısının avatarı
 
Giriş: 01/03/2005
Mesaj: 19,573
Excel Vers. ve Dili:
Win7 Home Basic TR 64 Bit Ofis-2010-TR 32 Bit
Varsayılan

Alıntı:
sakoz tarafından gönderildi Mesajı Görüntüle
Yani ; =D10-(D10*(F10+G10)/100) formülünün yaptığı işlemi yaptırmamız gerekiyor hocam.
Teşekkürler...
Buyurun.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
sf.Cells(k, "H").Value = ss.Cells(i, "D").Value - (ss.Cells(i, "D").Value * _
                    (ss.Cells(i, "F").Value + ss.Cells(i, "G").Value) / 100)
__________________
evrengizlen@hotmail.com

KOD ANLATILMAZ,YAZILIR!
Bir sümer atasözü;
Madem biliyorsun neden öğretmiyorsun.Boşa vakit geçirdin neye yaradı.
Orion1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-07-2017, 20:14   #6
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 8,949
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Anladığım kadarıyla SIRKULER sayfasında EKSTRA ISKONTO bilgisi yok ve
bu oranlar sayfaya elle yazılmak durumunda.

Bence işlem iki aşamada gerçekleştirilmeli.
-- Birinci aşama MALZEME KODU bilgisinden hareketle SIRKULER sayfasındaki bilgilerin çekilmesi,
-- MALZEMElerin karşılarına yazılacak İLAVE İSKONTO oranı da dikkate alınarak NET FİYATLARIN hesaplanması.

Bunun için sayfaya iki adet düğme/şekil/metin kutusu ekleyip,
-- birinci düğmeyi FIYATLA kodu ile,
-- ikinci düğmeyi ise FIYATLA2 kodu ile
ilişkilendirerek işlem tamamlanmalı diye düşünüyorum.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub FIYATLA()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set wf = Application.WorksheetFunction
Set sf = ThisWorkbook.Worksheets("FIYATLAMA")
Set ss = ThisWorkbook.Worksheets("SIRKULER")
If sf.Cells(Rows.Count, 3).End(3).Row > 9 Then
    sf.Range("A10:A" & Rows.Count).ClearContents
    sf.Range("C10:H" & Rows.Count).ClearContents
End If
    For k = 10 To sf.Range("b65536").End(xlUp).Row
        If wf.CountIf(ss.Range("A:A"), sf.Cells(k, 2)) = 0 Then
            MsgBox "FİYATLAMA sayfası B" & k & " hücresindeki PARÇA KODU," _
                & vbLf & "SIRKULAR sayfasında YOK!..", vbCritical
            GoTo 10
        Else
    sf.Cells(k, 1) = k - 9
    sf.Cells(k, 3) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 3)
    sf.Cells(k, 4) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 4)
    sf.Cells(k, 5) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 6)
    sf.Cells(k, 6) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 7)
        End If
10: Next k
Cells(k + 5, 4) = wf.Sum(sf.Range(sf.Cells(10, 4), sf.Cells(k - 1, 4)))
Cells(k + 5, 5) = wf.Sum(sf.Range(sf.Cells(10, 5), sf.Cells(k - 1, 5)))
sf.Range(sf.Cells(k + 5, 1), sf.Cells(k + 5, 5)).Font.Bold = True
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
End Sub

Sub FIYATLA2()
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
Set wf = Application.WorksheetFunction
Set sf = ThisWorkbook.Worksheets("FIYATLAMA")
For k = 10 To sf.Range("b65536").End(xlUp).Row
    sf.Cells(k, 8) = (Cells(k, 4) * (100 - Cells(k, 6)) / 100) * (100 - Cells(k, 7)) / 100
Next k
Cells(k + 5, 8) = wf.Sum(sf.Range(sf.Cells(10, 8), sf.Cells(k - 1, 8)))
sf.Range(sf.Cells(k + 5, 8), sf.Cells(k + 5, 8)).Font.Bold = True
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
End Sub
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2017, 08:24   #7
sakoz
 
Giriş: 17/04/2007
Şehir: İzmir
Mesaj: 275
Excel Vers. ve Dili:
Office 2013 Türkçe
Varsayılan

Alıntı:
Orion1 tarafından gönderildi Mesajı Görüntüle
Buyurun.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
sf.Cells(k, "H").Value = ss.Cells(i, "D").Value - (ss.Cells(i, "D").Value * _
                    (ss.Cells(i, "F").Value + ss.Cells(i, "G").Value) / 100)
Teşekkürler Evren hocam..
__________________
Kılıcı eşsiz bir maharetle kullanan Türk eli, mağlup ettiği insanların yarasını sarmakta da o kadar ustadır. [B](Lord Byron)[/B]
sakoz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2017, 08:25   #8
sakoz
 
Giriş: 17/04/2007
Şehir: İzmir
Mesaj: 275
Excel Vers. ve Dili:
Office 2013 Türkçe
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Merhaba.

Anladığım kadarıyla SIRKULER sayfasında EKSTRA ISKONTO bilgisi yok ve
bu oranlar sayfaya elle yazılmak durumunda.

Bence işlem iki aşamada gerçekleştirilmeli.
-- Birinci aşama MALZEME KODU bilgisinden hareketle SIRKULER sayfasındaki bilgilerin çekilmesi,
-- MALZEMElerin karşılarına yazılacak İLAVE İSKONTO oranı da dikkate alınarak NET FİYATLARIN hesaplanması.

Bunun için sayfaya iki adet düğme/şekil/metin kutusu ekleyip,
-- birinci düğmeyi FIYATLA kodu ile,
-- ikinci düğmeyi ise FIYATLA2 kodu ile
ilişkilendirerek işlem tamamlanmalı diye düşünüyorum.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub FIYATLA()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set wf = Application.WorksheetFunction
Set sf = ThisWorkbook.Worksheets("FIYATLAMA")
Set ss = ThisWorkbook.Worksheets("SIRKULER")
If sf.Cells(Rows.Count, 3).End(3).Row > 9 Then
    sf.Range("A10:A" & Rows.Count).ClearContents
    sf.Range("C10:H" & Rows.Count).ClearContents
End If
    For k = 10 To sf.Range("b65536").End(xlUp).Row
        If wf.CountIf(ss.Range("A:A"), sf.Cells(k, 2)) = 0 Then
            MsgBox "FİYATLAMA sayfası B" & k & " hücresindeki PARÇA KODU," _
                & vbLf & "SIRKULAR sayfasında YOK!..", vbCritical
            GoTo 10
        Else
    sf.Cells(k, 1) = k - 9
    sf.Cells(k, 3) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 3)
    sf.Cells(k, 4) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 4)
    sf.Cells(k, 5) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 6)
    sf.Cells(k, 6) = ss.Cells(wf.Match(sf.Cells(k, 2), ss.Range("A:A"), 0), 7)
        End If
10: Next k
Cells(k + 5, 4) = wf.Sum(sf.Range(sf.Cells(10, 4), sf.Cells(k - 1, 4)))
Cells(k + 5, 5) = wf.Sum(sf.Range(sf.Cells(10, 5), sf.Cells(k - 1, 5)))
sf.Range(sf.Cells(k + 5, 1), sf.Cells(k + 5, 5)).Font.Bold = True
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
End Sub

Sub FIYATLA2()
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
Set wf = Application.WorksheetFunction
Set sf = ThisWorkbook.Worksheets("FIYATLAMA")
For k = 10 To sf.Range("b65536").End(xlUp).Row
    sf.Cells(k, 8) = Cells(k, 4) - (Cells(k, 4) * (Cells(k, 6) + Cells(k, 7)) / 100)
Next k
Cells(k + 5, 8) = wf.Sum(sf.Range(sf.Cells(10, 8), sf.Cells(k - 1, 8)))
sf.Range(sf.Cells(k + 5, 8), sf.Cells(k + 5, 8)).Font.Bold = True
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
End Sub
Ömer Hocam selamlar ,

Öncelikle tam doğru bir yorumda bulunmuşsunuz ve dolayısıyla tam istenilen kodu yazmışsınız.
Ayrıca ; Yazmış olduğunuz kod , benim kullandığım koddan daha hızlı.. Ellerinize sağlık , çok teşekkür ederim..
Saygılar,
__________________
Kılıcı eşsiz bir maharetle kullanan Türk eli, mağlup ettiği insanların yarasını sarmakta da o kadar ustadır. [B](Lord Byron)[/B]
sakoz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2017, 17:53   #9
sakoz
 
Giriş: 17/04/2007
Şehir: İzmir
Mesaj: 275
Excel Vers. ve Dili:
Office 2013 Türkçe
Varsayılan

Ömer Hocam ,

Benim bir yanlış anlamamdan dolayı hesaplama kısmında bir hata oluyor.
Şimdi şöyle olacakmış ;
KDV HARIC fiyattan iskonto oranı (%15 gibi) çıkartılarak net fiyat bulunacak. İlave iskonto varsa çıkan net fiyattan ilave iskonto oranı çıkartılarak esas net fiyat bulunacakmış

Bunu düzenlememiz mümkün olurmu acaba ?
İnşallah anlatabilmişimdir...
__________________
Kılıcı eşsiz bir maharetle kullanan Türk eli, mağlup ettiği insanların yarasını sarmakta da o kadar ustadır. [B](Lord Byron)[/B]

Bu mesaj en son " 18-07-2017 " tarihinde saat 18:18 itibariyle sakoz tarafından düzenlenmiştir....
sakoz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 19-07-2017, 01:03   #10
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 8,949
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Alıntı:
sakoz tarafından gönderildi Mesajı Görüntüle
Ömer Hocam ,

Benim bir yanlış anlamamdan dolayı hesaplama kısmında bir hata oluyor.
Şimdi şöyle olacakmış ;
KDV HARIC fiyattan iskonto oranı (%15 gibi) çıkartılarak net fiyat bulunacak. İlave iskonto varsa çıkan net fiyattan ilave iskonto oranı çıkartılarak esas net fiyat bulunacakmış

Bunu düzenlememiz mümkün olurmu acaba ?
İnşallah anlatabilmişimdir...
Tekrar merhaba.

6 numaralı cevabımdaki FIYATLA2 adlı, alttaki kod blokunda değişiklik yaptım (kırmızı renklendirdiğim kısım).

Yeni halini kullanabilirsiniz. İyi çalışmalar.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 22:00


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Torna - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Hurda - Lingerie - Dyeing Machine - Çorlu Temizlik- Karton Bardak- Çorlu Pimapenci- İstanbul Avukat- Çorlu Kekemelik- Edirne Su Arıtma- Çorlu Perde Yıkama- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Çorlu İnşaat- Marmara Ereğlisi Yurt- Çorlu Solucan Gübresi- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Su Deposu Temizliği- Bakır Sülfat- Rampa- Rotary-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden