• DİKKAT

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

Benzer Kayıtların Üstüne Satır Ekle

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
stesatreklekd3.jpg


Arkadaşlar soum şu c sütununda aynı kayıtalr bulundukça üstüne bir satır ekleyecek ve c sütunundaki ilk benzersiz değeri b sütunda eklenen satıra kopyalayacak ve diğer benzersiz kayıtları silecek mümkünmüdür.

örnek dosya eklendi.....
 
Güncel yardımlarınız için teşekkürler....
Biraz daha açıklama ekleyeyim amacım tam anlaşılmadığı için soruma cevap gelmedi herhalde;
C Sütununda Ana Başlıklarımız var
Mesala
C2:C7 Aralığında yer alan Kira başlığımız için;
2. satırın üstüne yeni satır eklenecek ve verilerin olduğu aralık otomatik olarak c3:c8 olacak.
C3 teki değer b2 olacak ve C3:C8 içeriği temizlenecek.

bu işlem c sütununda her Anabaşlık için uygulanacak.

Daha sonra D sütununda yer alan Alt başlıklarımıza bakacak (mesela A)
Şu an D2:D4 te gözüken ama kaydırma sonucu ile D3:D5 aralığına kayan verilerimiz için
3. satırın üstüne yeni bir satır eklenecek ve verilerimiz doğal olarak D4:D6 ya kayacak
3. satırımızın c sütununa d4 teki değer eşitlenecek.
ve bu böyle devam edewcek.
 
Son düzenleme:
Güncel yardımlarınız için teşekkürler....
 
Güncel yardımlarınız için teşekkürler....
 
Merhabalar

Aşağıdaki kodları, standart bir modül sayfasına kopyalayıp, çalıştırınız.

Kod:
Sub Tablola()
Dim sh1 As Worksheet, shT As Worksheet
Dim i%, j%, son%
Dim giderTuru As String
Set sh1 = Sheets("Sayfa1")
Set shT = Sheets("TABLOM")
shT.Range("A2:F" & shT.UsedRange.Rows.Count).ClearContents
For i = 2 To sh1.Cells(65536, 4).End(xlUp).Row
    If IsNumeric(sh1.Cells(i, 2)) = False And IsEmpty(sh1.Cells(i, 2)) = False Then: giderTuru = sh1.Cells(i, 2)
    If sh1.Cells(i, 4) <> Empty Then
       son = shT.Cells(65536, 1).End(xlUp).Row + 1
       For j = 1 To 6
           shT.Cells(son, j) = sh1.Cells(i, j)
       Next j
       shT.Cells(son, 3) = giderTuru
    End If
Next i
Set sh1 = Nothing
Set shT = Nothing
End Sub
 
hocam te&#351;ekk&#252;r ederim ancak tamamen yanl&#305;&#351; anlatm&#305;&#351;&#305;m
dzenlenmihalizv9.jpg


&#304;lk resim ham halimiz,
&#350;imdi ekledi&#287;im bo&#351; bir sayfa1 de olu&#351;turulacak g&#246;r&#252;nt&#252; (Tercihen Yeni sayfada) d&#252;r

K&#305;rm&#305;z&#305; ba&#351;l&#305;klar eskiden C s&#252;tununda tekrar edilen ba&#351;l&#305;klar; b S&#252;tununda Grup ba&#351;l&#305;&#287;&#305; olarak eklenmi&#351;.

yeni C s&#252;tununda D S&#252;tununda Tekrar edilen ba&#351;l&#305;klar Katagori sonu olarak c s&#252;tununda yer almakta.
d &#252;stununda vereiler korunuyor.

Not: WinXp ye Ekran al&#305;nt&#305;s&#305; arac&#305; eklenmiyormu.
 
Son düzenleme:
Nas&#305;l yani ?

TABLOM sayfas&#305;ndaki veriler mi, Sayfa1 format&#305;na &#231;ekilecek ?
 
evet. do&#287;rudur
 
&#304;yi de H&#252;seyin bey karde&#351;im

Siz msn'de tarif etmediniz mi bunu bana ..

Neyse ...
 
stesatreklekd3.jpg


bu &#351;ekilde olan tabloyu



dzenlenmihalizv9.jpg


bu &#351;ekle getirmenin bir yolu varm&#305;d&#305;r?
 
&#214;zet tablo sihirbaz&#305; i&#351;inize yarayabilir.
 
hocam daha evvel hi&#231; kullanmad&#305;m bunu makro ile halledebilmek benim i&#231;in daha kolay olacakt&#305;r...
sizin daha evvel veritaban&#305;ndan ado ile almam i&#231;in haz&#305;rlad&#305;&#287;&#305;n&#305;z kodlar&#305;n sonuna eklemem i&#231;in laz&#305;m.

alakadar olabilirseniz ger&#231;ekten sevinirim.
 
De&#287;erli Hocalar&#305;m Bu sorumu makro ile &#231;&#246;zebilirmiyim. sayg&#305;lar&#305;mla
 
Aşağıdaki kodu kullanınız.

Kod:
Sub Tabloya_Gecir()
Dim shT As Worksheet
Dim sh1 As Worksheet
Dim y%, z%, i%, j%, x%, n%
Dim arrGd()
Dim arrMm()
Set shT = Sheets("TABLOM")
Set sh1 = Sheets("Sayfa1")
y = 1: z = 1
ReDim Preserve arrGd(1 To y)
arrGd(y) = shT.Cells(2, 3)
ReDim Preserve arrMm(1 To 2, 1 To z)
arrMm(1, z) = shT.Cells(2, 3)
arrMm(2, z) = shT.Cells(2, 4)
For i = 2 To shT.Cells(65536, 3).End(xlUp).Row
    For j = 1 To UBound(arrGd)
        If shT.Cells(i, 3) = arrGd(j) Then: x = x + 1
    Next j
    If x = 0 Then
       y = y + 1
       ReDim Preserve arrGd(1 To y)
       arrGd(y) = shT.Cells(i, 3)
    End If
    x = 0
        
    For j = 1 To UBound(arrMm, 2)
        If shT.Cells(i, 3) & shT.Cells(i, 4) = arrMm(1, j) & arrMm(2, j) Then: x = x + 1
    Next j
    If x = 0 Then
       z = z + 1
       ReDim Preserve arrMm(1 To 2, 1 To z)
       arrMm(1, z) = shT.Cells(i, 3)
       arrMm(2, z) = shT.Cells(i, 4)
    End If
    x = 0
Next i
x = 1
For i = 1 To UBound(arrGd)
    x = x + 1
    sh1.Cells(x, 2) = arrGd(i)
    For j = 1 To UBound(arrMm, 2)
        If arrGd(i) = arrMm(1, j) Then
           x = x + 1
           sh1.Cells(x, 3) = arrMm(2, j)
           For n = 2 To shT.Cells(65536, 2).End(xlUp)
               If shT.Cells(n, 3) = arrMm(1, j) And shT.Cells(n, 4) = arrMm(2, j) Then
                  x = x + 1
                  sh1.Cells(x, 1) = shT.Cells(n, 1)
                  sh1.Cells(x, 2) = shT.Cells(n, 2)
                  sh1.Cells(x, 4) = shT.Cells(n, 4)
                  sh1.Cells(x, 5) = shT.Cells(n, 5)
                  sh1.Cells(x, 6) = shT.Cells(n, 6)
               End If
           Next n
           arrMm(1, j) = ""
           arrMm(2, j) = ""
        End If
    Next j
Next i
Set shT = Nothing
Set sh1 = Nothing
End Sub
 
Ferhat Hocam &#231;ok te&#351;ekk&#252;r ederim, kendim tabloma uyarlama yapar&#305;m art&#305;k...
 
sn ferhat hocam size bir&#351;ey daha dan&#305;&#351;sam
dzenlenmihalizv9.jpg

resminde
Alt gruplar&#305;n toplam&#305;n&#305; F s&#252;tununa,
Ana grubun toplam&#305;n&#305;da g s&#252;tununa yazd&#305;rmak m&#252;mk&#252;nm&#252;d&#252;r.

Yani
g2= topla(e4:e12)
f3=topla(e4:e6)
f7=e8
f9=e10
f11=e12

de&#287;er olarak yazsada olur, formul g&#246;z&#252;kmesin yada hangisi daha kolay ise.
 
Hocam Kodlar&#305;n&#305;z&#305; Tabloma uyarlad&#305;m gibi bir&#351;ey...
&#304;steklerimi kodun i&#231;ine yazd&#305;m, kod &#231;al&#305;&#351;t&#305;ktan sonra nerde ne istedi&#287;im belli... tekrar yard&#305;m ederseniz sevinirim.
Kod:
Sub Tabloya_Gecir_Hsr()
Dim shT As Worksheet
Dim sh1 As Worksheet
Dim y&#37;, z%, i%, j%, x%, n%, noAna%, noAlt%
Dim arrGd()
Dim arrMm()
Set shT = Sheets("TABLOM")
Set sh1 = Sheets("Sayfa1")

y = 1: z = 1
ReDim Preserve arrGd(1 To y)
    arrGd(y) = shT.Cells(2, 3)
    
ReDim Preserve arrMm(1 To 2, 1 To z)
    arrMm(1, z) = shT.Cells(2, 3)
    arrMm(2, z) = shT.Cells(2, 4)

For i = 2 To shT.Cells(65536, 3).End(xlUp).Row
    For j = 1 To UBound(arrGd)
        If shT.Cells(i, 3) = arrGd(j) Then: x = x + 1
    Next j
    If x = 0 Then
       y = y + 1
       ReDim Preserve arrGd(1 To y)
       arrGd(y) = shT.Cells(i, 3)
    End If
    x = 0
        
    For j = 1 To UBound(arrMm, 2)
        If shT.Cells(i, 3) & shT.Cells(i, 4) = arrMm(1, j) & arrMm(2, j) Then: x = x + 1
    Next j
    If x = 0 Then
       z = z + 1
       ReDim Preserve arrMm(1 To 2, 1 To z)
       arrMm(1, z) = shT.Cells(i, 3)
       arrMm(2, z) = shT.Cells(i, 4)
    End If
    x = 0
Next i

'Diziye al&#305;nanlar&#305; sayfaya aktar
With sh1
    .Cells.Clear
    .Columns(1).ColumnWidth = 5.14
    '.Columns(1).HorizontalAlignment = xlRight
    .Columns("B:I").ColumnWidth = 5
    .Columns("J").ColumnWidth = 8
    .Columns("K:M").ColumnWidth = 10
    .Columns("N").ColumnWidth = 5
    With .Cells(3, 1)
        .Value = shT.Cells(2, 2)            'B&#252;t&#231;e Y&#305;l&#305;
        .Font.Bold = True
    End With
    With .Cells(3, 2)
         .Value = "B&#252;t&#231;e Y&#305;l&#305; Tablosudur"
         .Font.Bold = True
    End With
    With .Cells(4, 1)
         .Value = "&#199;eltik &#220;retim Maliyetine Etki Eden Fakt&#246;rler"
         .Font.Bold = True
         .HorizontalAlignment = xlLeft
         .Select
    End With
End With

x = 5: noAna = 1                              'Ba&#351;lang&#305;&#231; Sat&#305;r nosu
For i = 1 To UBound(arrGd)
    x = x + 1
    With sh1
        With .Cells(x, "A")
                            .Value = noAna & " )[Kodun Soldan Uzunlu&#287;un &#304;ki eksik K&#305;sm&#305; burada yazs&#305;n]"
                            .Font.ColorIndex = 3
                            .Font.Bold = True
        End With
        With .Cells(x, "M")
                           .Value = "Ana Grup Toplam&#305;(Mesala;Sadece Kiralar)"
                           .Font.ColorIndex = 3
                           .Font.Bold = True
        End With
    End With
    '=(PAR&#199;AAL(F15;1;UZUNLUK(F15)-2))*1 yani formul&#252; ile elde edilen k&#305;s&#305;m
    '1504 i&#231;in 15, 105 i&#231;in 1 gibi
    sh1.Cells(x, 2) = arrGd(i)                  'Gider Ana Ba&#351;l&#305;&#287;&#305;n&#305;n Yaz&#305;laca&#287;&#305; S&#252;tun: E
   noAlt = 1
    For j = 1 To UBound(arrMm, 2)
        If arrGd(i) = arrMm(1, j) Then
           x = x + 1
'           sh1.Cells(x, 2) = noAna & "-" & noAlt & " )"
           With sh1
               With .Cells(x, "B")
                                  .Value = "Kodun Tamam&#305; 101,102,105,1601 vs"
                                  .Font.ColorIndex = 3
                                  .Font.Bold = True
               End With
                    .Cells(x, "C").Value = arrMm(2, j)          'Masraf Merk.nin Yaz&#305;laca&#287;&#305; S&#252;tun: F
               With .Cells(x, "L")
                                  .Value = "Alt Grup Toplam&#305;(Mesala;Sadece Kira-Kumdereler)"
                                  .Font.ColorIndex = 3
                                  .Font.Bold = True
               End With
           End With
           For n = 2 To shT.Cells(65536, 2).End(xlUp)
                'sh1.Cells(x, 2) = noAna & "-" & noAlt & " )"

               If shT.Cells(n, 3) = arrMm(1, j) And shT.Cells(n, 4) = arrMm(2, j) Then
                  x = x + 1

'                  sh1.Cells(4, 1) = shT.Cells(n, 2)            'B&#252;t&#231;e Y&#305;l&#305;
                  With sh1
                     With .Cells(x, "C")
                                       .Value = "S&#305;rano 1,2,3 gibi"
                                       .Font.ColorIndex = 3
                                       .Font.Bold = True
                    End With
                          .Cells(x, "D").Value = shT.Cells(n, 4)            'Masraf Merkezi
                          .Cells(x, "I").Value = shT.Cells(n, 1)            'Maliyet Y&#305;l&#305;
                          .Cells(x, "J").Value = "B&#252;t&#231;esinden"              'A&#231;&#305;klamas&#305;
                      With Cells(x, "K")
                                        .Value = shT.Cells(n, 5)           'Tutar&#305;
                                        .NumberFormat = "#,##0.00"
                      End With
                  End With
                  'kod = shT.Cells(n, 6)
                  'sh1.Cells(x, 12) = shT.Cells(n, 6)           'Kodu
               End If
           Next n
           arrMm(1, j) = ""
           arrMm(2, j) = ""
        End If
        noAlt = noAlt + 1
    Next j
    noAna = noAna + 1
Next i



Set shT = Nothing: Set sh1 = Nothing
End Sub
 
Geri
Üst