Hücre Biçimini Koruyan Kopyala Yapıştır Yapma

  • Konuyu başlatan Konuyu başlatan Malitogan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
6 Tem 2023
Mesajlar
22
Excel Versiyonu
Excel 2021
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhabalar.
500 personelden fazla işçinin yer aldığı puantaj tablomuz var. Bu dosyada personel T.C. kimlik numaraları ile ad ve soyad hücreleri boş. Tabloyu kullanacak personel arkadaşlar buraları büyük ihtimalle manuel doldurmak yerine başka bir tablodan Ctrl+C Ctrl+V ile dolduracaklarından tablonun formatı bozulacaktır. Yazı fontları ile boyutları, hücre dolgu renkleri, çerçeveler vs. Hücrelerin belirlenmiş biçimlendirmelerini korumak için ne yapmalıyım? Bu konuda sayfa koruması yeterli olmuyor. (Örnek olması için ufaltılmış dosyayı ekliyorum)
İyi akşamlar.
 

Ekli dosyalar

Dosyanıza bakmadım, sadece başlıktan yola çıkarak şöyleyeceğim şey: "Özel Yapıştır" seçeneğini deneyin olacaktır.

Linkleri inceleyin lütfen:



 
@admin
Hocam teşekkürler. Dosyayı ben kullanacak olsam problem yok da.. Çok Excel bilgisi olmayan personel arkadaşlar kullanacak. O yüzden de dosyada bozulmalar oluyor.
 
O zaman "Özel Yapıştır" kullanmayı öğreteceksiniz :)

Makrolar ile kopyala dedikten sonra "yapıştır" engellenip, sadece "özel yapıştır" aktif edilir mi onu bilemedim. Bu konuların piri @Ömer BARAN hocamdır.

Ya da;
Oturup biçimleri tek tek kodlayacaksınız, veriler kullanıcı bozduktan sonra kaydederken, kapatırken vs işlem sonrası otomatik düzeltilecek.
 
B ve C sütunlarında seçim yaptığınızda yan tarafında yapıştır isimli bir buton gelecek. Başka dosyadan hücre kopyalama işlemi de yapılsa, yapıştırma işlemini değer olarak gerçekleşecek ve hücrenin yapısı bozulmayacak.
 

Ekli dosyalar

@okutkan
Hocam iyi çalışmalar.
Dosya için hazırladığınız makroda ufak bir düzeltme ve/veya ekleme yapabilir miyiz?
Şöyle ki; yapıştırma işlemi korumalı sayfada da çalışabilmeli, B7:C1000 aralığından farklı bir hücreye tıklandığında yapıştırma işlemi gerçekleşmemeli, B7:C1000 aralığında kilitli hücrelerde yapıştırma işlemi olmamalı ve birleştirilmiş hücrede de yapıştırma işlemi yapılabilmeli.
Şimdiden yardımlarınız için teşekkür ederim.
 
Kodların başına:
Kod:
Sayfa1.Unprotect "parola"

Bitimine de:
Kod:
Sayfa1.Protect "parola"

yazmanız yeterli olur.

"parola" ve "Sayfa1" kısımlarını kendinize göre uyarlarsınız.
 
@admin
Kodu dediğiniz gibi yaptım. Sayfa aktif oluyor. ancak yapıştırma butonu çalışmıyor. Yapıştırılacak değer bulunamadı uyarı mesajı geliyor. Ama Ctrl-V ile yapıştırıyor. Bunda da değer yapıştıracağımız hücreyi önceden seçip yapıştırılacak değeri Ctrl+C yapıp yapıştırılacak hücreye Ctrl+V yaparsak yapıştırıyor. Ctrl+C ile değeri kopyalayıp herhangi bir hücreyi sonra seçersek yine yapıştırma yapmıyor.

Kod:
Private Sub CommandButton1_Click()
Sayfa2.Unprotect "1969"
On Error GoTo hata
Selection.PasteSpecial xlPasteValues
Exit Sub
hata:
MsgBox "Yapıştırılacak değer bulunamadı.", vbInformation, "Uyarı"
Protect "1969"
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sayfa2.Unprotect "1969"
If Intersect(Target, Range("b7:C1000")) Is Nothing Then Exit Sub
'birleştirilmiş hücre ise kod çalışmaması için alttaki satırı aktif edebilirsiniz
'If Selection.Count > 1 Then Exit Sub
Set hcr = ActiveCell
CommandButton1.Left = hcr.Left + hcr.Width
CommandButton1.Top = hcr.Top
Protect "1969"
End Sub
 
"Sayfa koruma eklenmeli.." demişsiniz, verdiğim kodlar korumayı kaldırır ve tekrar ekler.
Probleminizin ne olduğunu bilmiyorum.
@okutkan hocam sanırım daha hakim, O'nun cevabını beklemenizde fayda var.
 
@admin
Kodu, 12'nci mesajda yazdığım şekliyle kullandığım zaman farklı bir şey daha fark ettim.
İlginç ama, B7:C1000 aralığında herhangi bir hücreye tıkladığımda sayfa koruması aktif oluyor, başka bir hücreye tıkladığımda da sayfa koruması kalkıyor.
 
Başka bir sayfada kopyalayarak yapıştırmak için ;
Başka sayfadaki bilgiler seçiler ctrl+c ile kopyalanır.
Yapıştırılmak istenilen alana mause ilr tıklanır ve komut düğmesine basılır.
Kodun çalışması için aşağıdaki şekilde revize edilmeli

Unprotect "1969"
on error resume next
Sayfa2.Range(Selection.Address).PasteSpecial xlPasteValues
on error goto 0
Protect "1969"
 
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt