VBA ile kilitlediğimde Hata Mesajı...

maytro

Altın Üye
Katılım
19 Ağustos 2010
Mesajlar
16
Excel Vers. ve Dili
ecxel2007
Merhaba,

VBA ile farklı dosyadan veri çekiyorum, lakin VBA ile hücre kilitlediğimde;
Range("K3").CopyFromRecordset Rs de hata alıyorum acaba sorun nedir?

Hata aldığım Kod;
228233
Hücre Kilitleme Kodu;

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow As Object
ActiveSheet.Unprotect "123"
With Columns("K:V")
.Locked = False
.FormulaHidden = False
End With
Set LastRow = Sayfa1.Range("K104857:V104857").End(xlUp)
Columns("K:V").SpecialCells(xlCellTypeConstants, 23).Locked = True
şifre = "123"
ActiveSheet.Protect şifre
End Sub
 

faye_efsane

Altın Üye
Altın Üye
Katılım
1 Eylül 2008
Mesajlar
393
Excel Vers. ve Dili
2010 TR
2019 TR
Kilitli hücrelere veri yazdırmadan önce de ActiveSheet.Unprotect "123" ile sayfa korumasını kaldırmalısınız.
 

faye_efsane

Altın Üye
Altın Üye
Katılım
1 Eylül 2008
Mesajlar
393
Excel Vers. ve Dili
2010 TR
2019 TR
Range("K3").CopyFromRecordset Rs satırı hücrelere veri yazdığı için, bu satırdan önce sayfa koruma şifresinin açılmış olması gerekiyor.
Kod:
Sub VERİ()
    Dim Con As Object, Rs As Object, Sorgu As String
    Set Con = CreateObject("AdoDB.Connection")
    Set Rs = CreateObject("AdoDB.RecordSet")
   Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\ISGB.xlsm" & _
    ";Extended Properties=""Excel 12.0;Hdr=yes"""
    Sorgu = "Select [HEYET RANDEVU TARİHİ],[İŞYERİ HEKİMİNE YÖNLENDİRME TARİHİ],[NOTLAR],[CEVAPLAR],[İK MÜDÜRLÜĞÜNÜN YAZDIĞI NOTLAR],[İSGB YAZI TARİHİ],[İSGB YAZI NO],[İŞYERİ HEKİM KARARI],[ÇALIŞAMAZ İSE NEDENİ],[İGU KARARI],[ÇALIŞAMAZ İSE NEDENİ],[BARKODLU E-NABIZ BELGE DURUMU] From [Sayfa1$K2:V10000]"
    Rs.Open Sorgu, Con, 1, 1
    
    ActiveSheet.Unprotect "123"
    
    Range("K3").CopyFromRecordset Rs
    
    Rs.Close: Con.Close
      
    ActiveSheet.Protect "123"
    End Sub
 

maytro

Altın Üye
Katılım
19 Ağustos 2010
Mesajlar
16
Excel Vers. ve Dili
ecxel2007
Range("K3").CopyFromRecordset Rs satırı hücrelere veri yazdığı için, bu satırdan önce sayfa koruma şifresinin açılmış olması gerekiyor.
Kod:
Sub VERİ()
    Dim Con As Object, Rs As Object, Sorgu As String
    Set Con = CreateObject("AdoDB.Connection")
    Set Rs = CreateObject("AdoDB.RecordSet")
   Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\ISGB.xlsm" & _
    ";Extended Properties=""Excel 12.0;Hdr=yes"""
    Sorgu = "Select [HEYET RANDEVU TARİHİ],[İŞYERİ HEKİMİNE YÖNLENDİRME TARİHİ],[NOTLAR],[CEVAPLAR],[İK MÜDÜRLÜĞÜNÜN YAZDIĞI NOTLAR],[İSGB YAZI TARİHİ],[İSGB YAZI NO],[İŞYERİ HEKİM KARARI],[ÇALIŞAMAZ İSE NEDENİ],[İGU KARARI],[ÇALIŞAMAZ İSE NEDENİ],[BARKODLU E-NABIZ BELGE DURUMU] From [Sayfa1$K2:V10000]"
    Rs.Open Sorgu, Con, 1, 1
   
    ActiveSheet.Unprotect "123"
   
    Range("K3").CopyFromRecordset Rs
   
    Rs.Close: Con.Close
     
    ActiveSheet.Protect "123"
    End Sub
Ne kadar Teşekkür etsem az size... Ellerinize sağlık....
 

faye_efsane

Altın Üye
Altın Üye
Katılım
1 Eylül 2008
Mesajlar
393
Excel Vers. ve Dili
2010 TR
2019 TR
Rica ederim, iyi çalışmalar.
 
Üst