Girilen Tarihe Göre Yapıştırma

Excel harici diğer konuları burada paylaşabilirsiniz.

Girilen Tarihe Göre Yapıştırma

İleti#1)  xfactory9025 » 11 Oca 2020 10:20

Arkadaşlar benim bir tablom var tablodaki verileri başka bir sayfadaki tabloya yapıştırmak istiyorum. Makroyla bu çok basit ancak baştaki tabloda hangi tarihi girdiysem yandaki tabloda da aynı tarihe yapıştırmasını istiyorum. Yani makroyu koşula göre nasıl yönlendirebilirim?
Sağdaki tablodaki tarihler elle yazılmış olarak hazır olacak yeniden oluşturulmayacak.
https://dosyayukleme.com/5y3/Deneme.xlsx
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#2)  Ömer BARAN » 11 Oca 2020 12:51

Merhaba.

Aşağıdaki kod istenilen aktarma işlemini yapar.

Ancak sorunuzda net olmayan hususlar var gibi;
-- Sayfa1'deki veriler aktarma sonrasında yerinde kalacak mı yoksa aktarmadan sonra silinecek mi belli değil,
-- Sayfa1'e aynı tarih tekrar yazılırsa veya kod tekrar çalıştırılırsa,
Sayfa2deki tabloda ilgili tarih sütununda önceden var olan değerler temizlendikten sonra mı aktarma yapılacak?
-- Sayfa2'de, ilgili tarih sütununda mevcut veriler temizlenmeyip yeni veriler üstüne mi eklenecek örneğin?

Hepsi ve daha fazlası için; https://www.EXCELDESTEK.com/ forum sitesine de bekleriz.

.
Kod: Tümünü seç
Sub AKTAR()
Set s1 = Sheets("Sayfa1"): Set s2 = Sheets("Sayfa2")
For XD2 = 3 To s2.Cells(3, Columns.Count).End(xlToLeft).Column
    If CDate(s2.Cells(3, XD2)) = s1.[F3] Then
        sut = XD2
        For XD = 4 To s1.Cells(Rows.Count, 2).End(3).Row
            If WorksheetFunction.CountIf(s2.[B:B], s1.Cells(XD, 2)) > 0 Then _
            s2.Cells(WorksheetFunction.Match(s1.Cells(XD, 2), s2.[B:B], 0), sut) = s1.Cells(XD, 3)
        Next
        Exit For
    End If
Next
End Sub
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 225
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#3)  xfactory9025 » 11 Oca 2020 14:45

Çok teşekkür ederim hocam.
Sayfa1 deki veriler silinmese de olur yarın tekrar veri girişinde elle silebilirim.
Sayfa1 e aynı tarih girilirse Sayfa2 de direk üstüne yazsın eski değerlerle toplamasın.
Sanırım bu hali verdiğiniz kodla hallediliyor. Ek bişey daha sorsam. Bu sayfa2 Ocak ayıydı ben her ay için sekme açıcam sayfa3 şubat ayı olacak tek makroyla istediğim sayfada istediğim tarihe kaydetmek mümkün mü?
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#4)  Ömer BARAN » 11 Oca 2020 15:55

O halde verdiğim kod aşağıdaki şekilde düzenlenebilir.
Kod'da sadece Sayfa1'in adını gerçek belgedeki sayfanın adıyla değiştirmeniz yeterli olacaktır.

Hepsi ve daha fazlası için >>> https://www.ExcelDestek.Com forum sitemize de beklerim.


.

Kod: Tümünü seç
Sub AKTAR()
Set s1 = Sheets("Sayfa1")
For Each shf In ThisWorkbook.Sheets
    If shf.Name <> ActiveSheet.Name Then
        Set s2 = Sheets(shf.Name)
        For XD2 = 3 To s2.Cells(3, Columns.Count).End(xlToLeft).Column
            If CDate(s2.Cells(3, XD2)) = s1.[F3] Then
                sut = XD2
                For XD = 4 To s1.Cells(Rows.Count, 2).End(3).Row
                    If WorksheetFunction.CountIf(s2.[B:B], s1.Cells(XD, 2)) > 0 Then _
                        s2.Cells(WorksheetFunction.Match(s1.Cells(XD, 2), s2.[B:B], 0), sut) = s1.Cells(XD, 3)
                Next
                Exit For
            End If
        Next
    End If
Next
End Sub
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 225
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#5)  xfactory9025 » 11 Oca 2020 16:15

Çok teşekkür ederim. Allah razı olsun. şkşk
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#6)  xfactory9025 » 11 Oca 2020 18:28

Kendi dosyama uyarlamam için hangisinin nereye denk geldiğini deneme yanılmayla bulmaya çalışıyorum ancak alttaki satırları çözemedim. Fox XD=4 burdaki 4 ü anladım 1. sayfadaki kopyalanacak satır no ancak sonraki 2 ve 3 ü çözemedim. 2 yi 3 yapınca da aynı şekilde çalışıyor fakat farklı sayı yapınca çalışmıyor. End'in içindeki 3 nedir onu hiç anlamadım onu değiştirince program kitleniyor reset atıyor.
Kod: Tümünü seç
                For XD = 4 To s1.Cells(Rows.Count, 2).End(3).Row
                    If WorksheetFunction.CountIf(s2.[B:B], s1.Cells(XD, 2)) > 0 Then _
                        s2.Cells(WorksheetFunction.Match(s1.Cells(XD, 2), s2.[B:B], 0), sut) = s1.Cells(XD, 3)
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#7)  Ömer BARAN » 11 Oca 2020 23:48

Tekrar merhaba.

s1.Cells(Rows.Count, 2).End(3).Row bölümünün Cells(Rows.Count, 2) kısmındaki 2 sayısı B sütununu temsil ediyor,
.End(3).Row kısmı ise xlUp anlamına geliyor.

Bu satırın bütün olarak işlevi ise; excel versiyonuna göre B65536 veya B1408576 hücresinden
yukarı doğru gidildiğinde ilk dolu satırın satır numarasının bulunması.
Veri alanındaki satır sayısı değişse de kod'un bu kısmı, For...Net döngüsünün 4'üncü satırdan aşağı doğru son dolu hücreye kadar devam etmesini sağlıyor.

If WorksheetFunction.CountIf(s2.[B:B], s1.Cells(XD, 2)) > 0 Then _
s2.Cells(WorksheetFunction.Match(s1.Cells(XD, 2), s2.[B:B], 0), sut) = s1.Cells(XD, 3)
burada, döngüye girildiğinde örneğin B5 hücresindeki değer
diğer sayfa B sütununda varsa yani EĞER, EĞERSAY işleminin sonucu 0'dan büyükse ( If COUNTIF...>0 )
bu değerin KAÇINCI (Match) satırda olduğunu buluyor.

Neticede sut yani SÜTUN değeri, kod'un daha üstteki satırında zaten bulunmuştu,
yukarıdaki açıklamalara göre de satır numarası da bulunarak, verinin yazılacağı hücre adresi tespit edilmiş oluyor ve
....= = s1.Cells(XD, 3) kısmı ile de (buradaki 3 sayısı, C sütununu temsil ediyor) adresi tespit edilen bu hücreye
XD değişkeninin aldığı değere göre C5, C10 neyse artık, C sütunundaki değer yazdırılıyor.

Umarım açıklayıcı olmuştur.

Hepsi ve daha fazlası için >>> https://www.ExcelDestek.Com forum sitesine de bekleriz.

.
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 225
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#8)  xfactory9025 » 12 Oca 2020 00:27

Maşallah hocam bu ne zeka. Ben yazılmışını anlayamıyorum siz sıfırdan mantık kurup yazıyorsunuz. Dosyama uyarladım çalışıyor ancak If CDate(s2.Cells(6, XD2)) = s1.[E5] Then satırında hata veriyor debug'a basınca verileri işliyor. Tarih formatlarına baktım hepsi aynı ama bazen yapıyor bazen yapmıyor.
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#9)  xfactory9025 » 12 Oca 2020 12:06

Hocam ilk verdiğiniz kodu deneyince sorunsuz çalışıyor. Ancak ikinci kodda yani birden fazla yan sayfa olduğu kodu deneyince dediğim gibi tarih eşleşmesi kısmında bazen hata veriyor debug yapınca çalışıyor. İlginç gerçekten. Örnek attığım basit dosyada ise hiç hata vermiyor.
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#10)  Ömer BARAN » 12 Oca 2020 16:44

Kuvvetle muhtemel verilerin TARİH/SAYI/METİN olma durumuyla ilgilidir.

Ayrıca gerek verinin alınacağı, gerekse de verilerin yazılacağı sayfalarda görünen değerlerin, elle yazılmış olması
veya başka kaynaktan kopyala/yapıştır yoluyla aktarılıyor oluşu ya da formüllerle elde edilen sonuçlar oluşu da önemli.

Bu nedenle; hatalı işlemin gerçekleştiği bir örnek belge yüklerseniz nedenini anlamak kolaylaşır.

.
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 225
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#11)  xfactory9025 » 12 Oca 2020 21:36

Hocam sorunu buldum. Tarihlerin olduğu sütunun yanında toplam miktar diye bir sütun var o kısım tarih olmadığı için hata veriyor. Gerçi bu mantıkla ilk kodda da hata vermesi lazımdı ama nedense onda vermiyor. Formül son dolu noktaya kadar taradığı için toplam kısmına da bakıyor ve tarih olmadığı için hata veriyor. Her ay sabit olsa belli bir hücreye kadar baktırırdık ama bazı aylar 30 gün bazıları 31 olunca sıkıntı yaratır. Aslında hataya end tuşuna basınca makro işlevini yerine getiriyor da o hatanın çıkmamasını sağlayabilir miyiz?
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#12)  Ömer BARAN » 12 Oca 2020 21:48

Soruların, özel bilgi içermemek üzere,
gerçek belgenizin kopyası biçiminde hazırlanmış örnek belge üzerinden sorulmamasının sonucu böyle malesef.

İyi çalışmalar dilerim.

.
☾✭ İnadına TÜRKÇE ✭☽

Sorularınızı bana https://www.ExcelDestek.Com 'dan da sorabilirsiniz.




.
Kullanıcı avatarı
Ömer BARAN
Siteye Alışmış
 
Adı Soyadı:ÖMER BARAN
Kayıt: 29 Oca 2013 16:17
Konum: ANKARA
Meslek: EMEKLİ
Yaş: 56
İleti: 225
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ANKARA / ÇANKAYA

Cevap: Girilen Tarihe Göre Yapıştırma

İleti#13)  xfactory9025 » 12 Oca 2020 22:22

Hocam hakkınızı helal edin çok yordum sizi eklemeyi düşündüm ama özel bilgileri silince de tablonun bir anlamı kalmıyor. Firma bilgilerinin olduğu dosyayı da herkesin görebileceği ortama yüklemek sıkıntı yaratabilir. En kötü end tuşuna basarak kullanıcam artık çünkü sağdaki sütunları silmemem gerekiyor. İyi çalışmalar Allah razı olsun.
Kullanıcı avatarı
xfactory9025
 
Kayıt: 08 Ağu 2017 11:57
Meslek: Kimyager
Yaş: 30
İleti: 9
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Rize Merkez


Forum Diğer Konular

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

Bumerang - Yazarkafe