Çözüldü Sütundaki Değere Göre Satır Satır Kopyalama

  • Konuyu başlatan Konuyu başlatan perande
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

perande

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba
Excelden x1, x2, x3, x4, x5, x6, x7 (Bu 20 yada 30 'a da gidebilir) sütunlarında yer alan sayısal değerler kadar alt alta bütün satırları kopyalatıp, yanlarına (son satıra), kopyalanan sütunun adını yazdıracak şekilde bir mucize bekleyebilir miyiz.

Örnek dosya ektedir.

Teşekkürler.
 

Ekli dosyalar

Çözüm
Ekli dosyayı inceleyiniz.

1568417509608.webp



Not: 1. Satırdaki başlıklara bakarak X ile başlayan sütunların altındaki değerleri okuyor. Diğer sütunlara yazılacak değerleri okumayacaktır. Yeni eklemek isterseniz X7 den sonra sütun ekleyerek X ile başlayan bir isim vermeniz yeterlidir.

Not: Dosya vba kodlama içerdiği için makro çalışmasına izin vermeniz gerekmektedir.

İlgili Kod yapısı:
VBA:
You must log in to view content
(7 satır)
Sütun sayısı neye göre belirlenecek?
1568410544973.webp

O ve sütunundaki değer dikkate alınacak mı? Yada sadace x ile isimlendirilen sütunlar mı? Ve bu sütunalarda ki toplam değer kadar mı satır eklenecek?
 
Moderatörün son düzenlenenleri:
Ekli dosyayı inceleyiniz.

1568417509608.webp



Not: 1. Satırdaki başlıklara bakarak X ile başlayan sütunların altındaki değerleri okuyor. Diğer sütunlara yazılacak değerleri okumayacaktır. Yeni eklemek isterseniz X7 den sonra sütun ekleyerek X ile başlayan bir isim vermeniz yeterlidir.

Not: Dosya vba kodlama içerdiği için makro çalışmasına izin vermeniz gerekmektedir.

İlgili Kod yapısı:
VBA:
You must log in to view content
(34 satır)
 
Çözüm
Üstadım kod cillop gibi çalışıyor. Elinize sağlık.
Bu kopyalamayı hedeflenen sayfasında yapması için ne yapabiliriz. Sayfa1'den alıp işlemi hedeflenen sayfasında yapacak şekilde.
Sütun değişkenlerinde "x" e göre işlem yapıyor. Burada bir sabitimiz olmadığında nasıl bir yol izleyebiliriz.(sütunlar a b c d e vb. değişken olduğunda.)
 
Burada asıl yapılmak istenilen ne? Hedef sayfa her zaman belli olmadığı için hangi şartlar altına çalışacağını excele söylememiz gerekiyor. Bu kriteri ifade ederseniz o zaman bir yol bulmaya çalışırız.
Aynı şekilde excele hangi sütunlardan değer çekmesi gerektiği ifade etmemiz gerekiyor bir şekilde. Bunun kriteri ne olacak. Yada hangi sütunlardan veri çekmeyecek? Bunlar net ifade edilmedikçe algoritması istenilen düzeyde hazırlanması zor olur.
 
Sayın Cakarem, ilk yazdığımdan girdiden bağımsız, merak ettiğimden sormuştum.
20 yada 30 olabilire istinaden "x"'e göre yapılıyor,H ile N arasında dediğimizde ne yazmamız lazım.(Bu öğrenme mahiyetinde sorulan bir sorudur, teşekkürlerimi sunarım. )
Sayfa1 veri sayfası, hedeflenen sayfa ise yazdırma sayfası olarak kurguladığımızda nasıl yapabiliriz.(Çok önemli değil, kurcalarsam bulabilirim sanırsam. Teşekkürler.)
 
sutun = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Bu kısımda son dolu hücre bulunmaktadır.
veri = Array("") For i = 1 To sutun If .Cells(1, i) Like "X" & "*" Then veri(UBound(veri)) = veri(UBound(veri)) & i ReDim Preserve veri(UBound(veri) + 1) End If Next i
Bu kısımda ise sütunların 1. ksımdaki değerlere bakılarak hangisi X ile başlıyor onu kontrol edip bir diziye almaktadır.

Eğer dersiniz ki benim sütunlarım sabit, alacağım yerler belli, o zaman yukarıda ki açıklama bulunan kod kısımlarını siliniz.
For sat = 2 To .Cells(.Rows.Count, 1).End(3).Row For sut = LBound(veri) To UBound(veri) - 1 If .Cells(sat + eklenen, sutun) = "" Then .
Burada For sut ile başlayan satır kısmını aşağıdaki şekilde değiştiriniz
For sut= 1 to 3
(1 ile 1. sütun 3 ile 3. sütun ifade edilmektedir. Buna göre kendi değerlerinizi verebilirsiniz. )
Tabi bundan sonraki veri(sut) şeklinde olan kısımlarda değişmeli. Anlayacağınız yazılacak algoritma belirlemiş olacağınız durumlara göre farklılık göstermektedir. Excel üstadlarım sonuca farklı yollar ile ulaşabilirler.

Burada asıl önemli olan kriterleriniz ve almak istediğiniz sonuç.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst