Başka sayfadan veri çekme (vba Range)

cliff

Altın Üye
Katılım
12 Nisan 2011
Mesajlar
25
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
selamlar, Sayfa1'den sayfa2'ye veri çekmeye çalışıyorum. fonksiyon şu şekilde işliyor: A7'den başla boş hücre görene kadar kopyalayıp Sayfa2'de A7'den itibaren A sütununa yapıştır.

Sorun şu ki belirtilen hedefte başlangıç hücresi seçimim işe yaramıyor sadece sütun çalışıyor. A1'den başlıyor direkt.

nerede hata yaptığımı ve nasıl düzeltebileceğimi biri açıklayabilirse çok sevinirim.

Kod:
Sub S_O()
Dim cpySource As Excel.Range
With Sheets("Sayfa1")
 Set firma_no = .Range("A7:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)

End With
With Sheets("Sayfa2")
 .Range("A7:A" & .Rows.Count).End(xlUp).Resize(firma_no.Rows.Count, 1).Value = firma_no.Value

End With
End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Deneyiniz.
Kod:
Sub yeni()
    With Sheets("Sayfa1")
        Set firma_no = .Range("A7:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    End With
    With Sheets("Sayfa2")
        .Range("A7:A" & Rows.Count) = ""
        .Range("A7").Resize(firma_no.Rows.Count, 1) = firma_no.Value
    End With
End Sub
 

cliff

Altın Üye
Katılım
12 Nisan 2011
Mesajlar
25
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
Teşekkür ederim, çalıştı.

Bir iki sorum daha olacak, daha doğrusu sorun olduğunu yeni keşfettim;

1- Kopyaladığım sütunlardan biri tarih verisi içeriyor. "Gün/Ay/Yıl" şeklinde bir yazımı var ama kopyalayınca bazı hücreleri "Ay.Gün.Yıl" şeklinde saçma bir şekle çevirdiği olmuş.

2- Bazı sütunlar finansal veri içeriyor. bunların en alt hücresine nasıl toplamı kalın yazıtipli bir şekilde yazabilirim, tabi aynı satırda belirli bir hücreye de "toplam" yazısı yazmak gerekecek :)
 
Son düzenleme:

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Sorunuzla ilgili küçük bir örnek dosya hazırlayıp olması gerekenleri dosya içinde manuel yaparak açıklamalarıyla ekler misiniz.


.
 

cliff

Altın Üye
Katılım
12 Nisan 2011
Mesajlar
25
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028

Linki bıraktım ömer bey. Farklı programlama dillerinde rahat çözebildiğim bir konu ama VBA hiç bilmiyorum maalesef.
 
Son düzenleme:

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Aynı verileri farklı sayfaya çekip sadece yüzde sütunu ve toplam satırı eklenmiş. Neden bunun için verileri farklı sayfaya kopyalayarak düzenleme yapıyorsunuz. Aynı işi Sayfa1 de ekleyebilir siniz?
Mantığını anlamak için soruyorum. Yada benim kaçırdığım bir bölüm mü var.
 

cliff

Altın Üye
Katılım
12 Nisan 2011
Mesajlar
25
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
esasında bu makroyu teknolojiden bi haber biri için yapmaya çalışıyorum. günlük/aylık olarak verileri kopyalayıp yan sayfada düzeltilmiş halini görmesini sağlamak istedim. ilk sayfa düzenlediğim kadar temiz değil birleşik hücreler, boş sütunlar vb. şeyler dolu. VBA pek bilmediğimden böylesi daha kolay geldi. yoksa pekala dediğiniz de mantıklı
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Tercih sizin? Ben merak ettiğim için sormuştum. Nasıl yapılması gerektiğini siz söyleyin.
 

cliff

Altın Üye
Katılım
12 Nisan 2011
Mesajlar
25
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
Mahsuru yoksa o sayfayi baska bir workbook olarak dusunup ondan cekebilse daha bile iyi olur. Zira kopyalamayi bile becerebileceginden emin degilim :)
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Deneyiniz.
Kod:
Sub duzenle()

    Dim S1 As Worksheet, S2 As Worksheet, son As Long, i As Byte
    
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    
    Application.ScreenUpdating = False
    S2.Select
    Range("A2:G" & Rows.Count).Clear
    
    son = S1.Cells(Rows.Count, "A").End(xlUp).Row
    
    S1.Range("A3:B" & son).Copy Range("A2")
    S1.Range("D3:E" & son).Copy Range("C2")
    S1.Range("G3:H" & son).Copy Range("E2")
    Range("G2:G" & son - 1) = "=E2/F2"
    
    For i = 3 To 6
        Columns(i).TextToColumns Destination:=Cells(1, i), DataType:= _
        xlDelimited, TextQualifier:=xlDoubleQuote, Other:=True
    Next i
    
    Range("H2:I" & son - 1) = "=C2*1"
    Range("H2:I" & son - 1).Copy
    Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Range("H2:I" & son - 1).Clear
    
    Range("D" & son) = "TOPLAM"
    Range("E" & son) = "=SUM(E2:E" & son - 1 & ")"
    Range("F" & son) = "=SUM(F2:F" & son - 1 & ")"
    Range("G" & son - 1).Copy Range("G" & son)
    
    Range("D" & son).Resize(1, 4).Font.Bold = True
    
    Range("D" & son + 3) = "Toplam Borç"
    Range("D" & son + 4) = "Toplam Ödenen"
    Range("D" & son + 5) = "Ödeme Oranı"
    
    Range("E" & son + 3) = Range("F" & son)
    Range("E" & son + 4) = Range("E" & son)
    Range("E" & son + 5) = Range("G" & son)
        
    Range("D" & son + 3).Resize(3, 2).Font.Bold = True
    
    Range("A2:G" & son).Borders.LineStyle = 1
    Range("G:G").NumberFormat = "0.00%"
    Range("E:F").NumberFormat = "#,##0.00"
    Range("E" & son + 5).NumberFormat = "0.00%"
    Range("C2:D" & son - 1).NumberFormat = "dd/mm/yyyy"
    Cells.EntireColumn.AutoFit
    Range("G1").Select
    
End Sub
 

cliff

Altın Üye
Katılım
12 Nisan 2011
Mesajlar
25
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
25-01-2028
desteğiniz için teşekkür ederim.
 
Üst