Sayfadan Diğer Sayfaya Verileri İşleyerek Taşımak

Çözüldü Sayfadan Diğer Sayfaya Verileri İşleyerek Taşımak

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi

merakli

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,
@Ömer BARAN hocamın katkısıyla örnek dosyadaki hafta bütünlüğünü koruyarak ve ayın günlerine göre şekil alan takvimi oluşturmuştuk.
Şimdi ise hem makro öğrenmek hem de çalışan bir örnek üzerinden ilerlemek amaçlı bir proje hazırlıyorum.
Okulumuzda kullanmak üzere ekders çizelgesi

Burada yapmaya çalıştığımız ise Öğretmenler sayfasındaki Aktif etiketli öğretmenleri Çizelge Sayfasına taşımak. Aktif özelliği pasif yapıldığında Çizelge sayfasından da kalmasını sağlamak...

Bu taşıma işleminde Öğretmenin Mezuniyet durumuna göre Tür alanını belirlemek(Yüksek Lisans ve Doktorası varsa 110 değeri yoksa 101 değeri vermek)

Ekli dosyayı görüntüle Aradaki Rakamları Alma.xlsx
 
Moderatörün son düzenlenenleri:
Sayın @merakli .

İşlem neticede makro ile yapılacak.İşlemin neyle tetikleneceği size kalmış bir şey.

AKTARMA işlemi öncesinde, ilk işlemin Çizelge sayfasında mevcut verilerin SİLİNMESİ olduğunu unutmayın.
Bence en iyisi düğme kullanmak, böylece kontrol tam olarak elinizde olur.

Benim cevabım, belgenizde benim adımı kullandığınız sayfaya yönelik değişiklik ile ilgilidir.
Anladığım kadarıyla belgenin nihai sayfa yapısı (başlık alanlarının satır/sütun olarak konumları) Çizelge sayfasındaki gibi olacak.
Benim adımı verdiğiniz sayfanın yapısını Çizelge sayfasına göre düzenledim ve mevcut kodu da buna göre güncelledim.
 

Ekli dosyalar

Sayın @merakli .

İşlem neticede makro ile yapılacak.İşlemin neyle tetikleneceği size kalmış bir şey.

AKTARMA işlemi öncesinde, ilk işlemin Çizelge sayfasında mevcut verilerin SİLİNMESİ olduğunu unutmayın.
Bence en iyisi düğme kullanmak, böylece kontrol tam olarak elinizde olur.

Benim cevabım, belgenizde benim adımı kullandığınız sayfaya yönelik değişiklik ile ilgilidir.
Anladığım kadarıyla belgenin nihai sayfa yapısı (başlık alanlarının satır/sütun olarak konumları) Çizelge sayfasındaki gibi olacak.
Benim adımı verdiğiniz sayfanın yapısını Çizelge sayfasına göre düzenledim ve mevcut kodu da buna göre güncelledim.
Teşekkür ederim Ömer bey
Öğretmenler sayfasındaki B:B sütunundan öğretmenleri pasif yapıyorum ama herhangi bir değişiklik olmuyor.
Ben mi anlayamadım

sondaki 2 ismi öğretmen sayfasından pasif yapmama rağmen çizelgede görünüyor.

Bunun dışında birde sizin yaptığınız sayfadaki en sondaki haftanın tüm günlerinde gri renkli görünüyor bunu düzeltebilir miyiz
 

Ekli dosyalar

  • Screenshot_7.webp
    Screenshot_7.webp
    38.6 KB · Görüntüleme: 1
  • Screenshot_8.webp
    Screenshot_8.webp
    20.6 KB · Görüntüleme: 1
Önceki mesajda, cevabımın içeriğinin aktarma ile ilgili olmadığını, düğme kullanmanın daha mantıklı olduğnu belirtmiş ve
sadece dosyada mevcut takvim/hafta göster/gizle işleminin sayfa yapısına göre güncellenmesiyle ilgili olduğunu yazmıştım.

Zaten eklediğim belgede bir DÜĞME de yok.

.
 
Önceki mesajda, cevabımın içeriğinin aktarma ile ilgili olmadığını, düğme kullanmanın daha mantıklı olduğnu belirtmiş ve
sadece dosyada mevcut takvim/hafta göster/gizle işleminin sayfa yapısına göre güncellenmesiyle ilgili olduğunu yazmıştım.

Zaten eklediğim belgede bir DÜĞME de yok.

.
Teşekkürler. Ben aktarma olayına motive olunca aktarma ile ilgili kodlamanın yanında önceki dosyadaki kodlarda da güncelleme yaptığınız hissine kapılarak yazmıştırm.
Son haftanın cumartesi pazar dışındaki günlerin renkli olması konusunda bir çözüm öneriniz olur mu?
 
Sayın @serkoloji AKTARMA ve 101, 110 yazma konusunda cevap vermiş.

Benim AKTARMA kod cevabım da alternatif olsun artık.
Kodu, verilerin yazılacağı sayfaya bir düğme ekleyip, bu düğmeyle ilişkilendirerek çalıştırırsınız.
Dikkat: Kodda verilerin "Ömer BARAN Hocamın Çalışması" isimli sayfaya yazdırılmasını öngördüm.
Zira sütun göster/gizle, takvimi o sayfa için düzenlemiştim.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(21 satır)

Son cevapta belirttiğiniz renklendirmeyi, önceki cevabıma eklediğim belgede, düzenlediğim sayfada ilgili
sütunlardaki KOŞULLU BİÇİMLENDİRMEyi iptal edip, elle yapıq, foruma ekleyin ki nihai sonucun nasıl görüneceğini anlayabileyim.

.
 
Sayın @serkoloji AKTARMA ve 101, 110 yazma konusunda cevap vermiş.

Benim AKTARMA kod cevabım da alternatif olsun artık.
Kodu, verilerin yazılacağı sayfaya bir düğme ekleyip, bu düğmeyle ilişkilendirerek çalıştırırsınız.
Dikkat: Kodda verilerin "Ömer BARAN Hocamın Çalışması" isimli sayfaya yazdırılmasını öngördüm.
Zira sütun göster/gizle, takvimi o sayfa için düzenlemiştim.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(21 satır)

Son cevapta belirttiğiniz renklendirmeyi, önceki cevabıma eklediğim belgede, düzenlediğim sayfada ilgili
sütunlardaki KOŞULLU BİÇİMLENDİRMEyi iptal edip, elle yapıq, foruma ekleyin ki nihai sonucun nasıl görüneceğini anlayabileyim.

.
Teşekkür ederim.
Elinize sağlık
Sizin kodlar saniye sürmeden aktarıyor 👏
 
Moderatörün son düzenlenenleri:
Estağfurullah.

Dikkat ettiyseniz, aktarma öncesinde, varsa sayfadaki eski verilerin silinmesi işleminde E sütunu kapsam dışı.
E sütunu için ne işlem yapılacağını açıklamadığınız için o şekilde işlem öngörmüştüm.

Şayet E sütununundaki verilerin de silinip, aktarma satır sayısına göre hücrelere " + " yazılmasını isterseniz;
-- Koddaki c.Range("A6 : D" & cson & ", F6:F" & cson & ", G6:G" & cson).ClearContents kısmını,
c.Range("A6:G" & cson).ClearContents şeklinde değiştirip,
-- If XD.Offset(0, 2) = "Yüks..... satırıyla, ardından gelen Next.... satırının arasına
c.Cells(cs + s, 5) = "+": c.Cells(cs + s, 5).Font.Size = 18 şeklinde bir satır ekleyin.

İşlem hızının anahtarı aşağıdaki iki satırda.
Veri yığını büyük olmadığından; bu satırları Sayın @serkoloji 'nin verdiği kodlara da eklerseniz o da hızlı çalışır.

Sub ....()
Application.EnableEvents = False: Application.Calculation = xlCalculationManual
................Diğer kodllar.......
Application.EnableEvents = True: Application.Calculation = xlCalculationAutomatic
End Sub

.
 
Ömer bey öğretmen isimlerini pasif sonra aktif yaptığımda sağdaki toplama alanı ve + karakteri siliniyor buna göre adapte etme şansınız var mı kodları

Birde en önemli diğer mesele sağdaki toplamları açıklama kutusunda belirttiğim şekilde yapabilir miyiz?
Bu sistemin en önemli noktası...
 

Ekli dosyalar

Estağfurullah.

Dikkat ettiyseniz, aktarma öncesinde, varsa sayfadaki eski verilerin silinmesi işleminde E sütunu kapsam dışı.
E sütunu için ne işlem yapılacağını açıklamadığınız için o şekilde işlem öngörmüştüm.

Şayet E sütununundaki verilerin de silinip, aktarma satır sayısına göre hücrelere " + " yazılmasını isterseniz;
-- Koddaki c.Range("A6 : D" & cson & ", F6:F" & cson & ", G6:G" & cson).ClearContents kısmını,
c.Range("A6:G" & cson).ClearContents şeklinde değiştirip,
-- If XD.Offset(0, 2) = "Yüks..... satırıyla, ardından gelen Next.... satırının arasına
c.Cells(cs + s, 5) = "+": c.Cells(cs + s, 5).Font.Size = 18 şeklinde bir satır ekleyin.

İşlem hızının anahtarı aşağıdaki iki satırda.
Veri yığını büyük olmadığından; bu satırları Sayın @serkoloji 'nin verdiği kodlara da eklerseniz o da hızlı çalışır.

Sub ....()
Application.EnableEvents = False: Application.Calculation = xlCalculationManual
................Diğer kodllar.......
Application.EnableEvents = True: Application.Calculation = xlCalculationAutomatic
End Sub

.

E sütununa tıkladığımda Veri sayfası C sütunundaki liste açılacak user form açılır liste menüde oradan seçilen veri TÜR'ü o öğretmenin alt satırı olarak eklenecek...
Elbette onun önünde + karateri değilde - karakteri olacak ona tıklandığında o satırı kaldıracak
TÜR numarası neyse sol taraftaki alanda o tür numaralarının kesiştiği alanda toplamını alacak...



bununla ilgili bir örnek vardı siz vermiştiniz adresini
Bu örnektekinin birebir aynı işlem
Screenshot_5.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Sayfadan sayfaya veri aktarma konusunun çözüldü olarak bu haliyle kalmasında yarar var.

Bu konu sayfasından devam edilirse, olay forum sorusu olmaktan çıkıp, bir adet belgedeki tüm isteklerin karşılanması anlamına gelir ve bunun da diğer üyelerimize herhangi bir faydası olmayacağı gibi site içi arama veya arama motorlarında yapılan aramalara bir katkısı olmaz.

Bence bu + / - olayı için yeni bir konu (bu konu sayfasındaki çözümün uygulandığı belgenizin son halini ekleyerek) açın.
Konu için aternatif çözümler üzerende de durulabilir.

.
 
Sayfadan sayfaya veri aktarma konusunun çözüldü olarak bu haliyle kalmasında yarar var.

Bu konu sayfasından devam edilirse, olay forum sorusu olmaktan çıkıp, bir adet belgedeki tüm isteklerin karşılanması anlamına gelir ve bunun da diğer üyelerimize herhangi bir faydası olmayacağı gibi site içi arama veya arama motorlarında yapılan aramalara bir katkısı olmaz.

Bence bu + / - olayı için yeni bir konu (bu konu sayfasındaki çözümün uygulandığı belgenizin son halini ekleyerek) açın.
Konu için aternatif çözümler üzerende de durulabilir.

.
Teşekkür ederim dediğiniz gibi yeni konuya taşıyayım o kısmı
Ancak taşıma kısmında üstte belirttiğim bir çıkmaz var

yani verileri taşıdık sonra öğretmenlerden bir ya da bir kaçını aktiften pasife (Öğretmen sayfası B sütununda) ya da pasiften aktife çevirdiğimizde yeniden Taşı dediğimizde sağdaki toplama alanı siliniyor ya da + karakteri oluşmuyor
 

Ekli dosyalar

10 no'lu cevabımda belirttiğim değişiklikleri yapmamışsınız. Önce belirttiğim kod değişikliklerini yapın.

HESAPLAMA ALANI sütunlarındaki formülün zaten değişmesi gerekiyordu.
Çünkü, veri alanınını başlangıç sütunu değişti. Artık veri alanı H sütunundan başlıyor.

Üstteki alandan 2021 / Ağustos seçiliyken;
-- toplanacak alan, H-AW arası ise birinci formülü,
-- toplanacak alan, seçilen aya ait gün sütunları ise ikinci formülü
AX5 hücresine uygulayın, sonra AX5 hücresine kopyalayıp sağa ve aşağı doğru formül alanına (GENEL TOPLAM sütunu hariç)
FORMÜLLERİ YAPIŞTIR şeklinde yapıştırın.
Artık yıl/ay seçimini değiştirip veri aktarma işini tekrarlayarak kontrol yapabilirsiniz,

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(2 satır)
 
10 no'lu cevabımda belirttiğim değişiklikleri yapmamışsınız. Önce belirttiğim kod değişikliklerini yapın.

HESAPLAMA ALANI sütunlarındaki formülün zaten değişmesi gerekiyordu.
Çünkü, veri alanınını başlangıç sütunu değişti. Artık veri alanı H sütunundan başlıyor.

Üstteki alandan 2021 / Ağustos seçiliyken;
-- toplanacak alan, H-AW arası ise birinci formülü,
-- toplanacak alan, seçilen aya ait gün sütunları ise ikinci formülü
AX5 hücresine uygulayın, sonra AX5 hücresine kopyalayıp sağa ve aşağı doğru formül alanına (GENEL TOPLAM sütunu hariç)
FORMÜLLERİ YAPIŞTIR şeklinde yapıştırın.
Artık yıl/ay seçimini değiştirip veri aktarma işini tekrarlayarak kontrol yapabilirsiniz,

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(2 satır)

Teşekkürler.
Dediklerinizi uyguladım ancak sağdaki toplama kısmı ay değişince formüller bozuluyor
 

Ekli dosyalar

Üst