• DİKKAT

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

Sayfalarda bulunan verileri değer olarak yapıştırma

Katılım
10 Haziran 2011
Mesajlar
176
Excel Vers. ve Dili
2003 Türkçe
Ekli dosyada birden otuzbeşe kadar sıralanmış sayfalarda bulunan (Okul sayfaları) C15:AP21 aralığında bulunan verileri Genel1 sayfasında C15:AP85 aralığına boşluk bırakmadan altalta gelecek şekilde makro ile değer olarak yapıştırmak istiyorum. Okulların bazılarında 2 kişi bazılarında 7 kişiye kadar kayıt bulunmaktadır. Çeşitli denemeler yapmama rağmen yapamadım. Yardım edecek arkadaşlara şimdiden teşekkür ederim.
 

Ekli dosyalar

Sn cayaso
Sayfa yapına göre aşağıdaki kodu hazırladım. ilk iki sütunun kodunu yazdım. Diğerlerini sen eklersin noktalı yerden aşağı doğru.
Kod:
Sub dd()
For i = 1 To 35
a = CStr(i)
say = Sheets(a).Range("C21").End(3).Row
For e = 15 To say
say1 = Sheets("genel1").Range("C65536").End(3).Row

If say1 = 11 Then
say1 = 15
Else
say1 = Sheets("genel1").Range("C65536").End(3).Row + 1
End If

Sheets("genel1").Range("C" & say1).Value = Sheets(a).Range("C" & e).Value
Sheets("genel1").Range("D" & say1).Value = Sheets(a).Range("D" & e).Value
.......
.......
......
Next
Next
End Sub
 
Son düzenleme:
Ekteki kodları denermisiniz.


Kod:
Sub getir()
Dim dizi1(1 To 245, 1 To 40)

For x1 = 1 To 35
Syf = Format(x1, "")

For x2 = 15 To 21
If Len(Sheets(Syf).Cells(x2, 3)) > 3 Then
sat = sat + 1
For x3 = 3 To 42
dizi1(sat, x3 - 2) = Sheets(Syf).Cells(x2, x3)
Next x3
End If
Next x2
Next x1
Sheets("Genel1").Range("C15:AP" & sat).Value = dizi1()
End Sub
 
Sayın omerceri ve hüseyinkis teşekkür ederim. Mesa bittiği için deneme fırsatım olmadı.İnşallah yarın uygulamaya çalışacağım.
 
Sayın huseyinkis 28 nci sayfadan sonraki sayfalarda bulunan verileri aktarılmıyor. Mümkünse dosya olarak uyarlayabilirmisiniz.
 
Merhaba kodlarda eksiklik kalmış ekteki gibi değiştirip denermisiniz.

Kod:
Sub getir()
Dim dizi1(1 To 245, 1 To 40)

For x1 = 1 To 35
Syf = Format(x1, "")

For x2 = 15 To 21
If Len(Sheets(Syf).Cells(x2, 3)) > 3 Then
sat = sat + 1
For x3 = 3 To 42
dizi1(sat, x3 - 2) = Sheets(Syf).Cells(x2, x3)
Next x3
End If
Next x2
Next x1
[B]Sheets("Genel1").Range("C15:AP" & sat+15).Value = dizi1()[/B]
End Sub
 
Sayfa sayısını artırdığımızda yine sayfaların bir kısmını aktarmıyor. Sayfa sayılarını artırdığımızda kodlarda nasıl değişiklik yapmam gerekiyor. Açıklama yaparsanız memnun olurum.
 
isim, isim1, Genel1 gibi işleme dahil olmayan sayfaların sayısına bağlı olarak (şu durumda 3)
Sn. Huseyinkis ın kodlarındaki
Kod:
For x1 = 1 To 35
yazan satırı
Kod:
Say = sheets.count -3
For x1 = 1 To Say
olarak değiştirin
 
If Len(Sheets(Syf).Cells(x2, 3)) > 3 Then
Satırında hata verdi.
 
Help diye bir sayfanız daha varmış

Kod:
Say = sheets.count -4
For x1 = 1 To Say
 
Geri
Üst