• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Hücredeki sayı kadar, yeni satır yaratma

Katılım
16 Kasım 2007
Mesajlar
20
Excel Vers. ve Dili
fvfsv
Merhabalar arkadaşlar.

Bir konuda yardımlarınıza ihtiyacım var. Şimdi ekteki dosyada, input worksheetinin yer aldığı tablodan, outputu worksheet indeki tabloyu yaratmak istiyorum.

Öncelikle makronun bakıp oradaki sayı kadar, yeni worksheet e, yukarıdaki Product kolonunda yazan değeri kopyalaması lazım. Yani o sayı kadar, o product dan satır oluşturması. Ve de ilgili identifier ile eşleştirmesi.

Bu yeni verinin yeni worksheet te olması bir gereklilik.

Şimdiden çok teşekkürler.
 

Ekli dosyalar

Merhaba,
Dosyanız ilişiktedir.
Kod:
Sub InpOutp()
Set s1 = Sheets("Input")
Set s2 = Sheets("Output")
SonSat1 = s1.[B65536].End(3).Row

s2.Cells.ClearContents
s2.[B4] = "Identifier"
s2.[C4] = "Products"

For I = 6 To SonSat1
    For j = 3 To 5
        Sayı = s1.Cells(I, j).Value
        For k = 1 To Sayı
            SonSat2 = s2.[B65536].End(3).Row + 1
            s2.Cells(SonSat2, 2).Value = s1.Cells(I, 2).Value
            s2.Cells(SonSat2, 3).Value = s1.Cells(5, j).Value
        Next
    Next
Next
MsgBox "İşlem tamamlandı.", , "dEdE Başarılar Diler..."
End Sub
 

Ekli dosyalar

Yardımınız için çok teşekkür ederim. Sorunum çözüldü. Biraz geç oldu ama kusura bakmayın.

Bu arada bir sorum daha olacaktı. Mesela en içteki for loop'un içine bir VLOOKUP fonksiyonu yazmak istiyorum. Syntax ın ne şekilde olması gerekiyor.

Örneğin şunun gibi birşey:

Sub InpOutp()
Set s1 = Sheets("Order")
Set s2 = Sheets("Output")
Set Table = Sheets("Order").Range("B2:P600")
SonSat1 = s1.[B65536].End(3).Row

s2.Cells.ClearContents
s2.[B4] = "Identifier"
s2.[C4] = "Products"

For I = 6 To SonSat1
For j = 19 To 28
Sayı = s1.Cells(I, j).Value
For k = 1 To Sayı
SonSat2 = s2.[B65536].End(3).Row + 1
s2.Cells(SonSat2, 2).Value = s1.Cells(I, 2).Value
s2.Cells(SonSat2, 3).Value = s1.Cells(5, j).Value
s2.Cells(SanSat2, 4).Formula = WorksheetFunction.VLookup(Sheets("Output").Range("B5"), Table, 3, False)
Next
Next
Next
MsgBox "Operation Completed"
End Sub

Bu satıra -> "s2.Cells(SanSat2, 4).Formula = WorksheetFunction.VLookup(Sheets("Order").Range("B5"), Table, 3, False)" aşağıdaki hatayı alıyorum:

Application Defined or object-defined error.

(Order worksheet inde B'den P'ye kadar bir sürü veri olduğunu varsaydım)
 
Son düzenleme:
Merhaba,
Kodu detaylı olarak incelemedim ama;
SanSat2 değil SonSat2 olacak.
 
Uyarınız için teşekkürler, code compile oldu ancak burada başka bir sorun var.

Ben s2 (yani Output) sheet'inde, ilk kolondaki değere bakıp, ona VLOOKUP'ta karşılık gelen değeri yazdırmak istiyorum. Bunun için kodda ilgili satırı şu şekilde değiştirdim:

s2.Cells(SonSat2, 4).Formula = WorksheetFunction.VLookup(s2.Cells(SonSat2, 2).Value, Table, 3, False)

Fakat bu şekilde de çalışmıyor. Bunu nasıl düzeltmek gerekir.

Yardımlarınız için teşekkürler.
 
Merhaba,
İlgil satırı aşağıdaki şekilde değiştirip dener misiniz?
Kod:
s2.Cells(SonSat2, 4) = WorksheetFunction.VLookup(s2.Cells(SonSat2, 2).Value, S1.Range("B:E"), 3, False)
 
Sorun çözüldü. Çok teşekkür ederim.
 
Geri
Üst