Soruların daha kolay anlaşılabilmesi için konuya bir örnek ekledim. Örnekteki dosyayı çalıştıran kodu buraya da ekleyeyim. Kod basitçe A sütununda hücre doluysa A, B, C, D sütunundaki verileri DeneAr dizisine aktarıyor daha sonra DeneAr dizisini Sayfa2’ye yazdırıyor.
Sorularım şunlar:
1-DeneAr(j,3) dizi sütununda malzemenin sınıfları kayıtlı. (A, B, C, … Gibi sayısı ve adı değişken ve çok sayıda sınıf var). DeneAr dizisinde her bir sınıfta kaç malzeme olduğunu nasıl bulabiliriz? (Örneğin A sınıfında kaç malzeme var? vs.)
2-Dosyamızda her malzeme grubu için ayrı sayfa var. DeneAr dizisindeki malzemeleri gruplarına göre kendi sayfalarına nasıl yazdırabiliriz? (A sınıflı malzemeler A sayfasına, B sınıflı malzemeler B sayfasına… yazılmalı)
En ufak yardım bile benim için değerli, yanıtlar için şimdiden teşekkürler.
Kod:
Sub Düğme1_Tıklat()
Dim Rng As Range, Dn As Range
Dim c, i, j, n As Long
Dim DeneAr As Variant
Sheets("Sayfa1").Select
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))
n = Application.CountA(Range("A:A"))
ReDim DeneAr(0 To n, 4)
c = 0
For Each Dn In Rng
If Dn <> "" Then
c = c + 1
DeneAr(c, 0) = Dn
DeneAr(c, 1) = Dn.Offset(, 1)
DeneAr(c, 2) = Dn.Offset(, 2)
DeneAr(c, 3) = Dn.Offset(, 3)
End If
Next Dn
Sheets("Sayfa2").Select
Cells.Clear
Range("A1") = "Sıra No": Range("B1") = "Kod No"
Range("C1") = "Malzeme No": Range("D1") = "Sınıfı"
i = 2
For j = 1 To UBound(DeneAr)
Range("A" & i).Value = DeneAr(j, 0)
Range("B" & i).Value = DeneAr(j, 1)
Range("C" & i).Value = DeneAr(j, 2)
Range("D" & i).Value = DeneAr(j, 3)
i = i + 1
Next j
End Sub
Sorularım şunlar:
1-DeneAr(j,3) dizi sütununda malzemenin sınıfları kayıtlı. (A, B, C, … Gibi sayısı ve adı değişken ve çok sayıda sınıf var). DeneAr dizisinde her bir sınıfta kaç malzeme olduğunu nasıl bulabiliriz? (Örneğin A sınıfında kaç malzeme var? vs.)
2-Dosyamızda her malzeme grubu için ayrı sayfa var. DeneAr dizisindeki malzemeleri gruplarına göre kendi sayfalarına nasıl yazdırabiliriz? (A sınıflı malzemeler A sayfasına, B sınıflı malzemeler B sayfasına… yazılmalı)
En ufak yardım bile benim için değerli, yanıtlar için şimdiden teşekkürler.
