Soru Makro yazarken Excelde Sayfalara değişken atamak

Katılım
11 Mart 2021
Mesajlar
11
Excel Vers. ve Dili
MS Office V 2013
Merhaba
(Buraya resim ekleyemedim)

Şöyle bir sorunum var
Elimdeki excelde 302 sayfa var.

Sayfalar İsmi SAYFA1 (1), Sayfa1 (2), Sayfa1 (3) şeklinde üretilmiş.
Ben ÖZET bir tablo oluşturup, hepsini tek sayfada tek tabloda göstermek istiyorum. Daha doğrusu benden istenen rapor böyle. Ancak, sayfalar oluşturulurken Sayfa1, sayfa2, sayfa3 şeklinde değil de, Sayfa1 (1), Sayfa1 (2),Sayfa1 (3) şeklinde kopyalamışlar.

2 sorum olacak :

Burası sayfa 1'in bilgilerini alıyor. Tek satıra yazıyor.

Sub Makro1()
Cells(3, 3).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (1)'!R[46]C[2]"
Cells(3, 5).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (1)'!R[46]C[7]"
Cells(3, 7).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (1)'!R[46]C[12]"
Cells(3, 9).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (1)'!RC[7]"
End Sub


SAYFA1 (2) yani 2. sayfanın biligilerini alabilmek için:

Cells(3, 3).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (2)'!R[46]C[2]"
Cells(3, 5).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (2)'!R[46]C[7]"
Cells(3, 7).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (2)'!R[46]C[12]"
Cells(3, 9).Select
ActiveCell.FormulaR1C1 = "='Sayfa1 (2)'!RC[7]"

Ve hakeza Sayfa 1(3), Sayfa1 (4), Sayfa1 (5) ......Sayfa1 (302) ye kadar yapmam gerekiyor.
Ama burada Sayfalara değişken atayamıyorum. Nasıl atayabilirim ?


2-
Sayfa1 (1), Sayfa1 (2), Sayfa1 (3) şeklinde 302 sayfanın ismini Sayfa1, Sayfa2, Sayfa3 şeklinde nasıl değiştirebilirim ?

Teşekkürler
 

Korhan Ayhan

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

Linkteki #5 nolu mesajda ki kodu kendinize uyarlayınız.

DATA adında bir sayfa oluşturup sayfaları konsolide eder.

 

Korhan Ayhan

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

 
Katılım
11 Mart 2021
Mesajlar
11
Excel Vers. ve Dili
MS Office V 2013
Korhan Bey Çok teşekkür ederim ama ben o VB kodlarına çok hakim değilim.
Burada yazdığımı da çok eski aşinalığımla yazdım.

Sayfaya değişken atama tam olarak nasıl yapılıyor ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Verdiğim linklerde ki kod ile pratik bir şekilde sayfaları konsolide edebilirsiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kendi kullandığınız kodu aşağıdaki gibi kullanabilirsiniz.

C++:
Sub Makro1()
    Sayfa = "Sayfa1 (1)"
    Cells(3, 3).FormulaR1C1 = "='" & Sayfa & "'!R[46]C[2]"
    Cells(3, 5).FormulaR1C1 = "='" & Sayfa & "'!R[46]C[7]"
    Cells(3, 7).FormulaR1C1 = "='" & Sayfa & "'!R[46]C[12]"
    Cells(3, 9).FormulaR1C1 = "='" & Sayfa & "'!RC[7]"
End Sub
 
Katılım
11 Mart 2021
Mesajlar
11
Excel Vers. ve Dili
MS Office V 2013
Muhteşem...
Çok teşekkür ederim
Elinize sağlık
Hemen deneyeceğim
 
Katılım
11 Mart 2021
Mesajlar
11
Excel Vers. ve Dili
MS Office V 2013
Maalesef olmadı. Sayfayı değişken olarak atayamıyor.
Zahmet verdim teşekkür ederim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Peki tam olarak ne oluyor?
 
Katılım
11 Mart 2021
Mesajlar
11
Excel Vers. ve Dili
MS Office V 2013
Sayfa arıyor. Sayfa aç penceresi açılıyor. Ben buraya resim neden yükleyemiyorum ?
Yeni üye olduğum için mi ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Foruma direkt dosya yükleme işlemleri için altın üyelik satın almalısınız.

Bunun dışında harici paylaşım sitelerine yükleme yaparak linkini forumda paylaşabilirsiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz silme linkini paylaşmışsınız. İndirme linkini paylaşınız.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hangi hücreleri hangi sütunlara almak istiyorsunuz.

Hücre adreslerini yazar mısınız?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sanırım aşağıdaki kod işinizi görecektir.

C++:
Option Explicit

Sub Sayfalardan_Verileri_Aktar()
    Dim X As Integer, Satir As Integer, Sayfa As Worksheet
    
    Satir = 3
    
    For X = 1 To 302
        On Error Resume Next
        Set Sayfa = Nothing
        Set Sayfa = Sheets("Sayfa1 (" & X & ")")
        On Error GoTo 0
        
        If Not Sayfa Is Nothing Then
            Cells(Satir, 3).Formula = "='" & Sayfa.Name & "'!E49"
            Cells(Satir, 5).Formula = "='" & Sayfa.Name & "'!L49"
            Cells(Satir, 7).Formula = "='" & Sayfa.Name & "'!S49"
            Cells(Satir, 9).Formula = "='" & Sayfa.Name & "'!P3"
            Satir = Satir + 1
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
11 Mart 2021
Mesajlar
11
Excel Vers. ve Dili
MS Office V 2013
Bravo
Çok teşekkür ederim
Elinize sağlık sorun çözüldü
 
Üst