Telefonszámunk: 1-472-0679

[Resolved] Zárolt cellák másolása

Kezdőlap Fórumok Excel témák [Resolved] Zárolt cellák másolása

Topic Resolution: Resolved
6 bejegyzés megtekintése - 1-6 / 6
  • Szerző
    Bejegyzés
  • #5509
    Nagymedve
    Felhasználó

      Sziasztok!
      Kérdésem, hogy miként lehet megakadályozni, hogy az egyébként jelszóval védett munkalap celláit – részben vagy teljes egészébe – másik munkalapra lehessen másolni.
      Köszönöm

      #5510
      delila
      Felhasználó

        Szia!
        Ezt makróval tudod megoldani. A lapfülön – ahol a tiltásokat be akarod vezetni – jobb klikk, Kód megjelenítése. Bejutottál a VB szerkesztőbe. Bal oldalon ki van jelölve a lap, ahonnan kiindultál, jobb oldalon egy üres felületet látsz. Oda másold be a lenti makrót. Mikor a füzetben rálépsz a lapodra, indul a makró, és letiltja a kivágás, másolás, beillesztés és vonszolás lehetőségét.

        Private Sub Worksheet_Activate()
            Dim oCtrl As Office.CommandBarControl
            'CTRL+C, CTRL+V és CTRL+X letiltása
            Application.OnKey "^c", ""
            Application.OnKey "^x", ""
            Application.OnKey "^v", ""
        
            'Cut menü letiltása
            For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
                oCtrl.Enabled = False
            Next oCtrl
        
            'Copy menü letiltása
            For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
                oCtrl.Enabled = False
            Next oCtrl
            
            'Vonszolás letiltása
            Application.CellDragAndDrop = False
        End Sub

        Érdemes a lap elhagyásához bevinni a fentiek engedélyezését.

        Private Sub Worksheet_Deactivate()
            Dim oCtrl As Office.CommandBarControl
            'CTRL+C, CTRL+V és CTRL+X engedélyezése
            Application.OnKey "^c"
            Application.OnKey "^x"
            Application.OnKey "^v"
            
            'Cut menü engedélyezése
            For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
                oCtrl.Enabled = True
            Next oCtrl
                
            'Copy menü engedélyezése
            For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
                oCtrl.Enabled = True
            Next oCtrl
                   
            'Vonszolás engedélyezése
            Application.CellDragAndDrop = True
        End Sub

        A füzetet makróbarátként (xlsm kiterjesztéssel) kell mentened.

        #5511
        horvimi
        Adminisztrátor

          Ez gyönyörű Delila!

          Egy átlagos felhasználó esetén ad is némi védelmet.

          És mi van akkor, ha nyit egy üres munkafüzetet, és oda nemes egyszerűséggel képlettel lemásolja a védett munkalap celláit?

          Tehát az új munkalap A1-es cellájába beírja, hogy

          =Védett_lap!A1

          Majd ezt jobbra és lefelé lemásolja addig, amíg a védett lapon van adat.
          Vagy csak azokra a területekre, amiket ki akar nyerni belőle.
          ???

          Ez ellen nem nagyon tudsz mit tenni szerintem.

          Imre

          #5512
          delila
          Felhasználó

            Csakis „átlagos felhasználók” ellen készült. 🙂

            #5513
            Nagymedve
            Felhasználó

              Köszönöm Delila!

              A felhasználók „átlagosak”, de tudjuk mindenre képesek 🙂

              Sejtettem, hogy valami makró lesz belőle.
              Nincs problémám vele, be is vittem.
              De nem megy 🙁
              Természetesen makróbarátként lett mentve.
              Hiba üzenetet nem ír.

              Köszi

              #5514
              delila
              Felhasználó

                Feltételezem, hogy csak 1 lapod van a füzetben, ezért nem indul sem a lapra lépés, sem a lap elhagyása esetén induló két makró.

                Másold át a két makrót a VB szerkesztőben bal oldalon található ThisWorkbook laphoz (lapot kijelölöd, jobbra bemásolod). Az első makró első sorát (Private Sub Worksheet_Activate()) írd át Private Sub Workbook_Open() -re, a másodikét (Private Sub Worksheet_Deactivate()) pedig Private Sub Workbook_BeforeClose(Cancel As Boolean) -ra.

                Az első a füzet megnyitásakor, a második pedig a bezáráskor indul automatikusan. Az eredeti, laphoz rendelt két makrót törölheted.

              6 bejegyzés megtekintése - 1-6 / 6
              • Be kell jelentkezni a hozzászóláshoz.