• DİKKAT

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

makrosuz dosyada makro neden çalışıyor?

Katılım
20 Nisan 2011
Mesajlar
61
Excel Vers. ve Dili
2007
makro özelliği etkin çalışma sayfamda satır silmeyi engellemiştim.
ama normal excel sayfalarındada böyle oluyor yani satır silme menüde pasif gözüküyor..
sebebi ne olabilir?
 
makro özelliği etkin çalışma sayfamda satır silmeyi engellemiştim.
ama normal excel sayfalarındada böyle oluyor yani satır silme menüde pasif gözüküyor..
sebebi ne olabilir?

merhaba
auto_open gibi biryerde bir kodu pasif yapmışsanız, auto_close gibi biryerde aynı kodu aktifleştirmeniz gerekir.
 
Kod şöyle, neresinde yanlışık var acaba?


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Selection.Address
Case Selection.EntireRow.Address
Application.OnKey "{Del}", ""
Application.OnKey "{Backspace}", ""
Case Selection.EntireColumn.Address
Application.OnKey "{Del}", ""
Application.OnKey "{Backspace}", ""
Case Else
GoTo sat_sut_yok:
End Select

sat_sut_yok:
Dim secim As Range, silme As Range
Set secim = Selection
Set silme = Columns("L:T")

If Not Intersect(secim, silme) Is Nothing Then
Application.OnKey "{Del}", ""
Application.OnKey "{Backspace}", ""
Else
Application.OnKey "{Del}"
Application.OnKey "{Backspace}"
End If

End Sub




Private Sub Worksheet_Activate()

Dim ctl As CommandBarControl
For Each ctl In Application.CommandBars.FindControls(ID:=293)
ctl.Enabled = False
Next ctl
For Each ctl In Application.CommandBars.FindControls(ID:=294)
ctl.Enabled = False
Next ctl
Application.CommandBars("Cell").Enabled = False


End Sub

Private Sub Worksheet_Deactivate()

Dim ctl As CommandBarControl
For Each ctl In Application.CommandBars.FindControls(ID:=293)
ctl.Enabled = True
Next ctl
For Each ctl In Application.CommandBars.FindControls(ID:=294)
ctl.Enabled = True
Next ctl
Application.CommandBars("Cell").Enabled = False


End Sub
 
Kod şöyle, neresinde yanlışık var acaba?

..
..

Private Sub Worksheet_Deactivate()

Dim ctl As CommandBarControl
For Each ctl In Application.CommandBars.FindControls(ID:=293)
ctl.Enabled = True
Next ctl
For Each ctl In Application.CommandBars.FindControls(ID:=294)
ctl.Enabled = True
Next ctl
Application.CommandBars("Cell").Enabled = False

End Sub

merhaba

sayfadan çıkışta True oluyor, sayfadan çıkmadan dosya kapatılırsa True olmaz.
auto_close veya Workbook_BeforeClose altında yazınız.
 
Selamlar,

Aşağıdaki kodu boş bir modüle ekleyiniz.

Kod:
Option Explicit
 
Sub AUTO_CLOSE()
    Dim ctl As CommandBarControl
    For Each ctl In Application.CommandBars.FindControls(ID:=293)
        ctl.Enabled = True
    Next ctl
    For Each ctl In Application.CommandBars.FindControls(ID:=294)
        ctl.Enabled = True
    Next ctl
    Application.CommandBars("Cell").Enabled = False
End Sub
 
Sn. Korhan,

verdiğiniz kodu boş bir modüle ekledim ama sonuç değişmedi, dosyayı ekledim ve çözemediğim şu konuları da ekliyorum. yapabilirseniz sevinirim;

1-sayfa üzerindeyken sağ tuş çalışmıyor.bir arkadaş bununla ilgili kod vermişti ama sağlıklı çalıştıramadım. çalıştırınca çalışıyor gibi oluyor ama çalışma sayfaları arasında geçiş yapınca yine çalışmamaya başlıyor.

2-excelden çıkınca delete tuş iptali gibi makrolar makro etkin olmayan bir belgedede çalışıyor, verdiğiniz kodu çalıştırdım ama sanırım bir yerde hata yaptım.

3- L sütununda del tuşu çalışmıyor neden çözemedim?
 

Ekli dosyalar

Selamlar,

1. Sorunuz için aşağıdaki işlemi uygulayın.

"SİPARİŞ" isimli sayfanızın kod bölümündeki aşağıdaki kodda kırmızı bölümü düzeltin.

Kod:
Private Sub Worksheet_Deactivate()
   Dim ctl As CommandBarControl
   For Each ctl In Application.CommandBars.FindControls(ID:=293)
      ctl.Enabled = True
   Next ctl
   For Each ctl In Application.CommandBars.FindControls(ID:=294)
      ctl.Enabled = True
   Next ctl
   Application.CommandBars("Cell").Enabled = [COLOR=red]True[/COLOR]
End Sub


2. Sorunuz için aşağıdaki işlemi uygulayın.

Üstteki mesajımda önerdiğim kodu aşağıdaki şekilde değiştirin.

Kod:
Option Explicit
 
Sub AUTO_CLOSE()
    Dim ctl As CommandBarControl
 
    Application.OnKey "{Del}"
    Application.OnKey "{Backspace}"
 
    For Each ctl In Application.CommandBars.FindControls(ID:=293)
        ctl.Enabled = True
    Next ctl
    For Each ctl In Application.CommandBars.FindControls(ID:=294)
        ctl.Enabled = True
    Next ctl
    Application.CommandBars("Cell").Enabled = True
End Sub

Daha sonra çalışmanızın ThisWorkbook bölümüne aşağıdaki kodu ekleyin.

Kod:
Private Sub Workbook_Deactivate()
    AUTO_CLOSE
End Sub

3. Sorunuz için aşağıdaki işlemi uygulayın.

"SİPARİŞ" isimli sayfanızın kod bölümündeki aşağıdaki kodda kırmızı bölümü düzeltin.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Selection.Address
        Case Selection.EntireRow.Address
            Application.OnKey "{Del}", ""
            Application.OnKey "{Backspace}", ""
        Case Selection.EntireColumn.Address
            Application.OnKey "{Del}", ""
            Application.OnKey "{Backspace}", ""
        Case Else
            GoTo sat_sut_yok:
    End Select
 
sat_sut_yok:
    Dim secim As Range, silme As Range
    Set secim = Selection
    Set silme = Columns("[COLOR=red]L[/COLOR]:T")
 
    If Not Intersect(secim, silme) Is Nothing Then
            Application.OnKey "{Del}", ""
            Application.OnKey "{Backspace}", ""
    Else
            Application.OnKey "{Del}"
            Application.OnKey "{Backspace}"
    End If
End Sub
 
çok teşekkür ederim, karşılıksız bu yardımlarınız için.
 
Geri
Üst