• DİKKAT

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

Makro ile bir sayfadan diğer sayfaya sadece belirli verileri alma

Katılım
21 Mayıs 2013
Mesajlar
6
Excel Vers. ve Dili
excel 2010
Merhabalar Değerli Arkadaşlar ve Üstatlar ;

Ekte sunmuş olduğum dosya benim çalışma yapmak istediğim çok uzun ve çok fazla sayıda veriler bulunduran dosyanın kısa bir halidir. Kısaca yapmak isteyip de başaramadığım konuyu aktarmak isterim.

Dosyada; İzmir - Çanakkale - İstanbul ve Rize sayfalarında 20 satırlık veriler bulunmaktadır. Bunların bazılarında açıklama kısmında "İPTAL" ibareli satırlar mevcuttur.

Bir de bu sayfaların yanında "İPTAL" sayfası diye ayrı bir dosya bulunmaktadır. İşte benim istediğim noktada burada başlıyor. Ben İptal yazılı sayfada sadece diğer 4 çalışma sayfasındaki sadece iptal yazılı satırların gelmesini istiyorum. Normal şartlarda bu sayfalarda 1000 ce veri var ve içlerinde bir çok iptaller var.Normalde bunları filtreleyip kopyala yapıştırmak yerine eğer mümkünse makro veya farklı bir şekilde oraya otomatik getirmek amacımız.

Yardımlarınızı rica eder, saygılar sunarım.
 

Ekli dosyalar

sıra numarası kopyalanacak mı , dolacak mı ?
rize nin 1 numaralı satırı ve istanbul un 1 numaralı satırı... ikisi de iptal ise iptal sayfanızda 1 ve 1 diye mi görünecekler yoksa 1-2 mi olması gerekir ?
sayfa sırasında eklenecek, daha sonra sıralama ister misiniz ?
önce izmirler, sonra çanakkaleler sonra istanbullar sonra rizeler....
bundan sonra örneğin tarihe / işlem tarihine göre vb bir sıralama (artan/azalan) istiyor musunuz ?
 
Hocam merhaba tekrar,
Sıra numarası kopyalanma yerine dolacak bir şekilde gelirse daha iyi olur.
Rize'nin 1 numaralı satırı ile istanbul'lun 1 numaralı satırı aynı anda iptal ise ikisi de 1-1 olarak gelmeli. Çünkü "G" Sütununda ilgili şube yeri var oraya atmalı
sizinde belirttiğiniz üzere izmirler bir istanbullar bir şeklinde olmalı
tarihe göre sıralama yapılabilir onlarda çok sorun yok
umarım açıklayıcı olabildim
Çok teşekkür ederim.
 
Sn taylan.tiamo
Aşağıdaki makro işinize yarar umarım.
Kod:
Sub Makro1()
 Sheets("İPTAL").Range("A1:G65536").ClearContents
say = Sheets.Count
For i = 1 To say
If Sheets(i).Name <> "İPTAL" Then
say2 = Sheets(i).Range("A" & Rows.Count).End(xlUp).Row
     Sheets(i).Range("E2").AutoFilter Field:=5, Criteria1:="İPTAL"
   Sheets(i).Range("A3:G" & say2).Copy
   say3 =Sheets("İPTAL").Range("A" & Rows.Count).End(xlUp).Row
   Sheets("İPTAL").Range("A" & say3 + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     End If
  Next
End Sub
 
Son düzenleme:
Ömer Hocam,
Çok Teşekkür ederim hemen uygulamaya çalışacağım, umarım bende becerebilirim.
Elinize sağlık, son durumu tekrar bildireceğim
 
ilave kolonlarınız olabilir diye ben tüm satırı kopyaladım.
ömer beyin yaptığı çalışma a-g arasını kopyalıyor.
ilave olarak, ömer beyin çalışması xls , benimki xlsm
excel sürümünüze göre bakarsınız. bakarsınız dememin sebebi, temizleme aralığı 65536 satır ile sınırlı, binlerce kaydınız bu kaydı geçecek ise, ona göre değerlendirin.
 

Ekli dosyalar

Çok Teşekkür ederim, Sayın Ömer Bey ve Doğan Bey.
Yardımlarınız tam olarak yapmak istediğim çalışmaydı.
Ellerinize sağlık.
 
İyi geceler,
Yukarıdaki dosyanın birkaç sayfadan değilde sadece tek sayfadan oluştuğunu düşünürsek ve bu sayfanın adının da veri sayfası olduğunu kabul edersek; kodları nasıl revize edebiliriz.Ben kendi dosyama uyarlamaya çalışacağım.
(Başka bir başlık açmak yerine bu başlık altından sormayı uygun buldum.)
Teşekkürler.
 
"İPTAL" Yazan yerleri kendi sayfanızı yazacaksınız fakat işinizi görmeyecek gibi geliyor. Siz örnek dosyanızı ekleyip ona göre bir öneri sunalım. Daha iyi olabilir.
 
İyi akşamlar, kodla ilçesi boş olan satırları sayfa2 ye aktarmak istiyorum.Örnek dosyam Ek'tedir.
Teşekkürler.
 

Ekli dosyalar

Vardar Bey;Teşekkürler, aynen istediğim gibi ancak sıra numarası Sayfa2 ye, Sayfa1 deki sıra numaraları ile aktaracak şekilde revize edebilirmiyiz?
 
Kodları aşağıdaki ile değiştirip denermisiniz.
Kod:
Private Sub CommandButton1_Click()
Dim Zaman As Double, S1 As Worksheet
Zaman = Timer
Set S1 = Sheets("Sayfa2")
S1.Range("A2:L" & Rows.Count).ClearContents
With Sheets("Sayfa1")
For i = 2 To .Range("A65536").End(3).Row
If .Cells(i, "E") <> "" And .Cells(i, "F") = "" Then
son = S1.Range("A65536").End(3).Row + 1
For k = 1 To 12
S1.Cells(son, k) = .Cells(i, k)
Next
End If
Next
End With
MsgBox "Aktarma Tamamlandı. " & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Vardar Bey; Çok Teşekkürler elinize sağlık.
 
Geri
Üst