- Katılım
- 11 Şubat 2023
- Mesajlar
- 48
- Excel Vers. ve Dili
- c,python,ardunio
- Altın Üyelik Bitiş Tarihi
- 11-02-2024
Merhaba,
Sub DosyalariKaydet()
Dim kayitKonumu As String
Dim dosyaAyirici As String
If InStr(Application.OperatingSystem, "Mac") > 0 Then
kayitKonumu = MacKayitKonumu()
dosyaAyirici = "/"
Else
kayitKonumu = "C:\KayitKlasoru\"
dosyaAyirici = "\"
End If
If Right(kayitKonumu, 1) <> dosyaAyirici Then kayitKonumu = kayitKonumu & dosyaAyirici
Dim ws As Worksheet
Dim dosyaAdi As String
Dim tarih As String
Dim sonTarih As String
sonTarih = ""
For Each ws In ThisWorkbook.Worksheets
If ws.Index < 5 Then ' 5. sayfadan önceki sayfaları atla
'Continue For ' Mac'te çalışmıyor, yerine If-Then bloğu içinde kullanılabilir
If ws.Index = 4 Then
Exit For ' 5. sayfaya kadar olan sayfaları atladıktan sonra döngüden çık
Else
GoTo sonraki_ws ' Bir sonraki sayfaya atla
End If
End If
tarih = Format(ws.Range("A9").Value, "yyyy-mm-dd") ' A9 hücresindeki tarihi yyyy-mm-dd formatına dönüştürür
If tarih <> sonTarih Then
dosyaAdi = kayitKonumu & tarih & ".xlsx"
ThisWorkbook.SaveCopyAs dosyaAdi
sonTarih = tarih
Else
Dim wb As Workbook
Set wb = Workbooks.Open(dosyaAdi)
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
wb.Save
wb.Close
End If
sonraki_ws:
Next
MsgBox "Dosyalar başarıyla kaydedildi."
End Sub
Function MacKayitKonumu() As String
Dim scriptStr As String
scriptStr = "return POSIX path of (path to desktop folder as text)"
MacKayitKonumu = MacScript(scriptStr)
End Function
Elimde bçyle bir kod var yapay zeka yardımı ile yazdım.Bu kod excel dosyamdaki sayfları 5. sayfadan itibaren tarih ve dosya ismiyle farklı bir excell olarak kaydetmesini istiyorum fakat bu kod ne mac de nede widonwsda çalışmamakta. Dosya konumlarını doğru yazdığıma eminim ne sorunu olabilir kodun?
Sub DosyalariKaydet()
Dim kayitKonumu As String
Dim dosyaAyirici As String
If InStr(Application.OperatingSystem, "Mac") > 0 Then
kayitKonumu = MacKayitKonumu()
dosyaAyirici = "/"
Else
kayitKonumu = "C:\KayitKlasoru\"
dosyaAyirici = "\"
End If
If Right(kayitKonumu, 1) <> dosyaAyirici Then kayitKonumu = kayitKonumu & dosyaAyirici
Dim ws As Worksheet
Dim dosyaAdi As String
Dim tarih As String
Dim sonTarih As String
sonTarih = ""
For Each ws In ThisWorkbook.Worksheets
If ws.Index < 5 Then ' 5. sayfadan önceki sayfaları atla
'Continue For ' Mac'te çalışmıyor, yerine If-Then bloğu içinde kullanılabilir
If ws.Index = 4 Then
Exit For ' 5. sayfaya kadar olan sayfaları atladıktan sonra döngüden çık
Else
GoTo sonraki_ws ' Bir sonraki sayfaya atla
End If
End If
tarih = Format(ws.Range("A9").Value, "yyyy-mm-dd") ' A9 hücresindeki tarihi yyyy-mm-dd formatına dönüştürür
If tarih <> sonTarih Then
dosyaAdi = kayitKonumu & tarih & ".xlsx"
ThisWorkbook.SaveCopyAs dosyaAdi
sonTarih = tarih
Else
Dim wb As Workbook
Set wb = Workbooks.Open(dosyaAdi)
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
wb.Save
wb.Close
End If
sonraki_ws:
Next
MsgBox "Dosyalar başarıyla kaydedildi."
End Sub
Function MacKayitKonumu() As String
Dim scriptStr As String
scriptStr = "return POSIX path of (path to desktop folder as text)"
MacKayitKonumu = MacScript(scriptStr)
End Function
Elimde bçyle bir kod var yapay zeka yardımı ile yazdım.Bu kod excel dosyamdaki sayfları 5. sayfadan itibaren tarih ve dosya ismiyle farklı bir excell olarak kaydetmesini istiyorum fakat bu kod ne mac de nede widonwsda çalışmamakta. Dosya konumlarını doğru yazdığıma eminim ne sorunu olabilir kodun?