Çözüldü Makro İle Sayfalar Arası Veri Taşımak

merakli

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Örnek dosya ve görselle açıkmalamaya çalıştığım şekilde makro kullanarak en mantıklı ve fonksiyonel olarak nasıl veri taşıyabiliriz?

soru 1.webp

soru 2.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Sayın @merakli
Dosyanız formül uygulamaya çok müsait :)) Yine de makro ile çözümü eklemiş olayım. ,
1. isteğiniz kodları eklendi. İsmi değiştirince tüm denemelerin sayfasından verileri çekebiliyor.

2. isteğiniz de ise size tavsiyem bir şablon sayfası oluşturmanız. Her yeni deneme eklemek istediğiniz de o sayfadan otomatik çoğaltma yapabilirsiniz. Şablon sayfası olmadığı için bir kodlama yapmadım. Aynı şekilde özet tabloyu sayfanın başına alırsanız sona ekleme yaparken daha kolay şekilde bir ekleme yaparsınız.

Son olarak da isim karşılaştırmaları pek doğru sonuç vermeyebilir. Zira aynı isim ve soyisme sahip kişilerde sorun yaşayacaksınız. Bunun yerine öğrenci numarası yada tc kimlik no gibi benzersiz değerler ile iş yapmanızı öneririm.

Kolay gelsin.
 

Ekli dosyalar

Teşekkür ederim @cakarem

Dosyanız formül uygulamaya çok müsait. Yine de makro ile çözümü eklemiş olayım. ,
Formül ile şunun için uygulamak istemedim.
Bu sayfa sayısı 100 e kadar çıkabilir. Bu durumda formüller sayfayı hantallaştırabilir düşüncesiyle ve makromu geliştirmek amacıyla sormuştum.
Formül ile kafamdaki yapı Liste sayfasındaki en soldaki sıra numarası aynı zamanda deneme numarası yerine geçiyor.
Bu numarayı - deneme adı alanı dolu ise - satır() ile sıralatacaktım.
Sonrasında Dolaylı formülüyle bu sayıyı yani deneme numarası ile sayfa numarasını eşleştirip öğrenci numarasına göre indis ya da kaydır kullanarak o satırlardaki bilgileri almaktı...

Her yeni deneme eklemek istediğiniz de o sayfadan otomatik çoğaltma yapabilirsiniz. Şablon sayfası olmadığı için bir kodlama yapmadım.
Bunu düşünmemiştim. Önceden de hiç denemedim işlevsellik katabilir. Küçük bir dosya ile göstermeniz mümkün mü?

Aynı şekilde özet tabloyu sayfanın başına alırsanız sona ekleme yaparken daha kolay şekilde bir ekleme yaparsınız.
Özet tablodan kastınız listenin altındaki ortalamalar sanırım. Bu tablonun sayfada çıkmasını istemiyorum bunun için alta almıştım.
Bununla ne yapıyorum ya da yapacağım. Okul ortalamasına göre üstteki öğrencilere ait ortalamayı Koşullu Biçimlendirme ile altında ise kırmızı üstünde ise yeşil renkle renklendireceğim inş.

İsim karşılaştırmaları pek doğru sonuç vermeyebilir. Zira aynı isim ve soyisme sahip kişilerde sorun yaşayacaksınız. Bunun yerine öğrenci numarası yada tc kimlik no gibi benzersiz değerler ile iş yapmanızı öneririm.

Evet biraz programcılık geçmişim olduğu için uniq değer kullanılması konusunu biliyorum. Ancak burada açılır menüden isim değilde numara seçersem görünürlük/bilinirlik olarak sorun yaşayabileceğimi düşünerek isme yöneldim. Web kodlamalarındak select menü gibi bir işlev olsa yani görünen kısımda Ad Soyad varken value değeri olarak id gönderebilseydik tavsiye ettiğiniz yöntemi kullanacaktım.
Ancak excelde böyle bir yapı yok sanki ya da ben bilmiyorum.


Bunun dışında öğrenciler sayfasındaki diğer bir soru ile yani öğrenci isimlerini sayfalardaki alanlara "Listeyi yerleştir" düğmesine basarak nasıl dağıtabiliriz?

Örneğin oradaki isimler uydurma öğrenci isimleri... gerçek isimleri öğrenciler sayfasına ekleyip "Listeyi yerleştir" düğmesine tıklayarak makroyla tüm sayfalara bu isimleri geçirmek istiyorum.

Burada da formül kullanarak yapmayı düşündüm ama öğrenci bilgilerini - sayfa başlıklarındaki deneme bilgilerini taşıdığım gibi - tek tek ="Deneme "&Liste!$A$7&" ("&Liste!$B$7&")" şeklinde taşımak istemedim.
Başka bir işlevsel taşıma şeklide bilmiyorum gibi
 
Moderatörün son düzenlenenleri:
Bu sayfa sayısı 100 e kadar çıkabilir. Bu durumda formüller sayfayı hantallaştırabilir düşüncesiyle ve makromu geliştirmek amacıyla sormuştum.
Doğru düşünmüşsünüz. Kod yazmak en temizi. ( Zaten kodla çözmüştük)
Önceden de hiç denemedim işlevsellik katabilir. Küçük bir dosya ile göstermeniz mümkün mü?
Yani göstermekten ziyade şöyle ifade etmiş olayım. Örnek 1 nolu denemenin içeriğini boşaltarak en başa alıp sablon diye kaydedin. Deneme ismi sayısını artırdığınız otomatik isim listesini atar ve deneme sayfasını açtırabilirsiniz.

Özet tablodan kastınız listenin altındaki ortalamalar sanırım. Bu tablonun sayfada çıkmasını istemiyorum bunun için alta almıştım.
Bununla ne yapıyorum ya da yapacağım. Okul ortalamasına göre üstteki öğrencilere ait ortalamayı Koşullu Biçimlendirme ile altında ise kırmızı üstünde ise yeşil renkle renklendireceğim inş.
Evet. Alt kısım. Ortalamalar. Sayfada çıkmasını istemiyorsanız yazdırma alanı belirleyerek de yapabilirsiniz. Aynı şekilde diğer işlemleri de.

Ancak excelde böyle bir yapı yok sanki ya da ben bilmiyorum.
Yani bir şekilde çözülür düşüncesindeyim. Sadece farklı şekilde bakmak gerek.

Müsait olduğumda deneme yapar paylaşırım.
 
Doğru düşünmüşsünüz. Kod yazmak en temizi. ( Zaten kodla çözmüştük)

Yani göstermekten ziyade şöyle ifade etmiş olayım. Örnek 1 nolu denemenin içeriğini boşaltarak en başa alıp sablon diye kaydedin. Deneme ismi sayısını artırdığınız otomatik isim listesini atar ve deneme sayfasını açtırabilirsiniz.


Evet. Alt kısım. Ortalamalar. Sayfada çıkmasını istemiyorsanız yazdırma alanı belirleyerek de yapabilirsiniz. Aynı şekilde diğer işlemleri de.


Yani bir şekilde çözülür düşüncesindeyim. Sadece farklı şekilde bakmak gerek.

Müsait olduğumda deneme yapar paylaşırım.
Teşekkür ederim
 
@merakli
Daha evvel konuyu görmüştüm ama, yazışmalar olunca çözüldü diye düşünmüştüm.
Liste sayfasının kod bölümünde mevcut Worksheet_Change kodunu aşağıdakiyle değiştirin.

Yeni sayfalar eklendiğinde, Liste sayfası A sütununda eklenen sayfanın adı yazılmışsa,
Z6 hücresinde F2+ENTER veya yeni bir isim seçildiğinde işlem gerçekleşir.
Sayfa eklenmiş ama listeye bu sayfanın adı (test numarası) yazılmamışsa o sayfadaki sonuçlar aktarılmaz.


VBA:
You must log in to view content
(16 satır)
 
@merakli
VBA:
You must log in to view content
(1 satır)
@Ömer BARAN Bey,
Bu kod üzerinde değişiklik yaparak başka bir işlem gerçekleştirmeye çalışıyorum.
Siz Liste sayfasının kod bölümünde yazarak Liste sayfasında işlem yaptırıyorsunuz.

Ben şuan bunu Module içinden Liste sayfasındaki [A:A] sütunundaki en büyük dolu değere ulaşmak istiyorum bu durumda WorksheetFunction.Max([A:A]) kodunda nasıl bir değişiklik yapmam gerekiyor.
 
Konuyu başlatan
Site Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
10
Üst