Bir hücreye girilen bir ismi başka bir hücredeki sayı kadar azaltararak yazdırmak.

Katılım
23 Şubat 2024
Mesajlar
16
Excel Vers. ve Dili
2016 excel
Herkese merhaba.
Uzun zamandır çözmeye çalıştığım bir konu var, burada da, diğer forumlarda da aradım ancak tam bir eşleşme bulamadım.
Çözüm sunacak ve imkanı olan bir arkadaşın, yardımcı olması umidi ile herkese kolay gelsin diyorum.
Soruma dair tüm detayları aktarmaya çalışacağım.

Yapmak istediğim şey tam olarak şu:

Tek sayfa içeren bir Excel çalışma kitabında (sayfanın ismi takip olsun), A1, B1 ve C1 hücrelerinde bir isim yazacak (sırası ile ALINAN MALZEME, TAKSİT SAYISI ve TAKSİT TUTARI)
A2 Hücresinde MASA, B2 hücresinde 8, C2 hücresinde de 150 yazacak. (Yani 8 taksit ile 150 liralık ödemelerle bir masa aldığımı düşünün)

Nihai olarak görmek istediğim şey, soldan sağa doğru bunları özel bir sistematikle yazdırmak, şöyleki.
Makro ya da VBA ile bu işlevi yerine getirmek istediğimde;
A3 hücresinden başlamak üzere;

A3 MASA 8
B3 150
C3 MASA 7
D3 150
E3 MASA 6
F3 150

şeklinde devam etsin.
İbarenin MASA8 şeklinde değil de, MASA 8 (arada boşluk ile olması lazım) gibi olması gerekli.
Son taksidi de MASA 1 değil, MASA şeklinde yazmalı.
Bu arada taksit sayısı en az 3, en fazla 12 olabilir. (Taksitsiz ya da en fazla 2 taksit olan ödemeleri manuel olarak yapabiliyorum)

Benzer konuyu bu forumda aşağıdaki linkte buldum, ancak dediğim gibi tam bir eşleşme bulamadım.


Konuya vakit ayıracak herkese şimdiden teşekkür ediyorum.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,943
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Aşağıdaki kodu sayfanın kod kısmına kopyalayıp çalıştırın.

Kod:
Sub Test()
    Dim Bak As Long
    Dim TaksitSayisi As String
    TaksitSayisi = Range("B2").Value + 1
    
    For Bak = 1 To Range("B2").Value * 2 Step 2
        TaksitSayisi = TaksitSayisi - 1
                
        Cells(3, Bak) = Range("A2") & " " & TaksitSayisi
        If TaksitSayisi = 1 Then Range ("A2")
        Cells(3, Bak + 1) = Range("C2")
    Next
End Sub
 
Son düzenleme:
Üst