satırları sutuna nası gecirebilirim...macroyla...?baska yol?

Katılım
26 Haziran 2006
Mesajlar
9
foruma bi kac gundur bakıyorum... cok guzzzel bi forummus... emek veren herkese oncelikle tesekkur ederim... ben acemi bi excel kullannanı olarak macrolarla ilgilenmeye basladim...

basit bi sey yapmak istiyorum veya bsait olmayabilir...:)

ben sunu yapmak istiyorum...basit bi ornek...
.a .s .d
1 34 24 54
2 35 24 54
3 26 35 35435

ifadesini asagıdaki gibi yapmak istiorum... forumda daha once bilgi varsa link verebilirmisiniz... yoksa da yardimci olursanız cok makbule gececek...tesekkurler...

1 a 34
1 s 24
1 d 54
2 a 35
2 s 24
2 d 54
3 a 26
3 s 35
3 d 354
 
Katılım
1 Haziran 2005
Mesajlar
52
satırı kopyalayın sutuna dönüştüreceğiniz hücreyi tıklayın farenin sağ tuşunu tıkladığınızda özel yapıştır kısmı çıkacaktır bunu işaretleyin açılan formun en altında "işlemi tersine çevirin" kısmını işaretleyin satır sutüna döndü...
Kolay gelsin
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Ya da alternatif olarak, fonksiyonlardan =DEVRİK_DÖNÜŞÜM() de kullanabilirsiniz. Bu fonksiyon ile yapacağınız değişiklikler de geçerli olmuş olur.
 
Katılım
26 Haziran 2006
Mesajlar
9
arkadslar cevaplarınız için sagolun...fakat benım soruma tam yanıt olmamıs...dediginiz seyleri biliyorum ..benim sormak istedigim su...

diyelim ki sayfa1 de verilerim .... verdigim basit ornegi devam ettirelim tum sayfaya... sonra bi dugme koyacam.... ona bastıgımda 2.sayfada istegim gibi olacak...satırlar sutuna donusmus olacak...

dinamik bazı kodlar yazmam gerekiyo galiba... veya transpoze fonksiyonunu iyi bi sekilde kullanmam gerekiyo...

ama nası yapacagımı bi turlu beceremedim...

yardımlarınızı bekliyom..

sagolun
 
Katılım
28 Haziran 2006
Mesajlar
3
sub transpoze
sat=0
sut=0

dongu:
sat=sat+1
sut=0
if cells(sat,sut+1)="" then end
dongu1:
sut =sut+1
p=cells(sat,sut)
if p<>"" then
sheets("sayfa2").select
satir=satir+1
cells(satir,1)=p
sheets("sayfa1").select
else
goto dongu
end if
goto dongu1
end sub

umarım iş görür. test edilmedi
 
Katılım
26 Haziran 2006
Mesajlar
9
feramus' Alıntı:
sub transpoze
sat=0
sut=0

dongu:
sat=sat+1
sut=0
if cells(sat,sut+1)="" then end
dongu1:
sut =sut+1
p=cells(sat,sut)
if p<>"" then
sheets("sayfa2").select
satir=satir+1
cells(satir,1)=p
sheets("sayfa1").select
else
goto dongu
end if
goto dongu1
end sub

umarım iş görür. test edilmedi

feramus arkadsım yardımın ıcın sagol... fakat baska bi sorun var...
en basta verdigim basit ornege bakarsanız mesala 1.musteri a urununden su kadar b urununden sukadar c urununden sukadar almıstır...

listem 1 a 34
1 b 12
1 c 35
2 a 76
2 b 66
2 c 546

bu sekilde devam etcek... 2.sayfada elime 3 sutun gecmeli...ilk 2 sutun ne kadar urun varsa o kadar tekrarlayacak.... burda 3 tane...a,b,c ozaman
ilk sutun 3 defa 1 getirecek... sonra 2 ye gececek ...2.sutundada urunler tekrarlanacak....

ilk gonderdıgınız için tekrar tesekkurler.... bunada bi el atarsanız cok sevinecegım...

elinize saglık
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
[vb:1:cca55dd3c9]Sub aktar()
Set s1 = [Sayfa1]
Set s2 = [Sayfa2]
s2.Cells.ClearContents

s1.Select

For x = 2 To [a65536].End(3).Row
For y = 2 To [IV1].End(xlToLeft).Column
sat = sat + 1
s2.Cells(sat, 1) = s1.Cells(x, 1)
s2.Cells(sat, 2) = s1.Cells(1, y)
s2.Cells(sat, 3) = s1.Cells(x, y)
Next y
Next x

End Sub[/vb:1:cca55dd3c9]
 
Katılım
26 Haziran 2006
Mesajlar
9
veyselemre' Alıntı:
[vb:1:7a335549be]Sub aktar()
Set s1 = [Sayfa1]
Set s2 = [Sayfa2]
s2.Cells.ClearContents

s1.Select

For x = 2 To [a65536].End(3).Row
For y = 2 To [IV1].End(xlToLeft).Column
sat = sat + 1
s2.Cells(sat, 1) = s1.Cells(x, 1)
s2.Cells(sat, 2) = s1.Cells(1, y)
s2.Cells(sat, 3) = s1.Cells(x, y)
Next y
Next x

End Sub[/vb:1:7a335549be]

cok cok tesekkur ederim "veyselemre" problemimi cozdum... yardımları ıcın heerkese tekrardan teekkur.
 
Katılım
26 Haziran 2006
Mesajlar
9
veyselemre cevabın gercekten isime yaradı...ama nası boyle kısa ve etkili
kod yazdın... bu isin sırrı nedir?

yazdiginiz kodu biraz aciklayabilirmisiniz... az cok C falan biliyorum... ama burda yeni terimlerde vardı.... vaktiniz olursa kodu acıklarsaniz cok memnun olacagım...

teeskkurler
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
kacubet' Alıntı:
veyselemre cevabın gercekten isime yaradı...ama nası boyle kısa ve etkili kod yazdın... bu isin sırrı nedir?
İltifat ediyorsunuz, kodlar çok basit, forumdaki makroyla ilgilenen birçok arkadaş bu kodları yazabilir. İşin sırrı verileri ve istenenleri çok iyi analiz etmek.
kacubet' Alıntı:
az cok C falan biliyorum
Bende bilmek isterdim.

Kodlara gelince,

Set s1 = [Sayfa1] 's1 değişkenine sayfa1 ata
Set s2 = [Sayfa2]
s2.Cells.ClearContents 's2 değişkenindeki hücrelerin içeriğini temizle

s1.Select 'aktif sayfa sayfa1 değilse işi garantiye almak için sayfa1 seçilir.

For x = 2 To [a65536].End(3).Row 'sayfa1 in 2 satırından ([a65536].End(3).Row ifadesi bize a sutununda kullanılan en son satırı verir) en son satıra kadar döngü başlangıcı

For y = 2 To [IV1].End(xlToLeft).Column 'sayfa1 in 2 sutunundan ([IV1].End(xlToLeft ifadesi bize 1 satırda kullanılan en son sutunu verir) en son sutununa kadar döngü başlangıcı

sat = sat + 1 ' sayfa2 de yazdırılacak satır numarası döngülerin her işleminde satır 1 atanıyor.

s2.Cells(sat, 1) = s1.Cells(x, 1) 'sayfa2 nin sat satırı (yani döngüye ilk girildiğinde 1) ve 1 sutununa, sayfa1 x satırı, 1. sutundaki veriyi aktar.
s2.Cells(sat, 2) = s1.Cells(1, y)
s2.Cells(sat, 3) = s1.Cells(x, y)
Next y 'ikinci döngü sonu
Next x 'ilk döngü sonu
 
Katılım
26 Haziran 2006
Mesajlar
9
acıklamalarınız ıcın sagolun... simdi hem ogrenmıs hem uygulamıs oldum...

ben de bol bol pratik yapmaya karar verdim...

kolay gelsin...
 
Üst