1

Konu: Excelde belirlenen hücrelere kilit koyma

Mevcut bir excel dosyasının sadece istedğim hücrelerine nasıl kilit koyabilirim?

2 Son düzenleyen, ozcan (26.04.2010 07:54:52)

Re: Excelde belirlenen hücrelere kilit koyma

Tools
Protection
Protect Sheet
seçip şifre verirsen Default olarak tüm hücreler kilitlidir.
Seçili hücrelerin kilidini kaldırmak için
Format
Cells
Protection
Locked'tan işareti kaldırmak lazım.
İstersen önce tüm excel sayfasını seçip yukarıdaki işlemle tüm hücrelerden kilidi kaldırabilirsin.
Sonra da kilit koyacağın hücrelere aynı şekilde Locked kısmını işaretleyebilirsin.

Eğer bu işlemi Foxprodan yapmak istiyorsan maalesef bilmiyorum.

3

Re: Excelde belirlenen hücrelere kilit koyma

Ben foxprodan kodla yapmayı sormuştum.
Yine de cevap verdiğiniz için teşekkür ederim.

4

Re: Excelde belirlenen hücrelere kilit koyma

Ozcan in tarifini Excel uzerinde macro kaydi yaparak kodlarını alabilir daha sonra fox ta duzenleyebilirsin

5

Re: Excelde belirlenen hücrelere kilit koyma

Önce table den bilgileri Excele kaydedip sonra ilgili hücreyi kilitlemek istiyorum.

6

Re: Excelde belirlenen hücrelere kilit koyma

Tüm forum sakinlerine merhaba

Visual Fox Pro
excelapplication=createobject("Excel.Application")

excelapplication.Workbooks.Add()
xsheet=excelapplication.ActiveSheet
xsheet.Cells(1,1).Locked=.f. && Serbest bırakılacak alanlar
xsheet.Protect("Password")

sanırım bu işinizi görür

7

Re: Excelde belirlenen hücrelere kilit koyma

B-C sutunlari disinda kilitli:


Visual Fox Pro
#Define xlTop -4160

Local oExcel
oExcel = Createobject("Excel.Application")
With oExcel
  .WorkBooks.Add
  .Visible = .T.
  VFP2Excel(_samples+'data\testdata.dbc',;
    'select emp_id,first_name,last_name,'+;
    'cast(EVL(birth_date,null) as d) as birth_date,'+;
    'CAST(CHRTRAN(notes,CHR(13),"") as M) as Notes from employee',;
    .ActiveWorkBook.ActiveSheet.Range('A1'))
 
  * This part is cosmetic
  With .ActiveWorkBook.ActiveSheet
    .UsedRange.VerticalAlignment = xlTop && set all to top
    With .Columns(5)
      .ColumnWidth = 80 && 80 chars width
      .WrapText = .T.
    Endwith
    .UsedRange.Columns.AutoFit
    .UsedRange.Rows.AutoFit
  Endwith
 
 
  *** Protection
  With .ActiveWorkBook.ActiveSheet
    .UsedRange.Locked = .T.
    .Range('B:C').Locked = .F.
    .Protect('mypassword')
  Endwith
Endwith
 
Function VFP2Excel
  Lparameters tcDataSource, tcSQL, toRange
  Local loConn As AdoDB.Connection, ;
    loRS As AdoDB.Recordset,;
    ix
  loConn = Createobject("Adodb.connection")
  loConn.ConnectionString = "Provider=VFPOLEDB;Data Source="+m.tcDataSource
  loConn.Open()
  loRS = loConn.Execute(m.tcSQL)
 
  For ix=1 To loRS.Fields.Count
    toRange.Offset(0,m.ix-1).Value = Proper(loRS.Fields(m.ix-1).Name)
    toRange.Offset(0,m.ix-1).Font.Bold = .T.
  Endfor
  toRange.Offset(1,0).CopyFromRecordSet( loRS )
  loRS.Close
  loConn.Close
Endfunc

8

Re: Excelde belirlenen hücrelere kilit koyma

Çetin Bey,
.Range('B:C').Locked = .F.     satırında "Ole error code 0x80070057: parametre hatalı" mesajı veriyor.

9

Re: Excelde belirlenen hücrelere kilit koyma

Çetin Üstadın yukarıda verdiği  kod bende hata vermeden çalıştı.

10

Re: Excelde belirlenen hücrelere kilit koyma

Bende normal calisiyor. Turkce excel kullanmiyorum, belki de ondandir. Sununla dene:

sys(3006,1033)

11 Son düzenleyen, smentes (26.04.2010 15:52:58)

Re: Excelde belirlenen hücrelere kilit koyma

Bende 2007 türkçe var.
Range sınıfının locked özelliği kurulamıyor hata mesajı geliyor.
Ama tüm sayfayı kilitleyebiliyorum. Tüm sayfada bir problem yok.
Şimdilik bilgileri girdikten sonra tüm sayfayı kilitliyorum.