Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Excel'e Yeni Başlayanlar
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Excel'e Yeni Başlayanlar Excel kullanmaya yeni başladıysanız sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 08-02-2018, 17:24   #1
tolga690
 
Giriş: 09/10/2015
Şehir: elazığ
Mesaj: 1
Excel Vers. ve Dili:
2016 VBA
Varsayılan Excel dosyasını belli satır sayısı ile yeni dosyalara bölmek?

Merhabalar,

Excel makrolarında yeniyim. Şöyle bir ihtiyacım vardı. Elimde A'dan P'ye sutun, 20000 satırlı bir excel dosyası var.

1. satırda sütünların başlığı var. Ad, id, link vs.. gibi.
Amacım bu datayı ilk satır hepsinde aynı olmak üzere 50 satır halinde bölerek yeni dosyalar kaydetmek.
Bu çalışmaya çok ihtiyacım var ama bir türlü çözüm üretemedim. Forumda şöyle bir koda denk geldim fakat çalıştıramadım hata yapıyorum sanırım.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Baska_Dosyaya_Yaz()
Dim i           As Long
Dim j           As Integer
Dim SonKol      As Integer
Dim Yol         As String
Dim Dosya_Ad    As String
Dim SatirAdedi  As Integer

Yol = ThisWorkbook.Path & Application.PathSeparator
SatirAdedi = 10
Application.ScreenUpdating = False
SonKol = [IV1].End(1).Column
For i = 2 To [A65536].End(3).Row Step SatirAdedi
   j = j + 1
   Dosya_Ad = "Dosya-" & j
    Set NewBook = Workbooks.Add
        With NewBook
            .Title = "www.excel.web.tr Tarafından Programatik Olarak Oluşturuldu"
            .Subject = "Dosya Bölme"
            .SaveAs Filename:=Yol & Dosya_Ad & ".xls"
        End With
        ActiveWorkbook.Close True
    Workbooks.Open Filename:=Yol & Dosya_Ad & ".xls"
    
    Windows("DOSYA_AYIR.xls").Activate
    Range(Cells(1, "A"), Cells(1, SonKol)).Select
    Selection.Copy
    Windows(Dosya_Ad & ".xls").Activate
    Sheets(1).Range("A1").Select
    ActiveSheet.Paste
    Windows("DOSYA_AYIR.xls").Activate
    Range(Cells(i, "A"), Cells(i + SatirAdedi - 1, SonKol)).Select
    Selection.Copy
    
    Windows(Dosya_Ad & ".xls").Activate
    Sheets(1).Range("A2").Select
    ActiveSheet.Paste
    [A1].Select
    ActiveWorkbook.Close True
    
    Application.CutCopyMode = False
        
Next i
[A1].Select
MsgBox "Aktarım İşlemi Bitmiştir..........."
End Sub
tolga690 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-02-2018, 23:52   #2
Korhan Ayhan
Moderatör
 
Korhan Ayhan kullanıcısının avatarı
 
Giriş: 15/03/2005
Şehir: ANTALYA
Mesaj: 23,217
Excel Vers. ve Dili:
OFFICE 2013-2016 PRO TR
Varsayılan

Aşağıdaki kodu deneyiniz.

Dosyanızın bulunduğu bölümde "Yedekler" isimli bir klasör oluşur ve dosyalarınız "Dosya_1.xlsx" şeklinde artarak gidecek şekilde isimlendirilir.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Tabloyu_Dosyalara_Böl()
    Dim K1 As Workbook, S1 As Worksheet, K2 As Workbook, S2 As Worksheet, X As Long, Say As Long, Zaman As Double, Satir As Variant
    
    Zaman = Timer
    
    Satir = Application.InputBox("Tablonuzu kaç satırlık dosyalara bölmek ister siniz?", "Satır Sayısı Belirleme", 50)
    If Satir = "" Or Satir = 0 Then Exit Sub
    
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Worksheets("Sayfa1")
    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    If Dir(K1.Path & "\Yedekler", vbDirectory) = "" Then MkDir (K1.Path & "\Yedekler")
    Say = 1
    
    For X = 2 To Son Step Satir
        Set K2 = Workbooks.Add(1)
        Set S2 = K2.Worksheets(1)
        S1.Range("A1:P1").Copy S2.Range("A1")
        S1.Range("A" & X & ":P" & X + Satir - 1).Copy S2.Range("A2")
        K2.SaveAs K1.Path & "\Yedekler\Dosya_" & Say & ".xlsx"
        K2.Close
        Say = Say + 1
    Next
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
__________________
.
.
.

Soru sormadan önce forumumuzun aşağıdaki
bölümlerini incelediğinizde birçok sorunuza yanıt bulabilirsiniz.


Excel Dersanesi
Uygulamalı Excel Eğitimi
Excel İçin Örnek Uygulamalar
Video Dersane (***Altın Üyelere Özel***)

Lütfen sorularınızın çözümlendiğine dair geri dönüş mesajı yazınız...!
Lütfen yazım ve forum kurallarına uyalım...!
Lütfen sorularımızı açık ve net bir dille ifade edelim...!



FORUM KURALLARI
Korhan Ayhan Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 18:39


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Rampa- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Şişli Avukat- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kağıt Bardak- Çorlu Havuz- Çorlu Havuz- Çorlu Perde Yıkama- Okul Danışmanlık- ADR'li taşıma kabı imalatı- Mekanik Tesisat- Çorlu Grafik Tasarım- Çorlu Sondaj- Çorlu Etüt- Futbol Cafe- Beylikdüzü Temizlik- Çorlu Kurs- Çorlu Ders- İzmit Mimar- Hurda Bakır Kablo- Hurda Bakır Kablo- Çorlu Pronet- Çorlu Yönetim- Çorlu Apartman Yönetimi- Çorlu Marangoz- Çorlu Avukat- Çorlu Su Arıtma- Çorlu Kompresör-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden