Aşağıdaki makroyu kullanınız. Sub SatirlariDosyalaraAktar4() 'makro: Mesut Akcan 'mesutakcan.blogspot.com '29 Kasım 2020 Dim yenidosya As Workbook Application.ScreenUpdating = False xSutunu = "A" 'X olan sütun adı klasor = ActiveWorkbook.Path & "\" SonDoluSatir = Range(xSutunu & Rows.Count).End(xlUp).Row For satir = 1 To SonDoluSatir hucre = xSutunu & Trim(Str(satir)) If Range(hucre).Value = "X" Or satir = SonDoluSatir Then If basla = 0 Then basla = satir + 1 Else bitis = IIf(satir = SonDoluSatir, SonDoluSatir, satir - 1) Range(Trim(Str(basla)) & ":" & Trim(Str(bitis))).EntireRow.Copy dosyaAdi = Range(xSutunu & basla - 1).Offset(0, 1).Value Set yenidosya = Workbooks.Add With yenidosya .Sheets(1).Paste .SaveAs Filename:=klasor & dosyaAdi .Close End With basla = satir + 1 End If End If DoEvents Next Application.ScreenUpdating = True MsgBox "İşlem Tamam!" End Sub < Bu mesaj bu kişi tarafından değiştirildi akcan -- 13 Temmuz 2023; 11:20:43 > |
Excel satırları belli sayılarda bölme (2. sayfa)
-
-
quote:
Orijinalden alıntı: akcan
Kodları biraz geliştirdim.
Satır sayısını başlangıçta kendiniz belirleyebiliyorsunuzSub SatirlariDosyalaraAktar()
'makro: Mesut Akcan
'29 Temmuz 2019
Dim SatirSayisi As Long
Dim Dn As Integer, n As Integer
Dim Klasor As String, satirlar As String, Dosya As String
SatirSayisi = Val(InputBox("Dosyalara bölünecek satır sayısını giriniz:"))
If SatirSayisi < 1 Then Exit Sub
Klasor = ActiveWorkbook.Path & "\"
For n = 1 To Cells.SpecialCells(xlLastCell).Row Step SatirSayisi
satirlar = Trim(Str(n)) & ":" & Trim(Str(n + SatirSayisi - 1))
Rows(satirlar).EntireRow.Copy
Workbooks.Add
ActiveSheet.Paste
Dn = Dn + 1
Dosya = "Dosya_" & Format(Dn, "000")
ActiveWorkbook.SaveAs Filename:=Klasor & Dosya
ActiveWorkbook.Close
DoEvents
Next
MsgBox "İşlem Tamam!"
End Sub
Kodda
If SatirSayisi <span><</span> 1 Then Exit Sub
satırı forum tarafından otomatik değiştiriliyor.
Orjinali şu:
If SatirSayisi < 1 Then Exit Sub
ayrıca kodlara https://mesutakcan.blogspot.com/2022/12/excel-satrlarn-belli-sayda-bolme-ve.htmlmerhaba kod harika çalışıyor elinize sağlık. Ancak bir küçük ekleme rica etsem parçalara böldüğü veride header kısmı sadece 1. parçada çıkıyor malesef.
Plaka Şehir Nüfus
34 İstanbul 17m
35 İzmir 4,3m
gibi bir datada her excel dosyasının başında Plaka Şehir Nüfus headeri eklense şahane olacak.
-
İsteğinize göre kodları değiştirdim. Umarım işinizi görür.
'Excel sayfasındaki verileri istenilen satır sayısı kadar dosyalara böler
'Başlık satırı varsa bölünen dosyalara başlık ekleme özelliği eklendi.
Sub SatirlariDosyalaraAktar2_v2()
'makro: Mesut Akcan
'19 Şubat 2021
'mesutakcan.blogspot.com
Dim SatirSayisi As Long
Dim dosyaNo As Integer, n As Integer
Dim klasor As String, satirlar As String, Dosya As String
SatirSayisi = Val(InputBox("Dosyalara bölünecek satır sayısını giriniz:", , 100))
If SatirSayisi < 1 Then
MsgBox "Satır sayısı 1 veya daha büyük olmalı"
Exit Sub
End If
awbp = ActiveWorkbook.Path 'aktif dosya kayıt klasörü
klasor = InputBox("Dosyaların kaydedileceği klasör:", , awbp)
If Right(klasor, 1) <> "\" Then klasor = klasor & "\"
bsvar = MsgBox("Başlık satırı var mı?", vbYesNo)
If bsvar = vbYes Then bs = 2 'başlık satırı varsa başlama satırı 2
For n = bs To Cells.SpecialCells(xlLastCell).Row Step SatirSayisi
satirlar = Trim(Str(n)) & ":" & Trim(Str(n + SatirSayisi - 1))
If bsvar Then satirlar = "1:1," & satirlar
Range(satirlar).Copy
Workbooks.Add
ActiveSheet.Paste
dosyaNo = dosyaNo + 1
Dosya = "Dosya_" & Format(dosyaNo, "000")
ActiveWorkbook.SaveAs Filename:=klasor & Dosya ', FileFormat:=xlText
ActiveWorkbook.Close
DoEvents
Next
MsgBox "İşlem Tamam!"
End Sub
Kodları şurada da görebilirsiniz:
mesutakcan.blogspot.comExcel satırlarını belli sayıda bölme ve dosya veya sayfalara aktarmahttps://mesutakcan.blogspot.com/2022/12/excel-satrlarn-belli-sayda-bolme-ve.html
< Bu mesaj bu kişi tarafından değiştirildi akcan -- 13 Temmuz 2023; 11:26:25 >
-
quote:
Orijinalden alıntı: akcanİsteğinize göre kodları değiştirdim. Umarım işinizi görür.
'Excel sayfasındaki verileri istenilen satır sayısı kadar dosyalara böler
'Başlık satırı varsa bölünen dosyalara başlık ekleme özelliği eklendi.
Sub SatirlariDosyalaraAktar2_v2()
'makro: Mesut Akcan
'19 Şubat 2021
'mesutakcan.blogspot.com
Dim SatirSayisi As Long
Dim dosyaNo As Integer, n As Integer
Dim klasor As String, satirlar As String, Dosya As String
SatirSayisi = Val(InputBox("Dosyalara bölünecek satır sayısını giriniz:", , 100))
If SatirSayisi < 1 Then
MsgBox "Satır sayısı 1 veya daha büyük olmalı"
Exit Sub
End If
awbp = ActiveWorkbook.Path 'aktif dosya kayıt klasörü
klasor = InputBox("Dosyaların kaydedileceği klasör:", , awbp)
If Right(klasor, 1) <> "\" Then klasor = klasor & "\"
bsvar = MsgBox("Başlık satırı var mı?", vbYesNo)
If bsvar = vbYes Then bs = 2 'başlık satırı varsa başlama satırı 2
For n = bs To Cells.SpecialCells(xlLastCell).Row Step SatirSayisi
satirlar = Trim(Str(n)) & ":" & Trim(Str(n + SatirSayisi - 1))
If bsvar Then satirlar = "1:1," & satirlar
Range(satirlar).Copy
Workbooks.Add
ActiveSheet.Paste
dosyaNo = dosyaNo + 1
Dosya = "Dosya_" & Format(dosyaNo, "000")
ActiveWorkbook.SaveAs Filename:=klasor & Dosya ', FileFormat:=xlText
ActiveWorkbook.Close
DoEvents
Next
MsgBox "İşlem Tamam!"
End Sub
Kodları şurada da görebilirsiniz:
mesutakcan.blogspot.comExcel satırlarını belli sayıda bölme ve dosya veya sayfalara aktarmahttps://mesutakcan.blogspot.com/2022/12/excel-satrlarn-belli-sayda-bolme-ve.htmlharikasınız beni çok büyük bir dertten kurtardınız. ellerinize sağlık tekrardan çok teşekkür ederim.
-
Tüm kodları blog sayfama ekledim.
mesutakcan.blogspot.comExcel satırlarını belli sayıda bölme ve dosya veya sayfalara aktarmahttps://mesutakcan.blogspot.com/2022/12/excel-satrlarn-belli-sayda-bolme-ve.html
< Bu mesaj bu kişi tarafından değiştirildi akcan -- 17 Haziran 2023; 13:59:38 > -
Merhaba hocam, öncelikli verdiğiniz bilgiler için çok teşekkür ederim yaptığımız işte çok işime yaradı. Bu (üst satırları da tutarak veya ekleyerek) bölümlediğimiz dosyaları tekrar birleştirmek için bir makro kodunuz var mıdır? örnek veriyorum 10 adet bölünmüş excel de 9 sutun başlıklı ve binlerce satırlık veriler var elimde bunu birleştirebilir miyiz? aslında birleştirmeyi tek excel de kopyala yapıştır ile de uzun uzadıya yapabilirim ancak örnek veriyorum tc ad soyad doğum tarihi doğum yeri gibi sutunlardan bazıları eksik olduğunda tc yi tc ye ad ı ad a boş bile olsa denk getirerek birliştirebilen bi formül olabilir mi diye size danışmak istedim.
-
merhaba
129000 satırlı bir excel dosyam var. bunları 9000 satır şeklinde bölmek istiyorum. sizin makronuzu kullandım ancak (For n = 1 To Cells.SpecialCells(xlLastCell).Row Step SatirSayisi) stırı hata veriyor "overflow) hatasıKod
Yığını: -
129000 satırlı kimlik numaralı içeren bir excel dosyam var. bunu 9000 satır olarak bölmek istiyorum. sizin makroyu kullandığımda overflow hatası veriyor
-
Dim dosyaNo As Integer, n As Integer
Satırını
Dim dosyaNo As Integer, n As Long
olarak değiştirip deneyin.
< Bu mesaj bu kişi tarafından değiştirildi akcan -- 4 Şubat 2023; 14:4:39 >
< Bu ileti mobil sürüm kullanılarak atıldı > -
Mesut Bey, bu komutu başlıkları ile ayırma şeklinde revize eder misiniz, her yerde aradım bu tarzda kod paylaşmamışsınız bulamadım.
-
Sub SatirlariDosyalaraAktar_v8()
kodlarını uygulayın. Çalıştırıldığında "Başlık satırı var mı?" diye soracak.
kodlar bu sayfada
mesutakcan.blogspot.comExcel satırlarını belli sayıda bölme ve dosya veya sayfalara aktarmahttps://mesutakcan.blogspot.com/2022/12/excel-satrlarn-belli-sayda-bolme-ve.html
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X