Çözüldü Makro ile Sayfalar Arası Veri Taşıma İşlemi

merakli

Site Üyesi
Merhaba
@Selman beyin kodlarıyla Demo Öğrenci Listesi google sheets sayfasından verileri Rapor!AQ3 Veri Doğrulama Listesinden ListeData sayfasına çektim.

Şimdi
- Sınıf verisini örneğin 6/A şeklindeyken sadece soldan 1. yani 6 rakamını almak (sinif = Left(sinif_sube, 1))
- Sınıf + Numara + Ad + Soyad verilerini bir boşlukla birleştirip ( sinif_numara_ad_soyad = sinif & " " & numara & " " & ad_soyad)
Veri!A ve Veri!B sütunlarına kaydetmek sonrasında ListeData sayfasını silmek istiyorum

For
Next
Döngüsü içindekileri @Ömer BARAN Beyin diğer sorularıma verdiği cevaplardaki kodlardan oluşturup google e-tablodan gelen verileri birleştirdim.

Şimdi bunları Veri!A ve Veri!B sütunlarına nasıl taşıyabilirim?



VBA:
You must log in to view content
(43 satır)

soru.webp
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
@merakli

Kodun son bölümünü şöyle değiştirin.
ListeData ve Veri sayfalarında, verilerin hep 1'inci satırdan başlayacağı varsayıldı.

VBA:
You must log in to view content
(16 satır)

Teşekkür ederim @Ömer BARAN Bey,

Burada dediğiniz gibi ListeData ve Veri sayfalarında, veriler 1'inci satırdan başlıyordu.

Bunu uzun süredir üzerinde çalıştığımız diğer excel dosyasında Liste sayfasında da kullanacağım.
Orada B9 ve C9 dan başlayarak B ve C sütunlarına ekleyeceğim.
Bu durumda nasıl bir değişiklik ya da ekleme yapmamız lazım?
 
For ls = 1 To ... kısmındaki 1 sayısı ListeData sayfasındaki verilerin başlangıç satır numarası (burası hep 1 sanırım).
Not: Cells(satır no, sütün no) diye düşünün.

Diğer sayfaya veriler 9'uncu satırdan itibaren, B ve C sütununa yazılmak isteniyorsa;
Kodda ls değişkeni 1'den başlıyor, hedef ise 9'uncu satır, yani ls+8 olarak düşünülebilir

Eşitliğin solundaki yani sonucun yazılacağı sayfadaki sütun numarası B ve C için 2 ve 3.
Eşitliğin sağındaki yani verinin okunacağı sayfadaki sütun numarası ise,
sınıf için A sütunu (sütun no 1), öğrenci numarası B sütunu (sütun no 2), adı C sütunu (sütun no 3) ve soyadı D sütunu (sütun no 4)

Bu durumda (Birkaç satır üstteki kod satırlarında LD değişkeni ListeData sayfası olarak, V değişkeni ise Veri sayfası olarak tanımlanmıştı);
V.Cells(ls+8, 2) = Split(LD.Cells(ls, 1), "/")(0)
V.Cells(ls+8, 3) = LD.Cells(ls, 2) & " " & LD.Cells(ls, 3) & " " & LD.Cells(ls, 4)
diye yazılabilir.
Bence asıl belgenizde değil, birkaç satır sütunlu örnek bir belge hazırlayıp onun üzerinde denemeler yaparsanız kolayca öğrenilebilir.
 
For ls = 1 To ... kısmındaki 1 sayısı ListeData sayfasındaki verilerin başlangıç satır numarası (burası hep 1 sanırım).
Not: Cells(satır no, sütün no) diye düşünün.

Diğer sayfaya veriler 9'uncu satırdan itibaren, B ve C sütununa yazılmak isteniyorsa;
Kodda ls değişkeni 1'den başlıyor, hedef ise 9'uncu satır, yani ls+8 olarak düşünülebilir

Eşitliğin solundaki yani sonucun yazılacağı sayfadaki sütun numarası B ve C için 2 ve 3.
Eşitliğin sağındaki yani verinin okunacağı sayfadaki sütun numarası ise,
sınıf için A sütunu (sütun no 1), öğrenci numarası B sütunu (sütun no 2), adı C sütunu (sütun no 3) ve soyadı D sütunu (sütun no 4)

Bu durumda (Birkaç satır üstteki kod satırlarında LD değişkeni ListeData sayfası olarak, V değişkeni ise Veri sayfası olarak tanımlanmıştı);
V.Cells(ls+8, 2) = Split(LD.Cells(ls, 1), "/")(0)
V.Cells(ls+8, 3) = LD.Cells(ls, 2) & " " & LD.Cells(ls, 3) & " " & LD.Cells(ls, 4)
diye yazılabilir.
Bence asıl belgenizde değil, birkaç satır sütunlu örnek bir belge hazırlayıp onun üzerinde denemeler yaparsanız kolayca öğrenilebilir.
Bilgi ve açıklama için teşekkürler
 
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
4
Üst