Seçtiğim Alanı Kopyalayıp Farklı Hücrelere Yapıştırma

Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhabalar,
Çalıştığım şirkette artık işim gereği VBA'yı kullanmaya başladım. Bazı işleri halledebilirken bazılarını halledemiyorum, o yüzden size danışmanın en doğru olduğunu düşündüm.
Yapmak istediğim özetle şöyle;
Sheets1'den benim mause ile seçtiğim alanı kopyalayıp Sheets4'e yapıştırması gerekiyor.
Ama Sheets4'e yapıştırırken farklı yerlere yapıştırmalı.
Örneğin Sheets1'den C2:F16 aralığını seçtimdiyelim, Sheets 2'ye yapıştırırken Sheets1(C2) hücresi Sheets2(d3) hücresine yapışsın gibi karışık yapışıcak
Fakat hücrelerin yapışması gereken düzen hep aynı.
Ben Shift= ile denedim baştan ama çok fazla hücre var.
Ne yapmam gerekli acaba? Yardımlarınızı bekliyorum.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Sorunuzu örnek dosya ile destekleyiniz.
Örnek dosyayı paylaşım sitelerinden birine yüklüyebilirsiniz.
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhaba Necdet Bey,

Altın üyelik aldım, onaylandığında dosyayı ekleyeceğim.
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Selam Necdet Bey,
Ekli excelde Sheet 1,2,3,4 farketmeksizin yeni bir bilgi girdiğimde bunu mause ile seçip sheet5 teki ilgili yerlere yapıştırmam lazım ki bu bilgileri elle doldurmak zorunda kalmıyım, desteğinizi rica ediyorum.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Siz tüm sayfalarda veri girdikçe BLOKE KARTI sayfasına aktarmak istiyorsunuz sanırım.

Eğer amacınız bu ise neden fazladan işlem yapmak istiyorsunuz? örneğin seçme gibi?

Benim kafamdan geçen bir kaç günde bir tek seferde tüm sayfalardaki aktarılmayan veri girişleri aktarmak. Tek seferde.
Bu daha kullanışlı olmaz mı?

Not : Konuyu Makro Bölümüne Taşıdım.
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhaba,

Hayır her defasında tüm bilgiler karta gitmemeli, Sheet1,2,3,4'e yeni bir veri girdiğimde, o alanı seçebilmeli ve bloke kartı sayfasına sadece o alanın bilgileri gidebiliyor olmalı. Eskiden çalışanlar sheet 1,2,3,4'e ürün bilgilerini girip daha sonra onları kağıtlara elle kalemle dolduruyordu. bu zaman kaybının önüne geçmek istiyoruz. yeni bir giriş yapıldığında o alanın karta otomatik doldurulmasını araştırıyoruz fakat birşey bulamadık henüz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Dosyanız üzerinde çalışmıştım.

Sayfalarda Q sütununu yardımcı sütun olarak kullandım. Aktarılan satırların q sütununa çentik attırdım.

Siz her veri girdiğinde de ya da canınız istediğinizde verileri aktarabilirsiniz.

Tek bir sayfadaki verileri tek seferde aktarabildiğiniz gibi aktarmak istediğiniz sayfaları Shift tuşu ile seçerek te aktarabilirsiniz.

Verilerin hepsinin girilip girilmediğini kontol etmedim. Gerekirse bu şart da kodlara eklenebilinir.

Kod:
Sub SecilenSayfalar()

    Dim Syf As Worksheet, _
        i   As Long, _
        Son As Long, _
        j   As Long, _
        c   As Range, _
        Adr As String, _
        ShB As Worksheet
        
    Set ShB = Sheets("BLOKE KARTI")
    
    For j = 5 To ShB.Cells(Rows.Count, "A").End(3).Row Step 14
        If ShB.Cells(j, "F") = 0 Then Exit For
    Next j
        
    MsgBox ActiveWindow.SelectedSheets.Count & " ADET SAYFA SEÇTİNİZ, İŞLEMLERİ BAŞLATACAĞIM.... N.Y"
    
    For Each Syf In ActiveWindow.SelectedSheets
    
        Son = Syf.Cells(Rows.Count, "B").End(3).Row
        If Son < 4 Then Son = 4
        
        For i = 4 To Son
        
            If Syf.Cells(i, "Q") = "" Then
            
                ShB.Range("F" & j) = Syf.Cells(i, "B")      'Parça No
                ShB.Range("D" & j + 2) = Syf.Cells(i, "E")  'Hata
                ShB.Range("D" & j + 4) = Syf.Cells(i, "D")  'Adet
                ShB.Range("G" & j + 4) = Syf.Cells(i, "G")  'Tarih
                ShB.Range("J" & j + 4) = Syf.Cells(i, "H")  'İsim
'                ShB.Range("D" & j + 6) = Syf.Cells(i, "H") 'Açıklama ?
                ShB.Range("J" & j + 6) = Syf.Cells(i, "C")  'Şarj
                ShB.Range("E" & j + 8) = Syf.Cells(i, "A")  'Kart Sıra No
                Syf.Cells(i, "Q") = "ü"
                j = j + 14
                
            End If
            
        Next i
        
    Next Syf
    
End Sub
 

Ekli dosyalar

Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhaba Necdet Bey,

Öncelikle bu denli ilginize çok teşekkür ediyorum, siz olmasaydınız bu aktarım işini çözemezdim, çok çok teşekkürler. Kodda ufak tefek değişiklikler yapmaya çalışıcam.

1. Değişiklik : Örneğin HDEV4 sayfasından BLOKE KARTI'na bilgi çekeceğim, benim seçtiğim alan değil en son giriş yaptığım alana kadar alıyor. Bunu sadece benim giriş yapıp seçtiğim alanı alması şeklinde değiştirmeye çalışacağım.

2.Değişiklik : Daha önceden BLOKE KARTINA aktarımı yapılmış verilerin BLOKE KARTInda tutulmasına gerek yok. BLOKE KARTINA yapıştırılan bilgiler boş olandan değil her zaman en üstteki karttan başlamalı, bunuda çalışacağım.

Tekrar teşekkür ediyorum size, eğer bu dediklerimi kendim yapamazsam tekrardan sizi rahatsız edebilirim, hayırlı akşamlar efendim :).
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Necet Bey Merhaba,

1. ve 2. olarak yazdığım maddeler zaten makroda varmış, makro bu şekilde çalışıyormuş yeni anlayabildim :)

Makroyu daha iyi anlabilmek adına aşağıdaki kodların tam olarak ne iş yaptığını öğrenmeye çalışıyorum.

İlk olarak DİM tam olarak nasıl çalışır? anladığım kadarıyla başa yazılanın ne olduğunu tanımlıyor

Bunun hakkında hiçbir fikrim yok :(
For j = 5 To ShB.Cells(Rows.Count, "A").End(3).Row Step 14
If ShB.Cells(j, "F") = 0 Then Exit For
Next j

Bunun hakkındada hiçbir fikrim yok :(
For Each Syf In ActiveWindow.SelectedSheets

Son = Syf.Cells(Rows.Count, "B").End(3).Row
If Son < 4 Then Son = 4

For i = 4 To Son

Bunları internette aradım fakat pek bi anlatım göremedim.
Eğer vaktinizi almazsa bunların ne olduğu ve ne işe yaradığı hakkında kısa bilgiye ihtiyacım var, şimdiden teşekkürler.. :)
 
Katılım
2 Mart 2018
Mesajlar
101
Excel Vers. ve Dili
excel 2016
Necet Bey Merhaba,

1. ve 2. olarak yazdığım maddeler zaten makroda varmış, makro bu şekilde çalışıyormuş yeni anlayabildim :)

Makroyu daha iyi anlabilmek adına aşağıdaki kodların tam olarak ne iş yaptığını öğrenmeye çalışıyorum.

İlk olarak DİM tam olarak nasıl çalışır? anladığım kadarıyla başa yazılanın ne olduğunu tanımlıyor

Bunun hakkında hiçbir fikrim yok :(
For j = 5 To ShB.Cells(Rows.Count, "A").End(3).Row Step 14
If ShB.Cells(j, "F") = 0 Then Exit For
Next j

Bunun hakkındada hiçbir fikrim yok :(
For Each Syf In ActiveWindow.SelectedSheets

Son = Syf.Cells(Rows.Count, "B").End(3).Row
If Son < 4 Then Son = 4

For i = 4 To Son

Bunları internette aradım fakat pek bi anlatım göremedim.
Eğer vaktinizi almazsa bunların ne olduğu ve ne işe yaradığı hakkında kısa bilgiye ihtiyacım var, şimdiden teşekkürler.. :)
hocam biraz araştırma yapmalısınız. Öncelikle bence ilk adımdan başlarsanız ilerleyen zamanlarda yazılanları daha iyi anlamaya başlarsınız :) örnek olarak bu konu güzel bir başlangıç bence :)https://www.excel.web.tr/threads/kod-yazmayi-oegreniyorum.4228/
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhaba karakrall

Ekli dosya için teşekkür ederim çalışacağım :)
Ama yinede eğer siz biliyorsanız attığım kodları bana açıklarsanız çok sevinirim. Bu dosyayı çalıştığım yerde kullanıcaz ve hakim olmak istiyorum :) şimdiden teşekkürler
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Necdet Bey Merhaba

Yine sizi rahatsız ediyorum kusura bakmayın,
Verdiğiniz kodlarda aktif olduğum shetteki bilgileri kopyalıyor, oysa ben sadece aktif olduğum sheetin içersinde benim mause ile seçtiğim alanın kopyalanıp bloke kartına yapışmasını istiyorum. Verdiğiniz kodları nasıl revize edebilirim.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
Necdet Bey Merhaba

Yine sizi rahatsız ediyorum kusura bakmayın,
Verdiğiniz kodlarda aktif olduğum shetteki bilgileri kopyalıyor, oysa ben sadece aktif olduğum sheetin içersinde benim mause ile seçtiğim alanın kopyalanıp bloke kartına yapışmasını istiyorum. Verdiğiniz kodları nasıl revize edebilirim.
1. Sadece aktif olduğunuz sayfadaki verileri aktarmıyor, eğer bir kaç sayfa seçip kodları çalıştırıyorsanız tüm sayfalardaki bilgileri aktarır.
2. Neden illa seçim yapıp aktarayım diyorsunuz, sonuçta girilen tüm bilgilerin aktarılması söz konusu değil mi?
3. Konuyu tam bilmediğim için sayfalarda eksik verileri de aktarıyor, bunun kontrolünü yapmadım. kontrol yapılırsa (ki koda bu kontrolü eklemek gerek) bu tür yarım bilgiler aktarılmaz.

Ben sizi seçim derdinden kurtardığımı düşünüyorum siz illa seçim yapıp aktarayım diyorsunuz. Neden otomatik aktarımı düşünmüyorsunuz?

Diyelim ki aynı verileri seçip seçip aktardınız diyelim, bu işlem doğru mu olur?

Ayrıca Q sütunundaki değeri silerseniz o kayıt yeniden aktarılır.

Neler düşünmüşüm ama bir türlü beğendiremedik size :)
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhaba Necdet bey,
Size ne kadar teşekkür etsem az yaptıklarınızı tabikide çok bependim ama yaptığımız iş gereği o listede sadece seçtiğimz alanın kopyalanması gerekli 🙂. Bu excel tamamen örnek bir excek ve 4 sheetede farklı bilgiler giriliyor.


Neden seçtiğim alan aktarıldın diye sorarsanız önceden biz sheet 1,2,3,4’e bilgileri doldurup sonrasında güncel doldurduğumuz bilgileri bloke kartına fiziki olarak yani kalem ve kağıt olacak şekilde dolduruyorduk. Daha sonra ilgili yere götürüp bantlıyorduk. Bu işlem tamamiyle değişken, bir gün sheet 1,2,3,4’e 10larca yeni bilgi girerken bazı günler girmiyoruz. Bu sebepten dolayı bloke kartına sadece güncel girdiğimiz bilgilerin aktarımı yapılması gerekiyor, çünkü ben o bloke kartını çıktı alıp ilgili yere bantlıycam🙂. Her seferinde tüm bilgileri karta aktarırsa çıktı alırken zorluk yaşayabiliriz.

Yaptığınız yardımlara ne kadar teşekkür etsem az ve size saygım sonsuz ama benim ihtiyacımdan çok daha fazlasını düşünmüşsünüz buda sizin ne kadar iyi birisi olduğunuzu gösterir 😊😊.

Çalıştığım yerden kaynaklı artık herşeyi dijitalleştirme yolundayız ve bende bu dijitalleşmenin daha çok başındayım ve bu makroda benim boyunu oldukça aşan bir makro, ben şuan daha çok başlardayım ama böyle bir iş bana yüklenmiş durumda, sizi sürekli rahatsız etmemin sebebide aslında bu.

Korhan bey’in vermiş olduğu kodu entegre etmeye çalışıyorum ama sizin kodunuzu sildiğimde hata alıyorum ve Korhan beyin verdiği kodu entegre edemiyorum. Bu işin ehli olarak bu konudada bi yardımınızı rice etsem 🙏🏻. Eğer vakit ayırırda bakarsanız çok teşekkür ederim, bakamazsanızda canınız sağolsun
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,181
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Benim verdiğim kod zaten sizin ihtiyacınızı karşılıyor.

Q sütunu boş olan satırları aktarıyor.
Siz Q sütununu doldurun ve aktarılmasını istediğiniz hücreleri boş bırakın, sonra makroyu çalıştırın.
Hatta tüm sayfalarda aktarılmasını istediğiniz satırların Q sütununu silin ve tüm sayfaları seçtikten sonra Makroyu çalıştırın.
tüm sayfalarda aktarılması gereken satırlar aktarılacaktır.

Bu daha pratik değil mi?
Deneyiniz sonra konuşalım.
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Merhaba Necdet Bey,

Denedim oluyor ama malesef daha pratik değil, bu exceli birtek ben değil tüm ekip kullanıcak, ben tek başıma kullansam eğer Q sütunu ile oynayabilirim ama tüm ekip kurcalarsa aktarılacaklar karışabilir. Bizim tek ihtiyacımız mause ile belirttiğimiz alanın sheet5e aktarılması
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,327
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek olarak HDEV4 çoklu satır seçerek veri aktarımı yapacak mısınız?

Birde aktardıktan sonra direkt yazıcıya mı gönderilecek? Yoksa yazdırma işlemini manuel mi yapacaksınız?
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Aynen öyle Korhan Bey, sadece benim seçtiğim satırların aktarılmasını istiyorum, aktarılacak aralıkta dosyanın içersinde belirtilmiş durumda. Yazıcıya gönderme işlemi manuel olabilir onun ekstra makrolanmasına hiç gerek yok. Çok teşekkür ediyorum
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,327
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Peki aktarma işlemi her seferinde eski aktarılanlar silinip en baştan mı yapılacak?
 
Katılım
18 Kasım 2020
Mesajlar
67
Excel Vers. ve Dili
İngilizce / office 2016
Eğer eski aktarılanların silinmesi zor bir işlemse biz manuelde sileriz, ama tabi silinebiliyorsa süper olur
 
Üst