"run time error 9 subscript out of range" hatası

TRuNsouL

Altın Üye
Katılım
10 Ağustos 2018
Mesajlar
53
Excel Vers. ve Dili
Excel 2016 TR
Altın Üyelik Bitiş Tarihi
05-03-2025
Arkadaşlar merhaba
Sub excel_olarak()
Application.ScreenUpdating = False
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs Environ("USERPROFILE") & "\Desktop\" & Sheets("Sayfa1").Range("A3").Value & ".xlsm"
.Close
End With
End Sub

Böyle bir makrom var.
Ben aktif çalışma sayfasını Sayfa1 in A3 hücresindeki adsoyada göre kaydetmeye çalışıyorum ama bu hatayı alıyorum. Yardımcı olabilir misiniz.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Merhaba, kodları aşağıdaki kodlar ile değiştiriniz.
Kod:
Sub excel_olarak()
Application.ScreenUpdating = False
baslik = Sheets("Sayfa1").Range("A3").Value
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs Environ("USERPROFILE") & "\Desktop \" & baslik & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
.Close
End With
End Sub
 

TRuNsouL

Altın Üye
Katılım
10 Ağustos 2018
Mesajlar
53
Excel Vers. ve Dili
Excel 2016 TR
Altın Üyelik Bitiş Tarihi
05-03-2025
Hocam merhaba bir hata aldım, resim olarak ekledim.
 

Ekli dosyalar

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Desktop klasörünün yolu farklı olabilir. Klasör yolunu kontrol ediniz, aynı kodları denedim ve hatasız kayıt yapıyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Dosyanızı kaydedip kapatın, yeniden açıp deneyin.
Yine de hata verirse hangi satırda hata verdiğini söyleyin.
 

TRuNsouL

Altın Üye
Katılım
10 Ağustos 2018
Mesajlar
53
Excel Vers. ve Dili
Excel 2016 TR
Altın Üyelik Bitiş Tarihi
05-03-2025
Hocam merhaba, .SaveAs Environ("USERPROFILE") & "\Desktop \" & baslik & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
bu satırda hata veriyor.
 

TRuNsouL

Altın Üye
Katılım
10 Ağustos 2018
Mesajlar
53
Excel Vers. ve Dili
Excel 2016 TR
Altın Üyelik Bitiş Tarihi
05-03-2025
Desktop klasörünün yolu farklı olabilir. Klasör yolunu kontrol ediniz, aynı kodları denedim ve hatasız kayıt yapıyor.
Hocam aslında dosya yolunda dikkat ederseniz C:\Users\ab213918\Desktop\ şeklinde yol var ama İzinle alakalı bir durum olabilir mi
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Bu satır kodun oluşturduğu yol bilgisi, bu aşamada yapmamız gereken Desktop klasörünün bilgisayardaki konumunu kontrol etmek.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Merhaba kayıt işlemi için kontrol satırlarını içeren şu kodları kullanabilirsiniz.
Kod:
Sub excel_olarak()
Application.ScreenUpdating = False
Dim klasor As Object, kontrol As String, yol As String

Set klasor = CreateObject("Scripting.FileSystemObject")

baslik = Sheets("Sayfa1").Range("A3").Value
If baslik = Empty Then
    MsgBox "Başlık bilgisi boş olamaz!, A3 hücresine başlık bilgisini yazınız.", vbExclamation, "Uyarı"
Exit Sub
End If

yol = Environ("USERPROFILE") & "\Desktop"
kontrol = klasor.FolderExists(yol)

If kontrol = True Then
    ActiveSheet.Copy
    With ActiveWorkbook
        .SaveAs yol & "\" & baslik & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
        .Close
    End With
Else
    MsgBox yol & " klasörü bulunamadı!"
End If
Application.ScreenUpdating = True
End Sub
 

TRuNsouL

Altın Üye
Katılım
10 Ağustos 2018
Mesajlar
53
Excel Vers. ve Dili
Excel 2016 TR
Altın Üyelik Bitiş Tarihi
05-03-2025
Hocam çok teşekkür ederim bu makro gayet düzgün çalıştı. Sadece aynı isimde bir excel varsa üzerine kaydetmek istiyormusunuz dediğimde hayır deyince hata veriyor. Mesela aynı isimde bir excel varsa adın sonuna 1,2 gibi isim verebilir miyiz ?
 
Üst