• DİKKAT

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

Makro Kısaltmak

Katılım
2 Şubat 2013
Mesajlar
69
Excel Vers. ve Dili
2007 Türkçe
Aşağıda verdiğim makro, Excel çalışma sayfasında farklı ("A2:H"),("J2:Q") ve ("S2:Z") alanları, yarattığı word sayfalarına kopyalar. Sonuçta Belge1, Belge2 ve Belge3 word dosyaları oluşur. Aslında bu makro; bir makronun üç kez tekrarından ibarettir.
Şimdi; sadece seçili alanları farklı, diğer işlemleri aynı olan bu makroyu kısaltmak mümkün müdür? Teşekkürler.

Sub kopya()
'
Range("A2:H" & ActiveSheet.UsedRange.Rows.Count).Select
Selection.Copy
Set objword = CreateObject("Word.Application")
objword.Visible = True
objword.Documents.Add DocumentType:=wdNewBlankDocument
objword.Selection.PasteSpecial Link:=True

Range("J2:Q" & ActiveSheet.UsedRange.Rows.Count).Select
Selection.Copy
Set objword = CreateObject("Word.Application")
objword.Visible = True
objword.Documents.Add DocumentType:=wdNewBlankDocument
objword.Selection.PasteSpecial Link:=True

Range("S2:Z" & ActiveSheet.UsedRange.Rows.Count).Select
Selection.Copy
Set objword = CreateObject("Word.Application")
objword.Visible = True
objword.Documents.Add DocumentType:=wdNewBlankDocument
objword.Selection.PasteSpecial Link:=True

End Sub

Not: Makroda satırlar arası boşluk bırakıyorum. Düzeltme yapacağım yeri kolay bulmak için, bu durum makronun çalışmasında zaman kaybına neden olur mu? Yani bir mahsuru var mıdır?
 
Merhaba,
Aşağıdaki kodu dener misiniz?
Kod:
Sub kopya()
For i = 1 To 26 Step 9
    Range(Cells(2, i), Cells(ActiveSheet.UsedRange.Rows.Count, i + 7)).Select
    Selection.Copy
    Set objword = CreateObject("Word.Application")
    objword.Visible = True
    objword.Documents.Add DocumentType:=wdNewBlankDocument
    objword.Selection.PasteSpecial Link:=True
Next
End Sub
 
Merhaba,
Aşağıdaki kodu dener misiniz?
Kod:
Sub kopya()
For i = 1 To 26 Step 9
    Range(Cells(2, i), Cells(ActiveSheet.UsedRange.Rows.Count, i + 7)).Select
    Selection.Copy
    Set objword = CreateObject("Word.Application")
    objword.Visible = True
    objword.Documents.Add DocumentType:=wdNewBlankDocument
    objword.Selection.PasteSpecial Link:=True
Next
End Sub

Sayın dEdE...

Öncelikle ilginiz için teşekkür ederim. Yazdığız kod başarılı bir şekilde çalışıyor. Sizden ricam başta eklediğiniz iki satırın anlamını açıklar mısınız? Sağlıkla kalın.
 
...Sizden ricam başta eklediğiniz iki satırın anlamını açıklar mısınız? ....

'Merhaba,

i değişkeni sizin sütun numaranızdır.
A sütunu 1 , B sütunu 2 ... Z sütunu 26 şeklinde de ifade edilebilir.
Seçtiğiniz alan 8 sütun ve bir adet de boş sutun var sonra yine 8 sütun seçiyorsunuz.
Bu durumda For...Next döngüsü 1 den başlayıp 9 atlayarak devam ediyor.
Seçim işlemi ise i değişkenine 7 ekleyerek (1+7=8) sütun seçiyorsunuz.
Alt satırdaki işlemleri yapıp Next ile başa dönüyorsunuz.
Sonra 9 sütun atlayıp(step 9)10. sütundan başlayarak i+7 ile 10-18.sütunları seçiyorsunuz ve böyle devam ediyor.
Kod sayfasında F8 tuşuna basarak bu işlemlerin nasıl yapıldığını ve değişkenlerin aldıkları değerleri görebilirsiniz.

Hoşçakalın.
 
Sayın dEdE...

Duyarlılığını için çok teşekkür ederim. Sağlıkla kal.
 
Geri
Üst