• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
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
 
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.
 
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
 
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' 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
 
[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]
 
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.
 
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
 
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
 
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...
 
Geri
Üst