• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

hücre içeriğinin silinememesi

Katılım
10 Ekim 2016
Mesajlar
8
Excel Vers. ve Dili
office 2013
Arkadaşlar selam,
Sayfa1 de yazdığım verilerin kod yordamıyla Sayfa2 ye taşınıyor. Sayfa2 den kullanıcının verileri silmesi nasıl engellenir?
Excel in içindeki sayfayı koru işlevini yaptığım zaman sayfa2 ye veri yazılamıyor mesajı veriyor.
Bu konuda yardımcı olabilir misiniz
 
Macro kodlarınızda Unprotect ve Protect komutlarını kullanırsanız sorununuz çözülür.
 
Merhaba.

Syfa2'ye veri yazan kodlarınızı aşağıdaki gibi düzenleyebilirsiniz.
.
Kod:
[FONT="Arial Narrow"][B]Sub MEVCUT_MAKRO_ADI()[/B]
Sheets("Sayfa2").Unprotect "123" [COLOR="Blue"]'[COLOR="Red"]korumayı kaldır[/COLOR]...sayfa koruma parolasının 123 olduğu düşünüldü...[/COLOR]
[COLOR="Red"].....Sayfa2'ye veri yazan kodlar.......[/COLOR]
Sheets("Sayfa2).Protect "123" [COLOR="blue"]'[COLOR="red"]korumayı aktifleştir[/COLOR]...sayfa koruma parolasının 123 olduğu düşünüldü...[/COLOR]
[B]END SUB[/B][/FONT]
 
Merhaba.

Syfa2'ye veri yazan kodlarınızı aşağıdaki gibi düzenleyebilirsiniz.
.
Kod:
[FONT="Arial Narrow"][B]Sub MEVCUT_MAKRO_ADI()[/B]
Sheets("Sayfa2").Unprotect "123" [COLOR="Blue"]'[COLOR="Red"]korumayı kaldır[/COLOR]...sayfa koruma parolasının 123 olduğu düşünüldü...[/COLOR]
[COLOR="Red"].....Sayfa2'ye veri yazan kodlar.......[/COLOR]
Sheets("Sayfa2).Protect "123" [COLOR="blue"]'[COLOR="red"]korumayı aktifleştir[/COLOR]...sayfa koruma parolasının 123 olduğu düşünüldü...[/COLOR]
[B]END SUB[/B][/FONT]

Teşekkür ederim ilginiz için
Yalnız ben makro kullanmadım, makro kullanmadan sadece kod ya da kodlarla nasıl yapabilirim?
 
Tekrar merhaba.

Cevabımın altındaki İMZA bölümünü okuyunuz.
.
 
Dosyanızdaki KAYDET isimli prosedürü aşağıdaki gibi değiştirip deneyiniz.

Sayfa koruma şifresi olarak 123 kullandım. Siz kendinize göre değiştirebilirsiniz.

Kod:
Sub Kaydet()
Worksheets("Liste").Unprotect "123"
sonsatır = WorksheetFunction.CountA(Worksheets("Liste").Range("A:A")) + 1

Worksheets("Liste").Range("a" & sonsatır) = Worksheets("Masalar").Range("N9") 'masa no
Worksheets("Liste").Range("b" & sonsatır) = Worksheets("Masalar").Range("N3") 'tarih
Worksheets("Liste").Range("c" & sonsatır) = Worksheets("Masalar").Range("N4") 'ürün
Worksheets("Liste").Range("d" & sonsatır) = Worksheets("Masalar").Range("N5") 'adet
Worksheets("Liste").Range("e" & sonsatır) = Worksheets("Masalar").Range("N7") 'tutarı
Worksheets("Liste").Range("f" & sonsatır) = Worksheets("Masalar").Range("x4") 'maliyeti
Worksheets("Liste").Range("g" & sonsatır) = Worksheets("Masalar").Range("x5") 'kar
Worksheets("Liste").Range("h" & sonsatır).FormulaR1C1 = "=row()" 'satır
Worksheets("Liste").Range("I" & sonsatır) = "DOLU" 'durum

'Call Module1.Listele


    t = 12
    
    i = 0
    
    valer = Worksheets("Masalar").Range("M13")
    
    Worksheets("Masalar").Range("M13:U50").ClearContents
    

UrunSayısı = WorksheetFunction.CountA(Worksheets("Liste").Range("A:A"))
For i = 2 To UrunSayısı
    
    If Worksheets("Liste").Range("A" & i) = valer Then
        
        t = t + 1
        
        Worksheets("Masalar").Range("m" & t) = Worksheets("Liste").Range("a" & i)
        Worksheets("Masalar").Range("n" & t) = Worksheets("Liste").Range("b" & i)
        Worksheets("Masalar").Range("o" & t) = Worksheets("Liste").Range("c" & i)
        Worksheets("Masalar").Range("p" & t) = Worksheets("Liste").Range("d" & i)
        Worksheets("Masalar").Range("q" & t) = Worksheets("Liste").Range("e" & i)
        Worksheets("Masalar").Range("r" & t) = Worksheets("Liste").Range("f" & i)
        Worksheets("Masalar").Range("s" & t) = Worksheets("Liste").Range("g" & i)
        Worksheets("Masalar").Range("t" & t) = Worksheets("Liste").Range("h" & i)
        Worksheets("Masalar").Range("u" & t) = Worksheets("Liste").Range("i" & i)
    
    End If
    
Next i

Worksheets("Liste").Protect "123"
End Sub
 
Dosyanızdaki KAYDET isimli prosedürü aşağıdaki gibi değiştirip deneyiniz.

Sayfa koruma şifresi olarak 123 kullandım. Siz kendinize göre değiştirebilirsiniz.

Kod:
Sub Kaydet()
Worksheets("Liste").Unprotect "123"
sonsatır = WorksheetFunction.CountA(Worksheets("Liste").Range("A:A")) + 1

Worksheets("Liste").Range("a" & sonsatır) = Worksheets("Masalar").Range("N9") 'masa no
Worksheets("Liste").Range("b" & sonsatır) = Worksheets("Masalar").Range("N3") 'tarih
Worksheets("Liste").Range("c" & sonsatır) = Worksheets("Masalar").Range("N4") 'ürün
Worksheets("Liste").Range("d" & sonsatır) = Worksheets("Masalar").Range("N5") 'adet
Worksheets("Liste").Range("e" & sonsatır) = Worksheets("Masalar").Range("N7") 'tutarı
Worksheets("Liste").Range("f" & sonsatır) = Worksheets("Masalar").Range("x4") 'maliyeti
Worksheets("Liste").Range("g" & sonsatır) = Worksheets("Masalar").Range("x5") 'kar
Worksheets("Liste").Range("h" & sonsatır).FormulaR1C1 = "=row()" 'satır
Worksheets("Liste").Range("I" & sonsatır) = "DOLU" 'durum

'Call Module1.Listele


    t = 12
    
    i = 0
    
    valer = Worksheets("Masalar").Range("M13")
    
    Worksheets("Masalar").Range("M13:U50").ClearContents
    

UrunSayısı = WorksheetFunction.CountA(Worksheets("Liste").Range("A:A"))
For i = 2 To UrunSayısı
    
    If Worksheets("Liste").Range("A" & i) = valer Then
        
        t = t + 1
        
        Worksheets("Masalar").Range("m" & t) = Worksheets("Liste").Range("a" & i)
        Worksheets("Masalar").Range("n" & t) = Worksheets("Liste").Range("b" & i)
        Worksheets("Masalar").Range("o" & t) = Worksheets("Liste").Range("c" & i)
        Worksheets("Masalar").Range("p" & t) = Worksheets("Liste").Range("d" & i)
        Worksheets("Masalar").Range("q" & t) = Worksheets("Liste").Range("e" & i)
        Worksheets("Masalar").Range("r" & t) = Worksheets("Liste").Range("f" & i)
        Worksheets("Masalar").Range("s" & t) = Worksheets("Liste").Range("g" & i)
        Worksheets("Masalar").Range("t" & t) = Worksheets("Liste").Range("h" & i)
        Worksheets("Masalar").Range("u" & t) = Worksheets("Liste").Range("i" & i)
    
    End If
    
Next i

Worksheets("Liste").Protect "123"
End Sub


Korhan Bey teşekkür ederim ilginiz için. Ama koruma yazma hatası veriyor. Başka nasıl çözebilirim?
 
Korhan Bey'in izniyle,
Önce: Liste sayfanızda sizin belirlediğiniz bir sayfa koruma şifresi varsa onu kaldırın.
Sonra Korhan Bey'in verdiği kodla, deneyin.
Bu sorunu çözmüyorsa;

Dosyanızdaki "Private Sub CommandButton1_Click() " bölümünü de aşağıdaki gibi değiştirin.
ve deneyin.

Kod:
Private Sub CommandButton1_Click()
Dim HKes, ToplamSatır As Variant
HKes = MsgBox("Toplam Hesap = " & ActiveSheet.Range("P9") & " TL", vbOKCancel)
If HKes = 2 Then
Exit Sub
End If
ToplamSatır = WorksheetFunction.CountA(ActiveSheet.Range("m13:m50"))
For i = 13 To ToplamSatır + 12
BosalacakSatır = ActiveSheet.Range("T" & i)
[B][COLOR="Red"]Worksheets("Liste").Unprotect "123"[/COLOR][/B]
Worksheets("Liste").Range("I" & BosalacakSatır) = "BOŞ"
Next i
[B][COLOR="red"]Worksheets("Liste").Protect "123"[/COLOR][/B]
Worksheets("Masalar").Range("M13:U50").ClearContents

End Sub
 
Son düzenleme:
Korhan Bey'in izniyle,
Dosyanızdaki "Private Sub CommandButton1_Click() " bölümünü aşağıdaki gibi değiştirin.
Kod:
Private Sub CommandButton1_Click()
Dim HKes, ToplamSatır As Variant
HKes = MsgBox("Toplam Hesap = " & ActiveSheet.Range("P9") & " TL", vbOKCancel)
If HKes = 2 Then
Exit Sub
End If
ToplamSatır = WorksheetFunction.CountA(ActiveSheet.Range("m13:m50"))
For i = 13 To ToplamSatır + 12
BosalacakSatır = ActiveSheet.Range("T" & i)
[B][COLOR="Red"]Worksheets("Liste").Unprotect "123"[/COLOR][/B]
Worksheets("Liste").Range("I" & BosalacakSatır) = "BOŞ"
Next i
[B][COLOR="red"]Worksheets("Liste").Protect "123"[/COLOR][/B]
Worksheets("Masalar").Range("M13:U50").ClearContents

End Sub

Teşekkür ederim oldu :)
Ama bu sefer de "Liste" sekmesinde ilk satırı siliyor, diğer satırları silmiyor. kodda mı birşey var dşye baktım ama garip görünen bir şey de yok.
 
Sayın fguctekin,
Bu durum değişen kodla ilgili değil sanırım.
Bu arada; Kodlarınızdaki "Private Sub Image1_Click()" kısmını da
Kod:
Private Sub Image1_Click()
SilinecekSatır = ActiveSheet.Range("T" & ActiveCell.Row)
[B][COLOR="Red"]Worksheets("Liste").Unprotect "123"
[/COLOR][/B]Worksheets("Liste").Rows(SilinecekSatır & ":" & SilinecekSatır).Delete
[B][COLOR="red"]Worksheets("Liste").Protect "123"[/COLOR][/B]
End Sub

şeklinde düzeltmeniz gerekir.(Masalar Sayfasında satır iptali yaptığınızda çalışan kod)
 
Sayın fguctekin,
Bu durum değişen kodla ilgili değil sanırım.
Bu arada; Kodlarınızdaki "Private Sub Image1_Click()" kısmını da
Kod:
Private Sub Image1_Click()
SilinecekSatır = ActiveSheet.Range("T" & ActiveCell.Row)
[B][COLOR="Red"]Worksheets("Liste").Unprotect "123"
[/COLOR][/B]Worksheets("Liste").Rows(SilinecekSatır & ":" & SilinecekSatır).Delete
[B][COLOR="red"]Worksheets("Liste").Protect "123"[/COLOR][/B]
End Sub

şeklinde düzeltmeniz gerekir.(Masalar Sayfasında satır iptali yaptığınızda çalışan kod)

Yine de çok teşekkür ederim bilgi ve yardımlarınız için
 
Geri
Üst