alt alta olan verileri yan yana yazma

Katılım
10 Ekim 2011
Mesajlar
13
Excel Vers. ve Dili
Excel
Merhaba arkadaşlar





aynen bu şekilde yapmak istiyorum
yardımcı olabilirmisiniz.
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Listele()
    Dim S1 As Worksheet, Veri As Variant, Dizi As Object, X As Long
    Dim Son As Long, Sutun As Integer, Say As Long, Zaman As Double
   
    Zaman = Timer
   
    Application.ScreenUpdating = False
   
    Set S1 = Sheets("Sayfa1")
    Set Dizi = CreateObject("Scripting.Dictionary")
   
    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    Veri = S1.Range("A2:C" & Son).Value2
   
    S1.Range("D:" & Replace(Cells(1, Columns.Count).Address(0, 0), 1, "")).Clear
   
    ReDim Liste(1 To UBound(Veri), 1 To 3)
   
    For X = LBound(Veri) To UBound(Veri)
        If Not Dizi.Exists(Veri(X, 2)) Then
            Say = Say + 1
            Dizi.Add Veri(X, 2), Say
            Liste(Say, 1) = Veri(X, 3)
            Liste(Say, 2) = Veri(X, 2)
            Liste(Say, 3) = Veri(X, 1)
        Else
            Liste(Dizi.Item(Veri(X, 2)), 3) = Liste(Dizi.Item(Veri(X, 2)), 3) & "|" & Veri(X, 1)
        End If
    Next
   
    If Say > 0 Then
        S1.Range("D2").Resize(Say, 3) = Liste
        S1.Range("F2").Resize(Say).TextToColumns Tab:=True, OtherChar:="|"
        Sutun = S1.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
        With S1.Range("D1:E1")
            .Value = Array("Sıra No", "Stok Kodu")
            .Font.Bold = True
            .HorizontalAlignment = xlCenter
        End With
        With S1.Range("F1")
            .Value = "Fiyat 1"
            .Font.Bold = True
            .HorizontalAlignment = xlCenter
            .AutoFill Destination:=S1.Range("F1:" & Cells(1, Sutun).Address(0, 0)), Type:=xlFillDefault
        End With
    End If
   
    Set S1 = Nothing
    Set Dizi = Nothing
   
    Application.ScreenUpdating = True
   
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Katılım
10 Ekim 2011
Mesajlar
13
Excel Vers. ve Dili
Excel
Hocam normal formul olarak olabilirmi
kodu calıstıramıyorum
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodu neden çalıştıramıyorsunuz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızı boş bir hücreyaçın.
ALT+F11 tuşlarına basın.
Karşınıza kod editörü açılacaktır.

INSERT menüsünden MODULE seçeneğini seçin. Sağ tarafta beyaz bir alan açılacaktır.

Bu alana verdiğim kodu uygulayın.
Excel sayfasına geri dönün.
EKLE menüsünden sayfanıza bir dikdörtgen ekleyin.
Şekil üzerinde sağ tıklayın ve MAKRO ATA komutuna tıklayın. Ekrana gelen pencereden makroyu seçip tamam deyin.

Son olarak boş bir hücreyi seçtikten sonra şekle tıklayın.

İstediğiniz sonuç oluşacaktır.

Dosyanızı kayıt ederken dosya türünden MAKRO İÇEREBİLEN EXCEL DOSYASI formatını seçiniz. Yoksa kodlar dosyadan silinir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formül olarak örnek resme göre aşağıdaki gibi uygulayarak sonuç alabilirsiniz.

E2;
C++:
=İNDİS($B:$B;SATIR()*4-6)
F2;
C++:
=İNDİS($A:$A;SATIR()*4-6+MOD(SÜTUN();6))
Sonrasında bu formülleri alt hücrelere sürükleyiniz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın Korhan Ayhan, arkadaşın tablosunda gözünüzden kaçtı sanıyorum: tüm kodlar 4'er adet değil.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Haklısınız. Dikkatimden kaçmış.

Özür dilerim...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yeni formüller aşağıdaki gibi olabilir.

DİZİ formüllerdir.

E2;
C++:
=EĞERHATA(İNDİS($B$2:$B$1000;KAÇINCI(0;EĞER($B$2:$B$1000<>"";EĞERSAY($E$1:E1;$B$2:$B$1000));0));"")
F2;
C++:
=EĞER($E2="";"";EĞERHATA(İNDİS($A$2:$A$1000;KÜÇÜK(EĞER($B$2:$B$1000=$E2;SATIR($B$2:$B$1000)-1);SÜTUNSAY($F$1:F$1)));""))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
DİZİ formül olarak uygulayınız.

Formülü hücreye yazdıktan sonra hücreyi CTRL+SHIFT+ENTER tuşlarına basarak terk ediniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formüllere boş hücreleri atlaması için küçük eklemeler yaptım. Üstteki mesajımdan son hallerini deneyiniz.
 
Katılım
10 Ekim 2011
Mesajlar
13
Excel Vers. ve Dili
Excel
bu kodlara bakarmısınız


Kod:

=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0);0)







Kod:


=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0)+1;0)









Kod:


=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0)+2;0)









Kod:


=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0)+3;0)









Kod:


=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0)+4;0)









Kod:


=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0)+5;0)









Kod:


=İNDİS($B:$B;KAÇINCI($F2;$A:$A;0)+6;0)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Resimdeki 4 Fiyat olması yanlış yönlendirdi.

F2 hücresi için formülü tekrar revize ettim. Üstteki mesajdan kontrol edip denersiniz.
 
Katılım
10 Ekim 2011
Mesajlar
13
Excel Vers. ve Dili
Excel

tamam hocam oldu

d hücresine sıra no yu getirebilirmiyiz
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hangi sıra numarasını?
 
Üst