• DİKKAT

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

Makro ile veri kopyalama.

Katılım
17 Ekim 2011
Mesajlar
490
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhabalar;

Aynı kitap içinde sayfanın birinden diğerine veri kopyalayacağız.
Ekli dosyada izahatta bulundum .
Makro hususunda uzman forumdaşların yardımlarını bekliyorum.

Saygılarımla.
 
Son düzenleme:
Tekrardan merhabalar.

Epeyce bir görüntülüme olmasına rağmen mesaj dahi yazılmadı.
Acaba diyorum açıklamam mı noksan yada formül çokmu uğraştırıcı.

Değerli uzmanlarımızın alakalarını bekliyorum.

saygılarımla.
 
. . .

Yapılabilir.
Ancak örnek dosyanızdaki veriyi biraz daha çoğaltın, denemeler yapmak için gerekli.
Konuyu makro bölümüne açmışsınız. İşlemi makro mu, formüller ile mi yapmak istiyorsunuz.

. . .
 
Alakanız için çok teşekkür ederim Hüseyin Bey.

Örnek dosyada değinmiştim. Veri çekeceğimiz sayfa belirli periyortlarla silinecek.
Yerine tekrar konulacak sayfadan veri çekmeye devam edeceğiz. Ve sayfa adları sürekli değişecek.
Ben buna sebeple makro ile yazılır diye düşündüm. Tabii acemi olduğumu belirtmek isterim.

Hemen örnekleri ekleyeceğim. Eğer ki yardımınız dokunur ise müteşekkir olurum.

saygılarımla.
 
Tekrardan merhabalar.

Başlığa mesaj geldi diye bir heyecanla direkt ekli dosyamı açtım :)
ama şöyle bir durum var.

Örneği çoğaltma hususunda.

Örneğimizde geçen "Karanfil" ve "Gül" formülümüzün sabiti olacak.
sadece bu kelimelerin eşleştiği durumda (karanfil gül gül karanfil şeklinde)
veri çekeceğiz. Başka kelimeler olmayacak.

umarım meramımı anlatabildim.

saygılarımla.
 
. . .

Sorunuzu anlayan arkadaşlar yardımcı olacaktır.
İyi günler.

. . .
 
Merhaba,
Dosyanızdaki açıklamalar çelişkili.
"...B ve C de Karanfil Gül yada Gül Karanfil eşleşmesi olduğunda..." diyorsunuz ama, örnek tabloda Sayfa1 ve Sayfa2 ye göre eşleşme B ve D sütununda.
"...Veri çağırdığımız sayfa..." veriler alışılmadık bir şekilde 10. satırdan başlıyor. Doğrusu bu mudur?
Örnek verileri çoğaltırsanız daha kolay anlaşılır diye düşünüyorum.
Hoşçakalın.
 
Merhaba,
Dosyanızdaki açıklamalar çelişkili.
"...B ve C de Karanfil Gül yada Gül Karanfil eşleşmesi olduğunda..." diyorsunuz ama, örnek tabloda Sayfa1 ve Sayfa2 ye göre eşleşme B ve D sütununda.
"...Veri çağırdığımız sayfa..." veriler alışılmadık bir şekilde 10. satırdan başlıyor. Doğrusu bu mudur?
Örnek verileri çoğaltırsanız daha kolay anlaşılır diye düşünüyorum.
Hoşçakalın.

Merhabalar
Sayın Dede;

Çok özür dilerim tüm arkadaşlardan dikkatimden kaçmış.
Eki düzeltip yükledim tekrardan.

Veri çağırdığımız sayfaya 10 satıra verileri örnek gözüksün diye yazdım.
Normalinde B1 B50 ile D1 D50 arası taranacak.

Örnek veriyi çoğaltma derken tam olarak ne yapmam gerektiğini inanın algılayamadım.
Üst mesajlarda Hüseyin beyde aynı şeyi yazdı.

Yazacağımız formülde karanfil ve gül eşleşmesi olacak zaten. Bu eşleşme olduğu taktirde (karanfil gül gül karanfil) eşleşilen satırdaki F hücresinde değer var ise; örneğimizde belirtilen veriler çağırılan sayfadaki
yerlere yerleşecek.

Yani formülümüzün sabitleri karanfil ve gül diğer veriler değişken.
Gül ve karanfil ise B1 B50 ile Dı D50 arasında arayacağız.


eğer ilgilenir iseniz müteşekkir olurum.
saygılarımla
 

Ekli dosyalar

Merhaba,
Aşağıdaki kodları bir modüle yapıştırarak dener misiniz?
Veri depoladığınız sayfanın adı "Depo" olmalı ve dosyanız toplam 2 sayfa olmalı.
Kod:
Sub Aktar()
Set s1 = Sheets("Depo")
For i = 1 To Sheets.Count
If Sheets(i).Name <> "Depo" Then
    Set s2 = Sheets(i)
    son = s2.[A65536].End(3).Row
    For j = 10 To son
        If s2.Cells(j, 2).Value = "Karanfil" And s2.Cells(j, 4).Value = "Gül" Or _
            s2.Cells(j, 4).Value = "Karanfil" And s2.Cells(j, 2).Value = "Gül" Then
            If s2.Cells(j, 6).Value <> "" Then
                son1 = s1.[I65536].End(3).Row + 1
                If son1 < 8 Then son1 = 8
                    s1.Cells(son1, 9).Value = s2.Cells(j, 1).Value
                    s1.Cells(son1, 11).Value = s2.Cells(j, 2).Value
                    s1.Cells(son1, 10).Value = s2.Cells(j, 3).Value
                    s1.Cells(son1, 17).Value = s2.Cells(j, 4).Value
                    s1.Cells(son1, 12).Value = s2.Cells(j, 6).Value
                    s1.Cells(son1, 13).Value = s2.Cells(j, 7).Value
                    s1.Cells(son1, 15).Value = s2.Cells(j, 8).Value
                    s1.Cells(son1, 16).Value = s2.Cells(j, 9).Value
                    s1.Cells(son1, 14).Value = s2.Cells(j, 10).Value
                End If
            End If
    Next
End If
Next
MsgBox "Aktarma işlemi tamamlandı...", , "dEdE başarılar diler."
End Sub
 
Sayın Dede;
teşekkür ederim öncelikle.

kodu neyle tetikleyeceğiz acaba?
otomatik çalışması gerekiyor ise şayet
şuanda herhangi bir tepki yok maalesef.
 
Merhaba,
Kodu değiştirdim. Veri alacağınız sayfa Depo sayfasının solunda olması koşulu ile adı ne olursa olsun çalışır. Sayfa sayısından etkilenmez.
Dosyanız ektedir.
Kod:
Sub Aktar()
For i = 1 To Sheets.Count
    If Sheets(i).Name = "Depo" Then Kaynak = Sheets(i - 1).Name: Exit For
Next

Set s1 = Sheets("Depo")
Set s2 = Sheets(Kaynak)
son = s2.[A65536].End(3).Row
For j = 10 To son
    If s2.Cells(j, 2).Value = "Karanfil" And s2.Cells(j, 4).Value = "Gül" Or _
        s2.Cells(j, 4).Value = "Karanfil" And s2.Cells(j, 2).Value = "Gül" Then
        If s2.Cells(j, 6).Value <> "" Then
            son1 = s1.[I65536].End(3).Row + 1
            If son1 < 8 Then son1 = 8
            s1.Cells(son1, 9).Value = s2.Cells(j, 1).Value
            s1.Cells(son1, 11).Value = s2.Cells(j, 2).Value
            s1.Cells(son1, 10).Value = s2.Cells(j, 3).Value
            s1.Cells(son1, 17).Value = s2.Cells(j, 4).Value
            s1.Cells(son1, 12).Value = s2.Cells(j, 6).Value
            s1.Cells(son1, 13).Value = s2.Cells(j, 7).Value
            s1.Cells(son1, 15).Value = s2.Cells(j, 8).Value
            s1.Cells(son1, 16).Value = s2.Cells(j, 9).Value
            s1.Cells(son1, 14).Value = s2.Cells(j, 10).Value
        End If
    End If
Next
MsgBox "Aktarma işlemi tamamlandı...", , "dEdE başarılar diler."
End Sub
 

Ekli dosyalar

Sayın Dede;

ne kadar teşekkür etsem azdır.
Elinize emeğinize yüreğinize sağlık.

Formülü her türlü denedim çalışıyor. Yazdığım kriterlerin hepsi mevcut.
Bir durum varki oda benim hatam.
Epeyce dalgınım bu günlerde. Özür dilerim.
Açıklamamda belirtmemişim.

Formülümüzde taşımayı buton ile yapıyoruz şu hali ile.
Taşıma işlemi veri alınan sayfaya tışamak istediğimiz verileri girdiğimizde
otomatik olarak taşınsın istiyorum. Bu yapılabilirmi acaba ?

Yani veri taşıdığımız sayfayı hiç açmasak bile veriler taşınsın istiyorum.
Yazdığınız formül bir şablon defalarca uygulanacak başka dosyalara.
bu uzun vadede zaman kaybı olacaktır. Eğer bu da yapılırsa çok memnun olurum

saygılarımla.
 
Tekrardan merhabalar

sayın dede ve saygıdeger diğer uzman arkadaşlar.

yukarıda yazdıklarıma ilave olarak. makromuza bir ilave daha yapılması lazım gözüküyor.
Makromuz veri ve çektiğimiz sayfa hemen solunda ise veri çekebiliyor. Diğer türlü veri alamıyor.
Kitapta birden çok sayfamız var buna göre düzenlenebilirse çok makbule geçer.

12 nolu mesajdaki makromuza ilave olması gerekenler:

* makromuz şu hali ile veri depoladığımız sayfadaki aktar butonu ile çalışııyor.
Bu durum veri aldığımız sayfada kopyalanacak veriler yazıldığı anda otomatik olarak
yapılırsa daha makbul olacak.

** Makromuz veri çektiğimiz sayfa hemen solunda ise veri çekebiliyor.
Bunu ise kitapta kaç tane sayfa olursa olsun. (Veri çektiğimiz sayfa en başta olacak sürekli)
bu durum gözetilerek düzeltme yapılırsa sevinirim.


yardımlarınızı bekliyorum değerli uzmanlarımız.

saygılarımla.
 
çok özür dilerim. Konunun aciliyetinden dolayı
yukarılara çekmek istedim.
 
Merhaba,
İlk mesajınızla son mesajınızı karşılaştırır mısınız? Ne istediğinizi açık, anlaşılır ve tam olarak yazarsanız hem daha çabuk yanıt alırsınız hem de Forumda kirliliğe yol açmamış oluruz.
Aşağıdaki kodları dener misiniz? Kod veri girişi yaptığınız sayfanın(ilk sayfa) J sütunundan tetiklenir.

ThisWorkbook kod sayfasına yazılacak kod:
Kod:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name <> Sheets(1).Name Then Exit Sub
If Intersect(Target, [J:J]) Is Nothing Then Exit Sub
Satır = Target.Row
Aktar
End Sub

Modüle yazılacak kod:
Kod:
Public Satır
Sub Aktar()
Set s1 = Sheets(1)
Set s2 = Sheets("Depo")
Application.EnableEvents = False

If s1.Cells(Satır, 2).Value = "Karanfil" And s1.Cells(Satır, 4).Value = "Gül" Or _
    s1.Cells(Satır, 4).Value = "Karanfil" And s1.Cells(Satır, 2).Value = "Gül" Then
    If s1.Cells(Satır, 6).Value <> "" Then
        son = s2.[I65536].End(3).Row + 1
        If son < 8 Then son = 8

        With s2
            .Cells(son, 9).Value = s1.Cells(Satır, 1).Value
            .Cells(son, 11).Value = s1.Cells(Satır, 2).Value
            .Cells(son, 10).Value = s1.Cells(Satır, 3).Value
            .Cells(son, 17).Value = s1.Cells(Satır, 4).Value
            .Cells(son, 12).Value = s1.Cells(Satır, 6).Value
            .Cells(son, 13).Value = s1.Cells(Satır, 7).Value
            .Cells(son, 15).Value = s1.Cells(Satır, 8).Value
            .Cells(son, 16).Value = s1.Cells(Satır, 9).Value
            .Cells(son, 14).Value = s1.Cells(Satır, 10).Value
        End With
    End If
End If
Application.EnableEvents = True
End Sub
 
Sayın dEdE;
Sizden ve tüm forumdan özür dilerim.
Cahilliğime verin lütfen.

Ben formülü aynı kitapta başka bir sayfada
kullanmak istediğimde (Yeni bir sayfa açıyorum yeni bir modül ekliyorum ve Karanfil Gül kısımlarını değiştiriyorum)
aşağıdaki uyarıyı alıyorum. Ne yapmam gerekiyor acaba?

saygılarımla.

c9l4lbr1onz920sya.gif
 
Sayın dEdE;
Sizden ve tüm forumdan özür dilerim.Cahilliğime verin lütfen.

Ben formülü aynı kitapta başka bir sayfada kullanmak istediğimde (Yeni bir sayfa açıyorum yeni bir modül ekliyorum ve Karanfil Gül kısımlarını değiştiriyorum) aşağıdaki uyarıyı alıyorum. Ne yapmam gerekiyor acaba?
saygılarımla

Merhaba,
Öncelikle terminolojide anlaşalım. Bunlar Formül değil makro/VBA kodudur.
Aynı kitapta başka bir sayfada kullanmak için yeni modül eklemenize gerek yoktur. Modül içindeki kodlar tüm sayfalar için geçerlidir. Sadece koddaki ilgili sayfa adını değiştirmek gerekir.
Aldığınız hata mesajı aynı kod bloğu adının iki kez kullanıldığını gösterir. Modüllerde olduğu gibi ThisWorkbook kısmında yazılan kodlar da tüm çalışma kitabı için geçerlidir.
Hoşçakalın.
 
Merhaba,
Öncelikle terminolojide anlaşalım. Bunlar Formül değil makro/VBA kodudur.
Aynı kitapta başka bir sayfada kullanmak için yeni modül eklemenize gerek yoktur. Modül içindeki kodlar tüm sayfalar için geçerlidir. Sadece koddaki ilgili sayfa adını değiştirmek gerekir.
Aldığınız hata mesajı aynı kod bloğu adının iki kez kullanıldığını gösterir. Modüllerde olduğu gibi ThisWorkbook kısmında yazılan kodlar da tüm çalışma kitabı için geçerlidir.
Hoşçakalın.

Merhabalar
Sayın dEdE;

Özür dilerim. Yanlış deyim kullandığım için.
bundan sonra daha dikkatli olacağımdan emin olabilirsiniz.

Ben kodun içeriğini değiştirerek Aynı kitapta defalarca kullanmak istiyorum.
Şuan ki kodumuzda Karanfil Gül eşleşmesi kriteri aranıyor.

ben yeni sayfalarda Papatya Menekşe vb şeklinde onlarca kez kullanmak istiyorum.
bu durumda ne yapmalıyım acaba?
 
Merhaba,
Ölçütü(kriter) değişken olarak tanımlayıp, inputbox aracılığı ile istediğiniz ölçütleri girebilirsiniz.
 
Geri
Üst