Makro ile sütundaki en son dolu hücreye kadar kopyalama

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Hayırlı geceler arkadaşlar.

Benim küçük bir sorum olacak.

Yapmak istediğim, örnek olarak makro ile B1 sütunundan başlayıp, B sütunundaki en son dolu hücreye kadar seçip kopyalamasını istiyorum. B sütunundaki bilgiler uzun olduğu için her seferinde seçmek zorunda kalıyorum.

Yardım edecek arkadaşlara şimdiden çok teşekkür ederim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Kod:
Sub BKOPYALA()
Dim son As Integer
    son = Range("B65536").End(3).Row
    Range("B1:B" & son).Copy
End Sub
Sayfaya bir düğme ekleyip, yukarıdaki kodu sayfanın kod bölümüne yapıştırın,
sonra bu kodu düğmeyle ilişkilendirin, düğmeye tıkladıktan sonra yapıştıracağınız yere gelip CTRL+V tuşlarına basın.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Ömer Bey tam istediğim gibi olmuş, çok teşekkür ederim, hayırlı geceler.

Konu çözülmüştür.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Estağfurullah, böylece bir kod sorusuna ilk cevabımı vermiş oldum.
Yapıştırma işleminden sonra, bir kez ESC tuşuna basmanızya yarar var,
çünkü iptal edilinceye kadar kopyaladığınız veri tekrar yapıştırılmak üzere hafızada tutulacak.
Veri miktarına göre RAM'i yorabilirsiniz.
Size de iyi günler.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Anladım çok teşekkürler, hayırlı geceler.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Verinin yapıştırılacağı yeri söyleseydiniz, hiç VTRL+V ve ESC işlemine gerek kalmadan yapıştırma işlemi de kod'a yaptırılabilirdi.
 
Katılım
20 Aralık 2013
Mesajlar
195
Excel Vers. ve Dili
Microsoft Office Standart 2013 - Microsoft Windows 10 Enterprise
Kod:
Sub BKOPYALA()
Dim son As Integer
    son = Range("B65536").End(3).Row
    Range("B1:B" & son).Copy
End Sub
Sayfaya bir düğme ekleyip, yukarıdaki kodu sayfanın kod bölümüne yapıştırın,
sonra bu kodu düğmeyle ilişkilendirin, düğmeye tıkladıktan sonra yapıştıracağınız yere gelip CTRL+V tuşlarına basın.
selam

kodlarla ilgileniyorum da bu "Dim son As Integer" nedir hep görüyorum
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
selam

kodlarla ilgileniyorum da bu "Dim son As Integer" nedir hep görüyorum
Ben de vba ile yeni ilgilenmeye başladım.

Dim ile başlayan ifadeler kodda kullanılan değişkenlerin
(yukarıdaki örnekte son adını verdiğim değişken satır numarasıdır)
tür tanımlamasının yapılması işlemidir.

Integer ibaresi, değişkenin SAYI olduğunu gösteriyor.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Ömer Bey'in yazmış olduğu aşağıdaki kod çok işime yaradı, bu kod ile veri sayfasındaki bilgileri arşiv sayfasındaki sütunlara yapıştırıyorum.

Sub BKOPYALA()
Dim son As Integer
son = Range("B65536").End(3).Row
Range("B1:B" & son).Copy
End Sub

Bu formülle ilgili küçük bir sorum olacaktı;

Arşiv sayfasındaki sütunlara yapıştırdığım veriler bazen kopyalayıp veri sayfasına geri yapıştırmam gerektiği için, arşiv sayfasına tekrar bir buton koyup, bu butona bastığımda hangi sütunu kopyalamak istiyorsunuz diye mesaj gelmesini ve bu mesaj içerisine sütun harfini yazdığımda, o sütunun en son dolu hücresine kadar kopyalamasını istiyorum, sütunlarda siciller çok fazla olduğu için, her defasında bunu fare ile seçerek kopyalamak zaman alıyor.

Şimdiden çok teşekkür ederim.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Kod:
Sub kod()
    
    sor = InputBox("Sütun Harfi Giriniz...", "", "Örneğin: A")
    If sor = "" Then Exit Sub
    
    sütun = Cells(1, sor).Column
    sonsat = Cells(Rows.Count, sütun).End(3).Row
    
    Range(Cells(1, sütun), Cells(sonsat, sütun)).Copy
    
End Sub
. . .
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Bir acemi önerisi de ben yapayım.
Aşağıdaki kodu module kopyalayın.
Arşiv sayfasından almak istediğiniz sütun adını
veri sayfası A1 (A1 yerine başka yere yazmak isterseniz koddaki hücre adını ona göre değiştirin) hücresine yazın (A, B gibi)
sonra oluşturacağınız düğmeye tıklayın,
yapıştıracağınız sütun ilk hücresine fareyle gelin CTRL+V yapın tamam olması lazım.
Kod:
Sub KOPYALA()
Dim son As Integer
Dim sutun As String

sutun = Sheets("veri").Range("[B][COLOR="Red"]A1[/COLOR][/B]").Value
son = Sheets("arşiv").Range(sutun & "65536").End(3).Row
Sheets("arşiv").Range(sutun & "1:" & sutun & son).Copy

End Sub
 
Katılım
12 Mart 2015
Mesajlar
5
Excel Vers. ve Dili
Office 2010
Makro Yardım Lütfen(Acill)

Selam aleyküm;

Arkadaşlar excell tablosunda fatura tutarı ve ödemeler üzerinden eritme formülüne ihtiyacım var
Mesala ;
21.01.2015 tarihli fatura 50,000 tl
25.01.2015 tarihli fatura 20,000 tl

Yukarıda belirtilen faturalar aşağıda belirtildiği gibi mutelif tarihlerde yatırılmıştır. ilk yatan para ilk faturadan düşecek ve ilk fatura kapandıktan sonra ikinci faturadan düşecek şekilde makro yazılabilirmi. Makro ve formül konusunda yardımcı olabilecek kimse varmı.Şimdiden teşekkürler.

25.01.2015 tarihli yatan para 25,000 tl
28.01.2015 tarihli yatan para 13,000 tl
31.01.2015 tarihli yatan para 25,000 tl.


Teşekkürler
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Yukarıdaki kod yerine aşağıdaki kodu kulanırsanız;
Veri sayfasında
-- A1 hücresine arşiv sayfasından getirmek istediğiniz sütun adını,
-- B1 hücresine de kopyalanan verinin yapıştırılacağı sütun adını yazın.
Düğmeyi fareyle seçin, işlem tamamlanır. (Hücre adlarını değiştirebilirsiniz.)
Kod:
Sub KOPYALAYAPIŞTIR()
Dim son As Integer
Dim sutun As String
Dim hedef As String

sutun = Sheets("veri").Range("[B][COLOR="Red"]A1[/COLOR][/B]").Value
son = Sheets("arşiv").Range(sutun & "65536").End(3).Row
    Sheets("arşiv").Range(sutun & "1:" & sutun & son).Copy

hedef = Sheets("veri").Range("[B][COLOR="blue"]B1[/COLOR][/B]").Value

    Sheets("veri").Range(hedef & "1").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
    Sheets("veri").Range(hedef & "1").Select

End Sub
 
Son düzenleme:

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Hüseyin Bey yazmış olduğunuz kod tam benim istediğim gibi olmuş çok teşekkür ederim.

Ömer Bey ilk verdiğiniz kod çok işime yaradı, size de çok teşekkür ederim. Herkese hayırlı çalışmalar.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Arkadaşlar tekrar merhaba, hayırlı akşamlar.

Aşağıdaki bu kodu Ömer Bey yazmıştı,

Sub BKOPYALA()
Dim son As Integer
son = Range("B65536").End(3).Row
Range("B1:B" & son).Copy
End Sub

Bu kodu da Hüseyin Bey yazmıştı,

Sub kod()

sor = InputBox("Sütun Harfi Giriniz...", "", "Örneğin: A")
If sor = "" Then Exit Sub

sütun = Cells(1, sor).Column
sonsat = Cells(Rows.Count, sütun).End(3).Row

Range(Cells(1, sütun), Cells(sonsat, sütun)).Copy

End Sub

Benim küçük bir isteğim olacaktı, her iki kodda da işlem bittiğinde, örneğin "100 sicil kopyalandı.", "150 sicil kopyalandı." gibi bir mesaj verebilir mi?

Yardım edecek şimdiden teşekkür ederim.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
end sub satırından önce ekleyin.

Kod:
msgbox sonsat & "sicil kopyalandı.."
. . .
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Hüseyin Bey, çok teşekkür ederim, ancak şöyle küçük bir sorun çıktı, sütunun başlangıcı 3.satırdan başladığı için işlem yaptığında örnek olarak 100 sicil varsa, 102 sicil kopyalandı diyor.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Şu şekilde olabilir.

Kod:
msgbox sonsat -2 & "sicil kopyalandı.."
. . .
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Hüseyin Bey sizin kod tamam, Allah razı olsun,

Peki aşağıdaki kodda bu çalışmıyor.

Sub BKOPYALA()
Dim son As Integer
son = Range("B65536").End(3).Row
Range("A2:A" & son).Copy
msgbox sonsat -1 & "sicil kopyalandı.."
End Sub
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,798
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
29.03.2025
Sub BKOPYALA()
Dim son As Integer
son = Range("A65536").End(3).Row
Range("A2:A" & son).Copy
msgbox sonsat -1 & "sicil kopyalandı.."
End Sub
 
Üst