• DİKKAT

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

İstenen şartlarda veri aktarımı

  • Konbuyu başlatan Konbuyu başlatan mlhtrn
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Ocak 2012
Mesajlar
16
Excel Vers. ve Dili
2007 makro
ekte eklediğim dosyada sayfa 1 e sayfa 2 den yeşil kısımları sayfa 3 den de mavi kısımları kopyala yapıştır yapacak bir kod arıyorum. Ama aynı sütunları aynı sütunun altına önce 2 den sonra 3 den gelecek şekilde bir şartım var.
 

Ekli dosyalar

  • asd.xlsx
    asd.xlsx
    263.1 KB · Görüntüleme: 21
yanıt

Kod:
Sub aktar()
Dim sat As Integer
Dim sut As Integer
Dim s As Integer
    For sut = 1 To Cells(1, Columns.Count).End(xlToRight).Column
    s = Sayfa1.Cells(Rows.Count, sut).End(xlUp).Row + 1
    For sat = 1 To Cells(Rows.Count, "a").End(xlUp).Row
        If Sayfa2.Cells(sat, sut).Interior.ColorIndex = 10 Then
            Sayfa2.Cells(sat, sut).Copy Sayfa1.Cells(s, sut)
            s = s + 1
        End If
    Next
    Next
    '
    For sut = 1 To Cells(1, Columns.Count).End(xlToRight).Column
    s = Sayfa1.Cells(Rows.Count, sut).End(xlUp).Row + 1
    For sat = 1 To Cells(Rows.Count, "a").End(xlUp).Row
        If Sayfa3.Cells(sat, sut).Interior.ColorIndex = 33 Then
            Sayfa3.Cells(sat, sut).Copy Sayfa1.Cells(s, sut)
            s = s + 1
        End If
    Next
    Next
End Sub
 
ziya bey zaman ve emek ayırdığınız için öncelikle teşekkürlerimi sunarım. formülde sanırım küçük bir yanlışlık var çünkü 2 sayfadaki verileri kopyalamıyor
 
anasayfa olarak verileri girdiğimizde diğer sayfalara bilgileri aktarmak istiyorum.yardımlarınız için teşekkürler.
örnek;
sayfa1 yazdığım adı soyadı tc adres tel bilgilerini kişilere ait sayfalara aktarsın
 
ziya bey sanırım burada sayfa 2 ve 3 de eğer o renkte hücre varsa kopyala gibi bir işlem yapıyor benim hücreleri renklendirme amacım anlaşılabilirlik olsun diyeydi normalde renklendirme olmayan sayfalardan o sutünları çekmem lazım
 
Son düzenleme:
ziya bey sanırım burada sayfa 2 ve 3 de eğer o renkte hücre varsa kopyala gibi bir işlem yapıyor benim hücreleri renklendirme amacım anlaşılabilirlik olsun diyeydi normalde renklendirme olmayan sayfalardan o sutünları çekmem lazım
 
yanıt

Bu şekil deneyiniz.
Kod:
Sub aktar()
Dim sat As Integer
Dim sut As Integer
Dim s As Integer
    Sayfa2.Range("d:d,f:f,g:g,ı:ı").Interior.ColorIndex = 10
    Sayfa3.Range("d:d,e:e,h:h,l:l").Interior.ColorIndex = 33
    For sut = 1 To Cells(1, Columns.Count).End(xlToRight).Column
    s = Sayfa1.Cells(Rows.Count, sut).End(xlUp).Row + 1
    For sat = 1 To Cells(Rows.Count, "a").End(xlUp).Row
        If Sayfa2.Cells(sat, sut).Interior.ColorIndex = 10 Then
            Sayfa2.Cells(sat, sut).Copy Sayfa1.Cells(s, sut)
            s = s + 1
        End If
    Next
    Next
    '
    For sut = 1 To Cells(1, Columns.Count).End(xlToRight).Column
    s = Sayfa1.Cells(Rows.Count, sut).End(xlUp).Row + 1
    For sat = 1 To Cells(Rows.Count, "a").End(xlUp).Row
        If Sayfa3.Cells(sat, sut).Interior.ColorIndex = 33 Then
            Sayfa3.Cells(sat, sut).Copy Sayfa1.Cells(s, sut)
            s = s + 1
        End If
    Next
    Next
    Sayfa1.Range("a:p").Interior.ColorIndex = xlNone
    Sayfa2.Range("d:d,f:f,g:g,ı:ı").Interior.ColorIndex = xlNone
    Sayfa3.Range("d:d,e:e,h:h,l:l").Interior.ColorIndex = xlNone
End Sub
 
Kırmızı yazılı kısımda hata veriyor Ziya bey...

Sub aktar()
Dim sat As Integer
Dim sut As Integer
Dim s As Integer
Sayfa2.Range("d:d,f:f,g:g,ı:ı").Interior.ColorIndex = 10
Sayfa3.Range("d:d,e:e,h:h,l:l").Interior.ColorIndex = 33
For sut = 1 To Cells(1, Columns.Count).End(xlToRight).Column
s = Sayfa1.Cells(Rows.Count, sut).End(xlUp).Row + 1 For sat = 1 To Cells(Rows.Count, "a").End(xlUp).Row
If Sayfa2.Cells(sat, sut).Interior.ColorIndex = 10 Then
Sayfa2.Cells(sat, sut).Copy Sayfa1.Cells(s, sut)
s = s + 1
End If
Next
Next
'
For sut = 1 To Cells(1, Columns.Count).End(xlToRight).Column
s = Sayfa1.Cells(Rows.Count, sut).End(xlUp).Row + 1
For sat = 1 To Cells(Rows.Count, "a").End(xlUp).Row
If Sayfa3.Cells(sat, sut).Interior.ColorIndex = 33 Then
Sayfa3.Cells(sat, sut).Copy Sayfa1.Cells(s, sut)
s = s + 1
End If
Next
Next
Sayfa1.Range("a:p").Interior.ColorIndex = xlNone
Sayfa2.Range("d:d,f:f,g:g,ı:ı").Interior.ColorIndex = xlNone
Sayfa3.Range("d:d,e:e,h:h,l:l").Interior.ColorIndex = xlNone
End Sub
 
Ziya bey öncelikle her sorumu cevaplandırdığınız için teşekürler. Üzülerek söylemekteyim 1 sorunum daha var :D sayfa 2 ve sayfa 3 deki D kolonuna 15-20 arası sayı ekledim aşaya doğru . Makroyu çalıştır dediğimde eklemiş olduklarımdan 2 tanesini falan aktardı sebebini anlayamadım yani neden hepsini aktarmıyor ki ?acaba burada ki hata nedir?
 
Geri
Üst