Kapalı dosyanın korumasını kaldırma ve formül güncelleme

Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
İyi günler. GÜnaydın.
Bir klasörde bulunan 200 e yakın klon dosyanın tüm hücreleri, hücrelerdeki formülleri birebir aynı. Sayfa isimleri bile aynı. Hepsi aynı klasörde bulunuyor.
Tüm klon dosyaların sayfa koruma şifreleri aynı.
Bir klon dosya üzerinde yapılan değişikliği kaydet butonu ile diğer klonlara uygulatmak istiyorum. Mesela tablo başlıkları yada tabloların altında ki formüller.... gibi değişiklikleri değiştirici dosya ile tek seferde yapmak istiyorum.
Her tablonun en sağında birer buton var. bu butona basında kendi hizasındaki tabloları o klasördeki tüm dosyalarda güncellemesini istiyorum.
koruma parolası 1234


 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
İyi günler. Akıl veya destek verebilecek var mı?
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Konu günceldir iyi akşamlar.
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Şu kodu kendime uyarlamaya çalıştım fakat başaramadım.

C++:
Option Explicit

Sub Klasordeki_Dosyalari_Guncelle()
    Dim Klasor As Object, Kaynak_Klasor As String, Excel_Dosyasi As String, Dosya As Workbook
 
    Set Klasor = CreateObject("Shell.Application").BrowseForFolder(0, "Kaynak dosyaları içeren klasörü seçiniz...", 50, &H0)
 
    If Klasor Is Nothing Then
        MsgBox "İşleme devam edbilmek için klasör seçimi yapmalısınız!" & Chr(10) & _
        "İşleminiz iptal edilmiştir.", vbCritical
        Exit Sub
    ElseIf Klasor = "Masaüstü" Or Klasor = "Desktop" Then
        Kaynak_Klasor = Environ("UserProfile") & "\Desktop\"
    ElseIf Not Klasor Is Nothing Then
        Kaynak_Klasor = Klasor.Items.Item.Path
    End If
 
    On Error Resume Next
 
    Excel_Dosyasi = Dir(Kaynak_Klasor & "\*.xls*")
 
    Application.ScreenUpdating = False
 
    Do
        If Excel_Dosyasi <> "" And Excel_Dosyasi <> ThisWorkbook.Name Then
            DoEvents
            Application.DisplayAlerts = False
            Set Dosya = Workbooks.Open(Kaynak_Klasor & "\" & Excel_Dosyasi, True)
            Application.DisplayAlerts = True
            Dosya.Close True
            Excel_Dosyasi = Dir
        Else
            Excel_Dosyasi = Dir
        End If
    Loop While Excel_Dosyasi <> ""
 
    Set Dosya = Nothing
    Set Klasor = Nothing
 
    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Q4 deki tablo için örnek kod:
Kod:
Sub test()
'Q4 deki tablo için örnek
Dim yol As String, dosya As String

    yol = "C:\Test\"    'dosya yolunu belirleyiniz.
    Application.ScreenUpdating = False
    dosya = Dir(yol & "*.xls*")
        Do While dosya <> ""
        
            If dosya = ThisWorkbook.Name Then
                GoTo gec:
            End If
        
            Range("Q4:V17").Copy
            Workbooks.Open yol & dosya
            ActiveSheet.Unprotect Password:="1234"

            Range("Q4").PasteSpecial
            
            ActiveWorkbook.Save
            ActiveSheet.Protect Password:="1234"
            ActiveWorkbook.Close
gec:
            dosya = Dir()
        Loop
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "İşleminiz Bitti.", vbInformation
End Sub
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Yardım için teşekkür ederim.
Şu kodlarda hata verdi: runtime error 1004 method open of object workbooks failed
Workbooks.Open yol & dosya
Amacım : belirli bir hücredeki formülü olduğu gibi tüm dosyalarda sayfa korumasını kaldırarak hücreye yapıştırmak ve tekrar sayfa koruma şifresi ile kaydedip kapatmak.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Yol ismini kendinize göre uyarladınız değil mi?
Makro hiç bir dosyayı mı açmadı, yoksa bazı dosyaları açıp çalıştı mı?
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
evet uyarladım ama hiç çalışmadan bu hatayı verdi.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
"Application.DisplayAlerts = False" yaparak deneyelim.

Kod:
Sub test()
'Q4 deki tablo için örnek
Dim yol As String, Dosya As String

    yol = "C:\Test\"    'dosya yolunu belirleyiniz.
    Application.ScreenUpdating = False
    Dosya = Dir(yol & "*.xls*")
        Do While Dosya <> ""
        
            If Dosya = ThisWorkbook.Name Then
                GoTo gec:
            End If
        
            Range("Q4:V17").Copy
            Application.DisplayAlerts = False
            Workbooks.Open yol & Dosya
            Application.DisplayAlerts = True
            ActiveSheet.Unprotect Password:="1234"

            Range("Q4").PasteSpecial
            
            ActiveWorkbook.Save
            ActiveSheet.Protect Password:="1234"
            ActiveWorkbook.Close
gec:
            Dosya = Dir()
        Loop
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "İşleminiz Bitti.", vbInformation
End Sub
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Yİne bu hatayı veriyor aynı satırda.
runtime error 1004 method open of object workbooks failed

Eğer yol isminin sonuna "\" koymazsam, hemen işlem yapmadığı halde işlem bitti uyarısı çıkıyor.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
O "\" karakteri koymamız lazım, konulmazsa klasör yolu eksik kalır.
Sizin kendi verdiğiniz örneği denediğinizde ilk dosya açılıyor muydu?
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Yok hayır o zaten hiç çalışmadı :)
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Çalışıyor da içinde bir aksiyon yok. Aç/kapa yapılmış. Bir de o kodu size uyarlayalım:
Kod:
Sub Klasordeki_Dosyalari_Guncelle()
    Dim Klasor As Object, Kaynak_Klasor As String, Excel_Dosyasi As String, Dosya As Workbook
 
    Set Klasor = CreateObject("Shell.Application").BrowseForFolder(0, "Kaynak dosyaları içeren klasörü seçiniz...", 50, ThisWorkbook.Path)
 
    If Klasor Is Nothing Then
        MsgBox "İşleme devam edbilmek için klasör seçimi yapmalısınız!" & Chr(10) & _
        "İşleminiz iptal edilmiştir.", vbCritical
        Exit Sub
    ElseIf Klasor = "Masaüstü" Or Klasor = "Desktop" Then
        Kaynak_Klasor = Environ("UserProfile") & "\Desktop\"
    ElseIf Not Klasor Is Nothing Then
        Kaynak_Klasor = Klasor.Items.Item.Path
    End If
 
    On Error Resume Next
 
    Excel_Dosyasi = Dir(Kaynak_Klasor & "\*.xls*")
 
    Application.ScreenUpdating = False
 
    Do
        If Excel_Dosyasi <> "" And Excel_Dosyasi <> ThisWorkbook.Name Then
            DoEvents

            Range("Q4:V17").Copy
            Application.DisplayAlerts = False
            Set Dosya = Workbooks.Open(Kaynak_Klasor & "\" & Excel_Dosyasi, True)
            Application.DisplayAlerts = True
            
            Dosya.Unprotect Password:="1234"

            Dosya.ActiveSheet.Range("Q4").PasteSpecial
            
            Dosya.Protect Password:="1234"
            Dosya.Save
            Dosya.Close
            Excel_Dosyasi = Dir
        Else
            Excel_Dosyasi = Dir
        End If
    Loop While Excel_Dosyasi <> ""
 
    Set Dosya = Nothing
    Set Klasor = Nothing
 
    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Çok uğraştırdım fakat olmuyor. Ne parola açılıyor nede belirttiğim hücredeki formül ilgili dosyalara taşınıyor.
2 - 3 dakika bekleyip işlem bitti diyor ama açıp bakınca hiç bir şey değişmemiş gibi
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Forum arkadaşlarımızdan "runtime error 1004 method open of object workbooks failed" hatası ile ilgili fikri olan paylaşabilirse memnun olurum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Paylaştığınız örnek dosyalarda sayfa koruması sanırım 1234 değil.
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Evet haklısınız 1234 değil 2142542 olacaktı.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerilen kodlarda koruma şifrelerini değiştirip deneyerek sonucu kontrol edebilirsiniz.
 
Üst