Makro ile sütunu satıra çevirme.

Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
Örnekte belirttiğim gibi sütunu satıra dönüştürmek mümkün mü?
Konularda aradım ama bu şekilde örneğe rastlayamadım.
Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

usubaykan

Destek Ekibi
Destek Ekibi
Katılım
16 Mayıs 2008
Mesajlar
561
Excel Vers. ve Dili
Ev : Office Excel 2003
İş : Office Excel 2003
Merhaba;

Aşağıdaki kodu dener misiniz?
Kod:
Option Explicit
Sub satırı_sütuna_çevir()
Dim u As Long
    For u = 6 To Range("C65536").End(3).Row
    Cells(6, u + 2) = Cells(u, 3)
    Cells(7, u + 2) = Cells(u, 4)
    Next
End Sub
 
Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
teşekkür ederim cevap için.
denedim ama çalıştıramadım.
bu veriyi yapıştırdığımda mı çalışacak?
 

usubaykan

Destek Ekibi
Destek Ekibi
Katılım
16 Mayıs 2008
Mesajlar
561
Excel Vers. ve Dili
Ev : Office Excel 2003
İş : Office Excel 2003
Merhaba;

Tekrar denedim eklediğiniz örnek dosya da çalışıyor. Verileri değiştirip deneyiniz.
 

usubaykan

Destek Ekibi
Destek Ekibi
Katılım
16 Mayıs 2008
Mesajlar
561
Excel Vers. ve Dili
Ev : Office Excel 2003
İş : Office Excel 2003
Hayır Modul içine yazmalısınız.
Alt+F11 / Sayfa1 üzerinde sağ klik insert / Modul
yolunu izleyerek modul eklemelisiniz. Modul eklemeyle ilgili arama yapınız.
 
Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
bakın örnekte ekledim
değiştirsem de makro çalışmıyor.
en azından nerede hata yapıyorum söyleyebilir misiniz.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,733
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. matit35,

Size önerilen kod otomatik çalışmaz. Bir butona bağlayıp kullanmalısınız. Verilerinizi kopyala-yapıştır yaptıktan sonra butona tıklamalısınız.

Eğer buton kullanmak istemiyorum diyorsanız ilgili sayfanın kod bölümüne aşağıdaki kodu uygulayın.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("C6:D65536")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Range("H6:IV7").ClearContents
    Range("C6:D" & Range("C65536").End(3).Row).Copy
    Range("H6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    Range("C6").Select
    Application.EnableEvents = True
    Exit Sub
Son:
    Application.CutCopyMode = False
    Application.EnableEvents = True
    MsgBox Err.Description
End Sub
 
Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
çok teşekkür ederim tam aradığım buydu. çok uzun zamandır arıyordum ve sanırım tam olarak anlatamıyordum.
biraz daha ileri giderek bir soru daha sormak istiyorum. tam tersini yapacak olsak, yani sağ taraftaki satırı sütuna dönüştürmek istesek, kodu nasıl değiştirmeliyiz?
şimdiden çok teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,733
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aslında sizde verdiğim koda bakarak yeni istediğiniz kodu düzenleyebilirdiniz. Aşağıdaki şekilde deneyin.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("H6:IV7")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Range("C6:D65536").ClearContents
    Range("H6:IV7").Copy
    Range("C6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    Range("H6").Select
    Application.EnableEvents = True
    Exit Sub
Son:
    Application.CutCopyMode = False
    Application.EnableEvents = True
    MsgBox Err.Description
End Sub
 
Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
aslında ben de ona çalışıyordum şu anda.
çok teşekkür ederim.
çok faydalı oldu. emeğinize sağlık
 
Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, Range("C6:D65536")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Range("H6:IV7").ClearContents
Range("C6:D" & Range("C65536").End(3).Row).Copy
Range("H6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Range("C6").Select
Application.EnableEvents = True
Exit Sub
Son:
Application.CutCopyMode = False
Application.EnableEvents = True
MsgBox Err.Description
End Sub



Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, Range("H6:IV7")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Range("C6:D65536").ClearContents
Range("H6:IV7").Copy
Range("C6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Range("H6").Select
Application.EnableEvents = True
Exit Sub
Son:
Application.CutCopyMode = False
Application.EnableEvents = True
MsgBox Err.Description
End Sub

peki sayın arkadaşım bu iki makroyu aynı sayfada nasıl birleştirebilirim?
inanın sormadan önce çok uğraşıyorum.
Yani aynı sayfada iki makronun da etkin olmasını istiyorum.
(hücre isimlerinin değişmesi gerektiğini biliyorum. Sadece aynı sayfada nasıl kombine yapılabilir?)
 
Katılım
17 Aralık 2006
Mesajlar
85
Excel Vers. ve Dili
2003
gerçekten bu sorunun cevabına ihtiyacım var.
ikisini aynı sayfaya hangi komut yardımıyla koyabiliriz?
teşekkürler...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,733
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Keşke en son istediğiz işlemi en başta açıklasaydınız. Konu gereksiz yere uzayıp gidiyor.

Aşağıdaki şekilde denermisiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("C6:D65536", "H6:IV7")) Is Nothing Then Exit Sub
    If (Target.Column = 3 Or Target.Column = 4) And Target.Row >= 6 Then
        Application.EnableEvents = False
        Range("C6:D65536").ClearContents
        Range("H6:IV7").Copy
        Range("C6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
        Application.CutCopyMode = False
        Range("H6").Select
        Application.EnableEvents = True
        Exit Sub
    End If
    
    If Target.Column >= 8 And Target.Row >= 6 Then
        Application.EnableEvents = False
        Range("H6:IV7").ClearContents
        Range("C6:D" & Range("C65536").End(3).Row).Copy
        Range("H6").PasteSpecial Paste:=xlPasteValues, Transpose:=True
        Application.CutCopyMode = False
        Range("C6").Select
        Application.EnableEvents = True
        Exit Sub
    End If
Son:
    Application.CutCopyMode = False
    Application.EnableEvents = True
    MsgBox Err.Description
End Sub
 
Üst