Belli sayıdaki değerleri istenilen farklı sayılarda çoğaltma

Katılım
18 Ocak 2012
Mesajlar
19
Excel Vers. ve Dili
Excel 2007 - Türkçe

Adet​

Değer​

14​

1,248571 ₺​

21​

1,358095 ₺​

22​

1,620455 ₺​

20​

1,610000 ₺​

22​

1,620455 ₺​

20​

1,725000 ₺​

22​

1,620455 ₺​

20​

1,725000 ₺​

22​

1,620455 ₺​



Merhaba,
A2 hücresindeki adet sayısınca B2 değerinden alt alta çoğaltmak istiyorum. Bu şekilde elimde 2.500'e yakın satır var, şimdiden teşekkürler.
 

Muzaffer Ali

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

Aşağıdaki kodu bir modüle kopyalayıp çalıştırın.

Kod:
Sub Test()
    Dim Bak As Long
    Dim SonSatir As Long
    SonSatir = 1
    Range("C1:C" & Rows.Count).ClearContents
    For Bak = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        Range("C" & SonSatir + 1 & ":C" & SonSatir + Cells(Bak, "A").Value).Value = Cells(Bak, "B").Value
        SonSatir = Cells(Rows.Count, "C").End(xlUp).Row
    Next
    MsgBox "Tamamlandı."
End Sub
 
Katılım
18 Ocak 2012
Mesajlar
19
Excel Vers. ve Dili
Excel 2007 - Türkçe
Kod için çok teşekkür ederim tam istediğim gibi çalıştı fakat şöyle bir sıkıntı yaşadım ki ; B2 değerleri birebir aynı değilde yukarı yuvarlanmış şekilde çalıştı bunu nasıl düzeltebilirim ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,091
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

C sütununda hücre biçimlendirme yaparsanız sanırım sonuç alabilirsiniz.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,152
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu deneyin.

Eğer yine de olmuyorsa dosyanızı dosya.co gibi bir paylaşım sitesinde paylaşın kontrol edelim.

Kod:
Sub Test()
    Dim Bak As Long
    Dim SonSatir As Long
    SonSatir = 1
    Range("C1:C" & Rows.Count).ClearContents
    Application.ScreenUpdating = False
    For Bak = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        With Range("C" & SonSatir + 1 & ":C" & SonSatir + Cells(Bak, "A").Value)
            .Value = Cells(Bak, "B").Value
            .Style = Cells(Bak, "B").Style
        End With
        SonSatir = Cells(Rows.Count, "C").End(xlUp).Row
    Next
    Application.ScreenUpdating = True
    MsgBox "Tamamlandı."
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,152
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu deneyin.
Kod:
Sub Test()
    Dim Bak As Long
    Dim SonSatir As Long
    Dim m As Double
    
    SonSatir = 1
    Range("C1:C" & Rows.Count).ClearContents
    Application.ScreenUpdating = False
    For Bak = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        With Range("C" & SonSatir + 1 & ":C" & SonSatir + Cells(Bak, "A").Value)
            .Value = --Cells(Bak, "B").Text
        End With
        SonSatir = Cells(Rows.Count, "C").End(xlUp).Row
    Next
    Application.ScreenUpdating = True
    MsgBox "Tamamlandı."
End Sub
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,318
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Alternatif olarak 6 numaralı mesajdaki ilgili satır aşağıdaki gibi değiştirilebilir.
İyi çalışmalar...
Rich (BB code):
.Value = Cells(Bak, "B").Value2
 
Üst