Tablodaki Verileri Başka Sekmedeki İlgili Yerlere Kopyalama

Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Arkadaşlar Ekte Sıkıntımı Belirttim Yardımcı Olursanız Çok Sevinirim.
İş Yerinde Yükleme Emirlerini Sürekli Elle Yazmaktan Bıktım da Yeni sekme ye Tıkladığım da Kendi Kopyalayıp İlgili Yerlere Yapıştırsın İstiyorum Hatta Yükleme Emri Sayfasına Yazdırmak İçin Butonda Ekleyebilirseniz Süper Olur.
 

Ekli dosyalar

Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
"SADECE SEÇİLİ OLARAK BLOKLADIKLARIMI" derken kastettiğiniz nedir? Hangi müşterinin kaydının aktarılacağını nerden bileceğiz?
 
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
"SADECE SEÇİLİ OLARAK BLOKLADIKLARIMI" derken kastettiğiniz nedir? Hangi müşterinin kaydının aktarılacağını nerden bileceğiz?
Hangi Müşteri olduğunu Bloklayarak Seçim Yaparak Belirtmiş Olacağız İşte !

Böyle Birşey Mümkün Değilse Nasıl Bir Çıkış Yolu Bulabiliriz?

Yada Her Satırın Sonuna Aktarmak İçin Ayrı Butonlar mı Eklemeliyiz ?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
"Bloklamak" diye bir işlemi maalesef bilmiyorum.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Anladığım kadarıyla bir firma seçmek istiyorsunuz ve o firmanın bilgilerinin yükleme emrine aktarılmasını istiyorsunuz. Buna göre hazırladığım ekteki belgeyi inceleyiniz.

Dosyada 3 sayfa var, 2'si sizin yaptıklarınız, biri ise firma listesi sayfası. Öncelikle tüm firmalarınızı bu sayfaya kaydedin ki Sayfa1'de bu firma isimlerinden seçim yapabilesiniz.

Sayfa1'de yeşil zeminli yerlerde veri doğrulama vardır. Firma listesine eklediğinzi firmalar o veri doğrulama lsitesinde görünür ve ordan seçim yapabilirsiniz.

Sayfa1'de J1 hücresinde istediğinizfirmayı seçtiğinizde o firmanın bilgileri yükleme sayfasına aktarılır:

Lot aktarımı
 
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Teşekkür ederim Elinize Sağlık yalnız benim atladığım bi nokta olmuş o da şudur. Seçtiğimiz Firmanın tüm bilgilerini oraya aktarıyor Ben hergün bilgi gireceğim ve genelde aynı firmalar da olacak o tabloda ve hal böyle olunca atıyorum DAF firmasının taa ay başından beri tüm bilgileri kopyalanacak o sayfaya ama işte ben 2 günlük yükleme de yapabilirim önce ki tüm bilgiler oraya aktarılırsa hiç işime gelmez bu durum benim kastettiğim Bloklayıp seçmek ve ardından o sayfaya aktarmak için butona basmak bunun için gerekliydi işte
 
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Anladığım kadarıyla bir firma seçmek istiyorsunuz ve o firmanın bilgilerinin yükleme emrine aktarılmasını istiyorsunuz. Buna göre hazırladığım ekteki belgeyi inceleyiniz.

Dosyada 3 sayfa var, 2'si sizin yaptıklarınız, biri ise firma listesi sayfası. Öncelikle tüm firmalarınızı bu sayfaya kaydedin ki Sayfa1'de bu firma isimlerinden seçim yapabilesiniz.

Sayfa1'de yeşil zeminli yerlerde veri doğrulama vardır. Firma listesine eklediğinzi firmalar o veri doğrulama lsitesinde görünür ve ordan seçim yapabilirsiniz.

Sayfa1'de J1 hücresinde istediğinizfirmayı seçtiğinizde o firmanın bilgileri yükleme sayfasına aktarılır:

Lot aktarımı
Bide Hocam İlgili Yerlere Yapışmıyor Adresler Yanlış Olmuş Müşteri Adı Renk kısmına Gidiyor Ürün Adıda Sipariş miktarına Gidiyor
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Tekrar belirteyim, "bloklamak" ne demek bilmiyorum. Dolayısıyla da ne istediğinizi anlamıyorum maalesef.

Demek istediğiniz her satırın değil de bazı satırların aktarılmasıysa başka bir sütuna o satırın aktarılıp aktarılmayacağına dair kayıt girilir (örneğin X gibi) ve o işaretin olduğu satırların aktarılması sağlanabilir.

Neyin nereye aktarılacağını sütun başlıklarına göre ayarlamıştım. Yanlışsa dosyanızda hangi sütunun hangi sütuna gideceğini açıkça belirtirseniz ona göre güncelleme yapılabilir.

Evde bilgisayar olmadığından şu anda ilgilenemiyorum maalesef. Siz örnek dosyanızı son duruma göre güncelleyin, yarına kadar diğer arkadaşlar çözüm bulamazsa ben yapmaya çalışırım.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şimdi tekrar kontrol ettim. Örnek dosyanızda her veri doğru yere gidiyor. Farklı yere gidiyorsa örnek dosyanızla makroyu uyguladığınız dosya arasında yapısal farklılık vardır demektir.

Örneğin, örnek dosyanızda Sayfa1'de Sipariş No B sütunundayken, yüklemede C sütununda olduğu için kodun aşağıdaki satırı ile aktarım yapılıyor. diğer aktarımlar da tamamen sizin örnek dosyanızdaki sütun başlıklarına uygun olarak oluşturulmuştur:

Kod:
s2.Cells(yeni, "C") = s1.Cells(i, "B")
 
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Tekrar belirteyim, "bloklamak" ne demek bilmiyorum. Dolayısıyla da ne istediğinizi anlamıyorum maalesef.

Demek istediğiniz her satırın değil de bazı satırların aktarılmasıysa başka bir sütuna o satırın aktarılıp aktarılmayacağına dair kayıt girilir (örneğin X gibi) ve o işaretin olduğu satırların aktarılması sağlanabilir.

Neyin nereye aktarılacağını sütun başlıklarına göre ayarlamıştım. Yanlışsa dosyanızda hangi sütunun hangi sütuna gideceğini açıkça belirtirseniz ona göre güncelleme yapılabilir.

Evde bilgisayar olmadığından şu anda ilgilenemiyorum maalesef. Siz örnek dosyanızı son duruma göre güncelleyin, yarına kadar diğer arkadaşlar çözüm bulamazsa ben yapmaya çalışırım.
Bloklamak yani seçmek atıyorum 4.ve5. satırı A'dan G'ye kadar seçip aktarmak istiyorum bu mümkünmüdür. Kod kısmına girdiğimde "C"-"B" YE GİBİ OLAN YERLERİ düzelttim fakat kayıtmı edemiyorum bilmiyorum düzelmiyor
 
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Evde bilgisayar olmadığından şu anda ilgilenemiyorum maalesef. Siz örnek dosyanızı son duruma göre güncelleyin, yarına kadar diğer arkadaşlar çözüm bulamazsa ben yapmaya çalışırım.
Ben sizin gönderdiğinizi tekrar yükledim şimdi güncelledim Yükleme emri sayfasında RENK kısmına Müşterinin Adı Geliyor. ÜRün adı da Sipariş miktarına geliyor. Doğrusu ÜRÜN ADI > Malzeme Kodu Kısmına gelecek
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Tamamdır Çok Teşekkür Ederim Düzelttim Kodları Oldu. Peki Belirlediğim Satırları Nasıl Aktarma Yapabiliriz Ona Çözüm Bulabilir miyiz ? Yani Mesala Dediğim Gibi DAF firmasından Belki 50 Tane Kayıt var Sizin Yapmış Olduğunuza Göre DAF ı seçtiğimde 50 Kayıt Birden Yükleme Emrine Aktarılıyor. Ama Bana Son Eklediğim 5 Kayıt Lazım Bunu Nasıl Çözebiliriz
 
Katılım
19 Aralık 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2016
Yusuf Hocam Bu Yapmış Olduğunuz Aktarım Dosyası İçin ben Aktarılacak Olan Tablonun arasına Sütun eklemek istiyorum tabi aktarılacak olan yere de karşılığı olacak öyle yaptığımda kodlar bozuluyor sanırım kodları biraz inceleyip ne nereye etki ediyor anlamaya ve yapmaya çalıştım fakat olmadı Sizden ricam nereleri değiştirmek gerekiyor.Yazmış Olduğunuz Kod Aşağıdadır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [J1]) Is Nothing Then Exit Sub
Sheets("Yükleme Emri").[A3] = "FİRMA : " & Target
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [H2:H4000]) Is Nothing Then Exit Sub
Set s1 = Sheets("716")
Set s2 = Sheets("Yükleme Emri")
sony = WorksheetFunction.Max(5, s2.Cells(Rows.Count, "B").End(3).Row)
Set eski = s2.Range("B5:I" & sony)

a = Target.Row
If WorksheetFunction.CountA(s1.Range("A" & a & ":G" & a)) < 7 Then Exit Sub

If s1.Cells(a, "D") <> [J1] Then
    MsgBox "Bu satırdaki firma, Yükleme Emrindeki firmadan farklıdır.", vbCritical
    Application.EnableEvents = False
    Target.Clear
    Application.EnableEvents = True
    Exit Sub
End If

If Target = "Aktarıldı" Then
    uyarı = MsgBox("Bu satır daha önce Yükleme Emrine aktarılmış." & _
            Chr(10) & "Yeniden aktarılsın mı?", vbYesNo)
    If uyarı = vbYes Then
        GoTo 10
    Else
        Exit Sub
    End If
End If

If Target = "" Then
    Target = "Aktarıldı"
10:
    yeni = s2.Cells(Rows.Count, "B").End(3).Row + 1
    s2.Cells(yeni, "B") = s1.Cells(a, "C")
    s2.Cells(yeni, "C") = s1.Cells(a, "B")
    s2.Cells(yeni, "E") = s1.Cells(a, "F")
    s2.Cells(yeni, "F") = s1.Cells(a, "G")
    s2.Cells(yeni, "D") = s1.Cells(a, "E")
End If

End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kod:
[B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
Sayfada değişiklik yapıldığında çalışacak kodları belirtiyor

Kod:
[B]If Intersect(Target, [J1]) Is Nothing Then Exit Sub[/B]
J1 dışındaki hücreler değişirse bir şey yapmadan çık komutu, J1 değişirse kod çalışır. J1, target olarak belirlenmiştir.

Kod:
[B]Sheets("Yükleme Emri").[A3] = "FİRMA : " & Target[/B]
Yükleme Emri sayfasının A3 hücresine "FİRMA : " yazıp sonuna J1 hücresindeki değeri ekle

Kod:
[B]End Sub[/B]
Bu kod bloğunun sonu.

Kod:
[B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[/B]
Sayfada seçim yapıldığında çalışacak kodları belirtiyor.

Kod:
[B]If Intersect(Target, [H2:H4000]) Is Nothing Then Exit Sub[/B]
H2:H4000 dışındaki hücreler değişirse bir şey yapmadan çık komutu, bu hücreler değişirse kod çalışır. Bu hücreler, target olarak belirlenmiştir.

Kod:
[B]Set s1 = Sheets("716")[/B]
716 isimli sayfa kısaca s1 olarak kodlanıyor, aşağıdaki satırlarda s1 yazan yerde aslında Sheets("716") demek isteniyor.

Kod:
[B]Set s2 = Sheets("Yükleme Emri")[/B]
Aynı işlem Yükleme Emri sayfası ve s2 için yapılıyor.

Kod:
[B]sony = WorksheetFunction.Max(5, s2.Cells(Rows.Count, "B").End(3).Row)[/B]
sony değişkenine en az 5 olmak üzere yükleme emri sayfasında B sütunundaki son dolu hücrenin satır numarası atanıyor.

Kod:
[B]Set eski = s2.Range("B5:I" & sony)CODE/B]
YüklemCODE emri sayfasının B5'ten itibaren son dolu hücreye kadar olan kısmı eski değişkenine Range/alan olarak tanımlanıyor.

Kod:
[B]a = Target.Row[/B]
a değişkenine o anda seçili olan (yani target) hücrenin satır numarası atanıyor. Aşağıdaki satırlarda geçen a'lar o satırın numarasıdır.

Kod:
[B]If WorksheetFunction.CountA(s1.Range("A" & a & ":G" & a)) < 7 Then Exit Sub[/B]
716 sayfasında seçilen satırdaki A:G arasında dolu hücre sayısı 7'den az ise hiçbir şey yapmadan koddan çıkılıyor.

Kod:
[B]If s1.Cells(a, "D") <> [J1] Then[/B]
716 sayfasında ilgili satırın D sütunu yani firma adı J1'de seçilen firmadan farklıysa aşağıdaki işlemleri yap

Kod:
[B]    MsgBox "Bu satırdaki firma, Yükleme Emrindeki firmadan farklıdır.", vbCritical[/B]
Bir uyarı mesajı göster, yukardaki metin.

Kod:
[B]    Application.EnableEvents = False[/B]
Birazdan sayfada değişiklik yapacağımızdan bu kodlar baştan çalışıp da kısır döngüye girmesin diye sayfa olaylarını geçici olarak durduruyoruz.

Kod:
[B]    Target.Clear[/B]
Hücreyi boşalt.

Kod:
[B]    Application.EnableEvents = True[/B]
Sayfa olaylarını tekrar aktifleştiriyoruz. Bu satır olmazsa/unutulursa sayfa olaylarına bağlı makrolar çalışmaz.

Kod:
[B]    Exit Sub[/B]
Başka işlem yapmadan makrodan çık.

Kod:
[B]End If[/B]
If/Eğer bloğunun sonu.

Kod:
[B]If Target = "Aktarıldı" Then
    uyarı = MsgBox("Bu satır daha önce Yükleme Emrine aktarılmış." & _
            Chr(10) & "Yeniden aktarılsın mı?", vbYesNo)
    If uyarı = vbYes Then
        GoTo 10
    Else
        Exit Sub
    End If
End If[/B]
Bu kısımda eğer hücrede "Aktarıldı" yazıyorsa uyarı verip yeniden aktarmayı soruyor, Evet denilirse yeniden aktarıyor.

Kod:
[B]If Target = "" Then
    Target = "Aktarıldı"
[/B]
Bu kısımda hücre boşsa "Aktarıldı" yazıyor.

Kod:
[B]10:
    yeni = s2.Cells(Rows.Count, "B").End(3).Row + 1[/B]
Yükleme sayfasında B sütunundaki ilk boş hücrenin satır numarası belirleniyor.

Kod:
[B]
    s2.Cells(yeni, "B") = s1.Cells(a, "C")
    s2.Cells(yeni, "C") = s1.Cells(a, "B")
    s2.Cells(yeni, "E") = s1.Cells(a, "F")
    s2.Cells(yeni, "F") = s1.Cells(a, "G")
    s2.Cells(yeni, "D") = s1.Cells(a, "E")
End If
[/B]
Bu kısımda 716 sayfasında o satırdaki bilgiler yükleme sayfasındaki ilk boş satıra aktarılıyor.

Kod:
[B]End Sub[/B]
Makronun sonu.

Araya giren sütunlar için tüm satırların ayrı ayrı gözden geçirilmesi gerekir.
 

wahap70

Altın Üye
Katılım
14 Aralık 2012
Mesajlar
60
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
29-02-2029
@YUSUF44 Hocam Merhaba Kolay Gelsin

Yapmış Olduğunuz Bu makro Excel de Benzer bişey yapmak istedim fakat bi türlü tam anlamıyla başaramadım :( Ek'de ki dosyaya bakabilir misiniz rica etsem Veri Sayfasında Liste Halinde Sürekli Yeni Bilgiler Eklenecek (yani manuel yazılacak) Teklif Formunda da İlgili yerlere gelecek kısımları Veri Sayfasında Aynı renge Boyadım. Örnek : A Firmasından 5 Satır Varsa Teklif Tarihi,Teslim Tarihi ve Firma Adı Formda İlgili Yere Bi Defa Yazılacak. Müşteri Kodu, For Kodu ve Birim Fiyatı da Teklif Formunda İlgili Yere Sıra Sıra 5 Satırın Hepsi Yazılacak. Konu Hakkında Yardım ve Desteğinizi Bekliyorum. Şimdiden Teşekkür Ederim. Şifre :lot
 

Ekli dosyalar

Üst