• DİKKAT

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

Rapor sayfasına farklı sayfadan gelen bilginin detayını görüntüleme

  • Konbuyu başlatan Konbuyu başlatan besen
  • Başlangıç tarihi Başlangıç tarihi

besen

Altın Üye
Katılım
23 Mart 2007
Mesajlar
822
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
İngilizce
Rapor sayfasında, A kolonundaki hücreyi tıkladığımda, Gerçekleşme sayfasında, L kolonunda eşleşen bilgilerin sayfada ayrı bir pencerede, örnek görüntü sayfasındaki formatta gözükmesini istiyorum.
Örnekte detaylı açıklama var.
Teşekkür ederim.
 

Ekli dosyalar

Teşekkür ederim.
Gerçekleşme sayfasında renkli alanlarda başlıklar var, örnek dosyada onları silmiştim. Görüntü dosyasına başlıklarında gelmesini rica ediyorum.

Emeğinize sağlık.
 
Rapor sayfasında bulunan kodları silin aşağıdakileri kopyalayın.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Bak As Long
    Dim Syf As Worksheet
    Dim Say As Long
    If Intersect(Target, Range("A:A")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Set Syf = Worksheets("Örnek Görüntü")
    Syf.Range("A2:L" & Syf.Cells(Rows.Count, "L").End(3).Row).ClearContents
    With Worksheets("Gerçekleşme")
        .Range("A1").Copy Syf.Range("A1")
        .Range("E1").Copy Syf.Range("B1")
        .Range("J1:O1").Copy Syf.Range("C1")
        .Range("Q1").Copy Syf.Range("I1")
        .Range("S1").Copy Syf.Range("J1")
        .Range("V1").Copy Syf.Range("K1")
        .Range("Q1").Copy Syf.Range("L1")
        For Bak = 2 To .Cells(Rows.Count, "L").End(3).Row
            If .Cells(Bak, "L") = Target Then
                Say = Syf.Cells(Rows.Count, "A").End(3).Row + 1
                .Range("A" & Bak).Copy Syf.Range("A" & Say)
                .Range("E" & Bak).Copy Syf.Range("B" & Say)
                .Range("J" & Bak & ":O" & Bak).Copy Syf.Range("C" & Say)
                .Range("Q" & Bak).Copy
                Syf.Range("I" & Say).PasteSpecial (xlPasteValues)
                .Range("S" & Bak).Copy Syf.Range("J" & Say)
                .Range("V" & Bak).Copy Syf.Range("K" & Say)
                .Range("Q" & Bak).Copy
                Syf.Range("L" & Say).PasteSpecial (xlPasteValues)
            End If
        Next
    End With
End Sub
 
Son düzenleme:
Süper. Çok teşekkür ederim.
 
Rapor sayfasında formatla ilgili işlemler yaptığımda örneğin bazı kolonların boyutunu değiştirdiğimde
Bu kodda " If .Cells(Bak, "L") = Target Then" Debug veriyor.
 
En üst satıra şu satırı ekleyin.

Kod:
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
 
Size çok zahmet verdim ama bu hatayı verdi.
Ayrıca kopyalama da yapamıyorum.
 

Ekli dosyalar

  • hata_1.png
    hata_1.png
    2.9 KB · Görüntüleme: 0
4. mesajdaki kodu düzenledim dener misiniz
 
Evet bu kodu yazınca o hatayı verdi zaten.

If Intersect(Target, Range("A:A")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
 
hata_1.pnghata_1.pnghata_1.png
Evet söylediğiniz kod üst kısımda kalmış, hata ondan kaynaklı. Çok teşekkür ederim.
Selam, sevgi, saygı.
 
Merhaba, dosyada bir değişiklik yapmak ihtiyacı oldu. Şöyle ki;
Aynı dosyada birden fazla projeyi takip ediyoruz.
Bu nedenle daha önce sadece A kolonundaki kodlara bakarken şimdi hem A kolonuna ve sayfadaki C1 hücresindeki proje koduna göre listelensin istiyorum
Yardımınız için teşekkür ederim.
Selam, sevgi, saygı.
 

Ekli dosyalar

Merhaba.

Kodlar aşağıdaki, gibi olmalı.

Her iki sayfadaki kodları da aşağıdaki kodlarla değiştirin.

Kod:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Bak As Long
    Dim Syf As Worksheet
    Dim Say As Long
    If Intersect(Target, Range("A:A")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    Set Syf = Worksheets("Örnek Görüntü")
    Syf.Range("A2:L" & Syf.Cells(Rows.Count, "L").End(3).Row).ClearContents
    With Worksheets("Gerçekleşme")
        .Range("A1").Copy Syf.Range("A1")
        .Range("E1").Copy Syf.Range("B1")
        .Range("J1:O1").Copy Syf.Range("C1")
        .Range("Q1").Copy Syf.Range("I1")
        .Range("S1").Copy Syf.Range("J1")
        .Range("V1").Copy Syf.Range("K1")
        .Range("Q1").Copy Syf.Range("L1")
        For Bak = 2 To .Cells(Rows.Count, "L").End(3).Row
            If .Cells(Bak, "L") = Target And .Cells(Bak, "J") = Range("C1") Then
                Say = Syf.Cells(Rows.Count, "A").End(3).Row + 1
                .Range("A" & Bak).Copy Syf.Range("A" & Say)
                .Range("E" & Bak).Copy Syf.Range("B" & Say)
                .Range("J" & Bak & ":O" & Bak).Copy Syf.Range("C" & Say)
                .Range("Q" & Bak).Copy
                Syf.Range("I" & Say).PasteSpecial (xlPasteValues)
                .Range("S" & Bak).Copy Syf.Range("J" & Say)
                .Range("V" & Bak).Copy Syf.Range("K" & Say)
                .Range("Q" & Bak).Copy
                Syf.Range("L" & Say).PasteSpecial (xlPasteValues)
            End If
        Next
    End With
End Sub
 
Harikasınız, müteşekkirim.
 
Bir küçük istek daha, işlem yapıldığında sayfa otomatik olarak örnek görüntü sayfasına geçebilir mi?
 
Kodların en sonuna End Sub dan önce şu satırı ekleyin.
Kod:
worksheets("SayfaAdi").activate

SayfaAdi yerine geçmek istediğiniz sayfa adını yazın.
 
Geri
Üst