EXCEL VBA İLE ÇALIŞMA SAYFASINI KOPYALAMA [COPY WORKSHEET]

 


Excel VBA Copy Worksheet, aynı çalışma kitabında veya farklı çalışma kitapları arasında çalışma sayfalarını çoğaltmanıza olanak tanıyan Visual Basic for Applications (VBA) özelliğidir. Çalışma sayfalarının kopyalarını otomatikleştirmenin programatik bir yolunu sunar, tekrarlayan görevleri kolaylaştırmanızı, verileri düzenlemenizi ve kopyalanan çalışma sayfalarında çeşitli işlemler gerçekleştirmenizi sağlar. Bir örneğe bakalım. Bu örnekte, VBA Copy worksheet işlevini kullanarak aynı çalışma kitabında bir çalışma sayfasını kopyalayacağız.


Bu kodda, geçerli çalışma kitabındaki “Sheet1” adlı çalışma sayfasını kopyalamayı hedefliyoruz. Kodu çalıştırdığımızda, “After” parametresini ekleyerek ve “After:=ThisWorkbook.Worksheets(“Sheet1″),” olarak ayarlayarak belirtilen çalışma sayfasında Kopyalama yöntemi çağrılır, kopyalanan çalışma sayfasının çalışma kitabının çalışma sayfası koleksiyonundaki orijinal “Sheet1”den hemen sonra konumlandırıldığından emin oluruz.


VBA Kopyalama çalışma sayfası Giriş

Yukarıdaki kod, aynı çalışma kitabındaki “Sheet1 (2)” çalışma sayfasının bir kopyasını oluşturarak mevcut sayfaların sırasını korur.

VBA Kopyalama çalışma sayfası Giriş

ÖNEMLİ NOKTALAR

  1. VBA, Excel'de çalışma sayfalarını çoğaltmak için "Kopyala" yöntemini sunarak tekrarlanan görevlerin otomasyonuna olanak tanır.
  2. Bir çalışma sayfasını kopyalama işlemi aynı çalışma kitabı içerisinde veya farklı çalışma kitapları arasında yapılabilir.
  3. Bir çalışma sayfasını kopyaladıktan sonra yeniden adlandırma, farklı bir dosya biçiminde kaydetme veya değerleri yapıştırma gibi çeşitli işlemler yapılabilir.
  4. VBA'da çalışma sayfalarını kopyalarken, çalışma sayfası adlarının bir çalışma kitabında benzersiz olması gerektiğini göz önünde bulundurmanız önemlidir. Bir çalışma sayfasını kopyalamaya ve ona zaten var olan bir ad vermeye çalışırsanız, bir hatayla sonuçlanacaktır. Kopyalanan çalışma sayfasını yeniden adlandırdığınızdan veya bunun için benzersiz bir ad seçtiğinizden emin olun.

EXCEL VBA'DA WORKSHEET.COPY METODU 

VBA Copy Worksheet yöntemi, Worksheet nesnesine ait olan VBA'da yerleşik bir yöntemdir. Bir çalışma sayfasının kopyasını oluşturmak için kullanılır. VBA'da Copy yöntemini kullanma adımları şunlardır:

Adım 1: Alt+F11 tuşlarına basarak Excel'de Visual Basic Düzenleyicisi'ni (VBE) açın.

VBA Kopyalama çalışma sayfası - Yöntem - Adım 1

Adım 2: Menü çubuğundaki “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

VBA Kopyalama çalışma sayfası - Yöntem - Adım 2

Adım 3: “module.Copy” metodundaki Çalışma Sayfasını kullanan VBA kodunu yazın .

Örneğin:

Alt CopyWorksheetExample()
Dim wbTarget As Workbook
Set wbTarget = Workbooks.Add
ThisWorkbook.Worksheets(“Sheet1”).Copy After:=wbTarget.Sheets(wbTarget.Sheets.Count) Alt
Son

Yukarıdaki kodda, yeni çalışma kitabını depolamak için wbTarget adlı bir değişken tanımlıyoruz. “Workbooks.Add” kullanarak yeni çalışma kitabını oluşturuyoruz ve wbTarget'a atıyoruz.

Sonra, ThisWorkbook.Worksheets(“Sheet1”)'den elde edilen kaynak çalışma sayfasına Kopyalama yöntemini uygularız. Çalışma sayfasını kopyalar ve hedef çalışma kitabına yerleştirir.

Kopyalanan çalışma sayfasının hedef çalışma kitabındaki konumu After parametresi kullanılarak belirtilir. Burada, After:=wbTarget.Sheets(wbTarget.Sheets.Count) olarak ayarlıyoruz ve kopyalanan çalışma sayfasını hedef çalışma kitabındaki son sayfanın sonrasına ekliyoruz.

Adım 4: Kodu çalıştırmak için F5 tuşuna basın veya “Çalıştır” butonuna tıklayın.

Kodu çalıştırdığınızda, “Worksheet.Copy” yöntemi çağrılır ve “Sheet1” çalışma sayfasının kaynak çalışma kitabından (geçerli çalışma kitabı) yeni bir çalışma kitabına (wbTarget) kopyalanmasıyla sonuçlanır. Kopyalanan çalışma sayfası, hedef çalışma kitabındaki son sayfanın ardından konumlandırılır.


EXCEL VBA'da Kopyalama Çalışma Sayfası Örnekleri

Örnek 1 – Çalışma Sayfasını Başka Bir Çalışma Kitabına Kopyala

Bu örnekte, “Sheet1” adlı çalışma sayfası kaynak çalışma kitabından (VBA kodunu içeren çalışma kitabı) “Workbooks.Add” ile oluşturulan yeni bir çalışma kitabına kopyalanır.

Adım 1: Öncelikle yukarıda belirtilen adımları izleyerek yeni bir modül oluşturun. Ardından, “CopyToAnotherWorkbook” adlı alt yordamı bildiriyoruz.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 1

Adım 2: Şimdi değişkenleri tanımlıyoruz: “Dim wbSource As Workbook, wbTarget As Workbook.”

Bu satır iki Çalışma Kitabı değişkeni bildirir: “wbSource” ve “wbTarget.” Değişkenler, VBA kodunda verileri depolamak ve düzenlemek için kullanılır.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 2

Adım 3: Aşağıdaki satırda, “wbSource” değişkenini VBA kodunu içeren çalışma kitabına ayarlıyoruz. “ThisWorkbook”, kodun yazıldığı çalışma kitabını ifade eden önceden tanımlanmış bir anahtar sözcüktür.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 3

Adım 4: Hedef çalışma kitabını oluşturuyoruz: “Set wbTarget = Workbooks.Add.”

Bu satır, “Workbooks.Add” metodunu kullanarak yeni bir çalışma kitabı oluşturur ve bunu wbTarget değişkenine atar. Çalışma kitapları, açık çalışma kitaplarının koleksiyonuna atıfta bulunur ve Add yeni bir çalışma kitabı oluşturur.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 4

Adım 5: Şimdi, “wbSource” çalışma kitabındaki “Sheet1” adlı çalışma sayfasını wbTarget çalışma kitabına kopyalayan kodu sağlıyoruz.

Kaynak çalışma sayfasında VBA Kopyalama Çalışma Sayfası yöntemi kullanılır ve Sonra parametresi, kopyalanan çalışma sayfasının wbTarget çalışma kitabındaki son sayfadan sonra eklenmesini sağlayacak şekilde ayarlanır.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 5

Adım 6: Modülü kaydedin ve VBA’yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8’e basın, “CopyToAnotherWorkbook”u seçin ve çalıştırın.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 6

Adım 7: Kodu çalıştırdığınızda kopyalanan çalışma sayfasının hedef çalışma kitabındaki son sayfanın sonrasına yerleştirildiğini göreceksiniz.

VBA Kopyalama çalışma sayfası - Örnek 1 - Adım 7

 KODUN TAMAMI:

Sub CopyToAnotherWorkbook()
Dim wbSource As Workbook, wbTarget As Workbook
Set wbSource = ThisWorkbook
Set wbTarget = Workbooks.Add
wbSource.Worksheets(“Sheet1”).Copy After:=wbTarget.Sheets(wbTarget.Sheets.Count)
End Sub

Örnek 2 – Çalışma Sayfasını Kopyala ve Yeniden Adlandır

Aşağıdaki VBA Kopyalama Çalışma Sayfası örneği, aynı çalışma kitabı içerisinde “Sayfa1” çalışma sayfasının nasıl kopyalanacağını ve kopyalanan sayfanın “Sayfa1 Kopyası” olarak nasıl yeniden adlandırılacağını açıklar.

Adım 1: Yeni modülde, “CopyAndRename()” alt yordamını bildirerek başlayın.

VBA Kopyalama çalışma sayfası - Örnek 2 - Adım 1

Adım 2: Şimdi geçerli çalışma kitabındaki (“ThisWorkbook”) “Sheet1” adlı çalışma sayfasını kopyalamak için kodu sağlayın. Copy yöntemi kaynak çalışma sayfasında kullanılır ve After parametresi kopyalanan çalışma sayfasını orijinal “Sheet1”den sonra eklemek için ayarlanır.

VBA Kopyalama çalışma sayfası - Örnek 2 - Adım 2

Adım 3: Kodun bir sonraki satırı, ActiveSheet nesnesinin Name özelliğini kullanarak yeni kopyalanan çalışma sayfasını yeniden adlandırır. Burada, yeni kopyalanan çalışma sayfası olan etkin sayfaya “Sayfa1'in Kopyası” adını atar.

VBA Kopyalama çalışma sayfası - Örnek 2 - Adım 3

Adım 4: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8'e basın, “CopyAndRename()”i seçin ve Çalıştırın.

VBA Kopyalama çalışma sayfası - Örnek 2 - Adım 4

Adım 5: Kodu çalıştırdığınızda aynı çalışma kitabındaki “Sheet1” çalışma sayfasının kopyalandığını ve “Copy of Sheet1” olarak yeniden adlandırıldığını göreceksiniz.

VBA Kopyalama çalışma sayfası - Örnek 2 - Adım 5

İşte kodun tamamı:

Sub CopyAndRename()
ThisWorkbook.Worksheets(“Sheet1”).Copy After:=ThisWorkbook.Worksheets(“Sheet1”)
ActiveSheet.Name = “Copy of Sheet1”
End Sub


Örnek #3 – Çalışma Sayfasını Kopyala ve CSV Olarak Kaydet

Bu örnekte, “Sheet1” çalışma sayfası yeni bir çalışma kitabına kopyalanır ve ardından yeni çalışma kitabı SaveAs yöntemi ile CSV dosyası olarak kaydedilir.

Adım 1: Yeni modülde “CopyAndSaveAsCSV” adlı bir alt rutin başlatın.

Örnek 3 - Adım 1

Adım 2: Sonra, bir Çalışma Kitabı değişkeni “wbNew” bildiririz ve “Workbooks.Add” metodunu kullanarak yeni bir çalışma kitabı oluştururuz. Add metodu, açık çalışma kitapları koleksiyonuna yeni bir çalışma kitabı ekler ve bunu “wbNew” değişkenine atar.

Örnek 3 - Adım 2

Adım 3: Şimdi, çalışma sayfasını yeni çalışma kitabına kopyalamak için bir kod ekliyoruz. Bu satır, “Sheet1” adlı çalışma sayfasını kaynak çalışma kitabından (ThisWorkbook) wbNew çalışma kitabına kopyalar.

Kopyalama yöntemi kaynak çalışma sayfasında kullanılır ve Sonra parametresi, kopyalanan çalışma sayfasının wbNew çalışma kitabındaki son sayfadan sonra eklenmesini sağlayacak şekilde ayarlanır.

VBA Kopyalama çalışma sayfası - Örnek 3 - Adım 3

Adım 4:  Son olarak, yeni çalışma kitabını “wbNew.SaveAs” metodunu ve “FileFormat:=xlCSV” komutunu kullanarak CSV dosyası olarak kaydediyoruz.

Bu satır, wbNew çalışma kitabını SaveAs yöntemini kullanarak bir CSV dosyası olarak kaydeder . Dosya yolu ve adı “C:\Users\Vikram\Desktop\NewWorkbook.csv.” olarak belirtilir. FileFormat parametresi, Excel CSV dosya biçimini temsil eden xlCSV olarak ayarlanır.

VBA Kopyalama çalışma sayfası - Örnek 3 - Adım 4

Adım 5: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8'e basın, “CopyAndSaveAsCSV”yi seçin ve Çalıştırın.

Örnek 3 - Adım 5

Adım 6: Kodu çalıştırdığınızda sağlanan yola bir CSV dosyası kaydedilir.

Örnek 3 - Adım 6

KODUN TAMAMI:

Sub CopyAndSaveAsCSV()
Dim wbNew As Workbook
Set wbNew = Workbooks.Add
ThisWorkbook.Worksheets(“Sheet1”).Copy After:=wbNew.Sheets(wbNew.Sheets.Count)
wbNew.SaveAs “C:\Path\To\NewWorkbook.csv”, FileFormat:=xlCSV
End Sub


Örnek 4 – Çalışma Sayfasını Kopyala ve Değerleri Yapıştır

Bu örnekte, VBA Kopyalama çalışma sayfası kodu, "Sheet1"den kullanılan tüm aralığı yeni bir çalışma sayfasına kopyalar ve yalnızca değerleri yapıştırır (herhangi bir formül veya biçimlendirmeyi kaldırarak). `xlPasteValues` argümanına sahip PasteSpecial yöntemi yalnızca değerleri yapıştırmak için kullanılır.

Adım 1: Yeni modül, “CopyAndPasteValues()” adlı bir alt rutin oluşturarak başlar.

Örnek 4 - Adım 1

Adım 2: Şimdi iki Çalışma Sayfası değişkeni bildirin: “wsSource” ve “wsTarget.” VBA Değişkenleri, VBA kodunda çalışma sayfası nesnelerini depolamak ve düzenlemek için kullanılır.

Örnek 4 - Adım 2

Adım 3: Sonra, wsSource değişkenini geçerli çalışma kitabındaki (ThisWorkbook) “Sheet1” adlı çalışma sayfasına ayarlarız. Ayrıca Worksheets.Add yöntemini kullanarak yeni bir çalışma sayfası oluştururlar ve bunu wsTarget değişkenine atarlar.

Örnek 4 - Adım 3

Adım 4: wsSource çalışma sayfasından kullanılan aralığı (veri ve biçimlendirme içeren) kopyalamak için kodu sağlıyoruz. UsedRange özelliği, çalışma sayfasındaki veri veya biçimlendirme içeren tüm hücreleri kapsayan aralığı döndürür.

Örnek 4 - Adım 4

Adım 5: Sonra, değerleri yalnızca panodan wsTarget çalışma sayfasına yapıştırmak için kodu sağlıyoruz. Range(“A1”), değerlerin yapıştırılacağı hedef hücreyi belirtir.

xlPasteValues ​​bağımsız değişkenine sahip PasteSpecial yöntemi, formüller veya biçimlendirme hariç olmak üzere yalnızca değerlerin yapıştırılmasını sağlar.

Örnek 4 - Adım 5

Adım 6: Modülü kaydedin ve VBA’yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8’e basın, “CopyAndPasteValues()”ı seçin ve Çalıştırın.

Örnek 4 - Adım 6

Adım 7: Kodu çalıştırdığınızda yeni çalışma sayfasının oluşturulduğunu ve değerlerin yalnızca değer olarak yapıştırıldığını göreceksiniz.

Örnek 4 - Adım 7

KODUN TAMAMI:

Sub CopyAndPasteValues()
Dim wsSource As Worksheet, wsTarget As Worksheet
Set wsSource = ThisWorkbook.Worksheets(“Sheet1”)
Set wsTarget = ThisWorkbook.Worksheets.Add
wsSource.UsedRange.Copy
wsTarget.Range(“A1”).PasteSpecial xlPasteValues
End Sub


Dikkat Edilmesi Gereken Önemli Noktalar

  1. Çalışma sayfalarını kopyalarken, kopyalanan sayfanın nereye yerleştirileceğini belirtmek önemlidir. Bu, kopyanın hangi sayfadan sonra ekleneceğini belirleyen Copy yöntemindeki After parametresi kullanılarak yapılabilir.
  2. VBA Copy Worksheet'i başka bir çalışma kitabına kopyalamak istiyorsanız, “Workbooks.Add” yöntemini kullanarak yeni bir çalışma kitabı oluşturun ve bunu bir değişkene atayın. Daha sonra çalışma sayfasını kopyalarken yeni çalışma kitabına başvurmak için bu değişkeni kullanabilirsiniz.
  3. VBA Çalışma Sayfası Kopyalama ve yeniden adlandırma, kopyalanan sayfanın “ActiveSheet.Name” özelliğini kullanarak “Ad” özelliğine yeni bir ad atayarak yapılabilir.
  4. VBA Kopyala Çalışma Sayfasını CSV dosyası olarak kaydetmek için, uygun dosya yolu ile “SaveAs” yöntemini kullanın ve CSV formatında kaydetmek için “FileFormat” argümanını “xlCSV” olarak belirtin.
  5. VBA Çalışma Sayfasını Kopyala ve değerleri yapıştır, “PasteSpecial” yöntemini “xlPasteValues” bağımsız değişkeniyle kullan. Bu, yalnızca değerlerin yapıştırılmasını, formüllerin veya biçimlendirmelerin hariç tutulmasını sağlar.

1. Neden VBA kullanarak bir çalışma sayfasını yeni bir çalışma kitabına kopyalayamıyorum?

Bir çalışma sayfasını yeni bir çalışma kitabına kopyalamak, “Workbooks.Add” yöntemini kullanarak yeni bir çalışma kitabı oluşturmayı gerektirir. Çalışma sayfasını kopyalamadan önce bu adımı VBA kodunuza eklediğinizden emin olun.

2. Başka bir çalışma kitabından çalışma sayfasını açmadan nasıl kopyalayabilirim?

Başka bir çalışma kitabından bir çalışma sayfasını açmadan kopyalamak için ReadOnly parametresini True olarak ayarlayarak Workbooks.Open yöntemini kullanabilirsiniz. Bu, çalışma kitabını salt okunur modunda açmanıza, istediğiniz çalışma sayfasını kopyalamanıza ve ardından herhangi bir değişiklik yapmadan çalışma kitabını kapatmanıza olanak tanır.

İşte bir örnek:

Sub CopyFromClosedWorkbook()
Dim wbSource As Workbook
Set wbSource = Workbooks.Open(“C:\Path\To\SourceWorkbook.xlsx”, ReadOnly:=True)
wbSource.Worksheets(“Sheet1”).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
wbSource.Close SaveChanges:=False
End Sub


Bu örnekte, kapalı “SourceWorkbook.xlsx” çalışma kitabındaki “Sheet1”, kaynak çalışma kitabını düzenlenebilir modda açmadan geçerli çalışma kitabına kopyalanır.

3. Bir çalışma sayfasını yeni bir çalışma kitabına nasıl kopyalayıp kaydedebilirim?

Bir çalışma sayfasını yeni bir çalışma kitabına kopyalayıp kaydetmek için, çalışma sayfasını kopyaladıktan sonra SaveAs metodunu kullanabilirsiniz. İşte bir örnek:

Sub CopyAndSaveAsWorkbook()
Dim wbNew As Workbook
Set wbNew = Workbooks.Add
ThisWorkbook.Worksheets(“Sheet1”).Copy After:=wbNew.Sheets(wbNew.Sheets.Count)
wbNew.SaveAs “C:\Path\To\NewWorkbook.xlsx”
wbNew.Close SaveChanges:=False
End Sub


Bu örnekte, “Sheet1” çalışma sayfası yeni bir çalışma kitabına kopyalanır ve ardından yeni çalışma kitabı SaveAs metodu kullanılarak istenen dosya yolu ve adıyla kaydedilir. Son olarak, yeni çalışma kitabı herhangi bir ek değişiklik kaydedilmeden kapatılır.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...