Sayfayı 100'er satırlık csv dosyalara bölerek kaydetme (Excel Macrosu var)

Cevapla
mountain_human
Mesajlar: 7
Kayıt: 12 Mar 2020, 11:34
İşletim Sisteminiz: Pardus 21, Ubuntu 19.04
LibreOffice Sürümü: 7.0.4.2

Sayfayı 100'er satırlık csv dosyalara bölerek kaydetme (Excel Macrosu var)

Mesaj gönderen mountain_human »

Çok büyük bir sayfayı 100'er satırlık csv dosyalara bölerek kaydetme.
İyi günler,

Elimde her ay 7-12 bin satırlık fatura dosyaları oluyor. Bunları ana programa aktarırken ana program en fazla 101 satırlık csv dosya kabul ediyor. Her bölümün ilk satırının da sabit bir başlık satırı olması gerekiyor. Her bir dosyaya ardıl numaralar vermek gerekiyor.

Örnek;

- Elimde 10000 (on bin) satırlık mayıs.ods dosyası var.

- İlk satırında (başlık satırı) Tarih, Açıklama, FaturaNo, Tutar, Matrah, KDV gibi sütun başlıkları var. (Dosya bölündüğünde bu satırın tüm csv dosyalarının ilk satırlarında sabit olarak yer alması gerekiyor.)

- mayıs.ods dosyasını 100'er satırlık bölümlere ayırıp ilk satırlarına ana dosyanın ilk satırındaki başlığı ekleyerek;

şubat-001.csv
şubat-002.csv
...
...
...
şubat-099.csv
şubat-100.csv

biçiminde bölen bir makro gerekiyor.


Şimdi gelelim soruna:

Bu makroyu Excel forumlarından yardımla elde ettim. Ancak makro LibreOffice’de çalışmıyor. Bizim de tüm bilgisayarlarımız Linux (ubuntu ve pardus) ve parasını vermediğimiz programı kullanmamız yasak (yani excel kullanamıyoruz).

Sub CSV()
'
' CSV Makro
'

'
isim = [B5]
belge = ThisWorkbook.Path & "\" & isim & ".csv"
Range("B3").Select
Selection.Copy
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("B4").Select
Selection.Copy
Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("C4").Select
Sheets("3").Select
Sheets("3").Copy
ActiveWorkbook.saveas Filename:=belge, _
FileFormat:=xlCSV, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWindow.Close
Sheets("2").Select <---Hatalı görünen satır
Range("C4").Select
Selection.ClearContents
End Sub

Macro
BASIC Çalışma zamanı hatası
‘1’
Type: com.sun.star.container.NoSuchElementException
Message:

Hatası veriyor ve iş yapmıyor.

Yardımlarınız için şimdiden teşekkürler, saygılar.
Cevapla