Wpis z mikrobloga

Mam problem. Mam potrzebę ograniczenia możliwości edycji arkusza do tego aby można byłoby w nim pisać, kasować ale nie kopiować i wklejać komórek. Mam ustawioną walidację danych aby wyrzucało błąd gdy w danej kolumnie zostanie osiągnięty limit konkretnego znaku np. jeśli w kolumnie A pojawi się symbol U to może się on pojawić maksymalnie 5 razy a przy 6 próbie wyrzuci błędem. To działa ale można to obejść robiąc właśnie kopiuj/wklej komórkę. Chciałem makro, które jakoś to zablokuje np. gdy coś wpadnie do schowka (robiąc ctrl+c) to go wyczyści lub inne cudo uniemożliwiające skopiowanie lub wklejenie komórki. Z makr jestem zielony więc napisałem na czat gpt ale to co on mi proponuje nie działa i teraz pytanie czy jesteście mi w stanie podpowiedzieć czemu to nie działa. W opcjach mam uruchomione makra. Sam kod wklejam poprzez f11->zaznaczenie arkusza-> insert module-> wklejam. Zapisuje też plik w formacie do obsługi makr.

Private Sub Worksheet_Change(ByVal Target As Range)

' Sprawdź, czy zmiana dotyczy komórek
If Not Intersect(Target, ActiveSheet.UsedRange) Is Nothing Then
' Czyść schowek po skopiowaniu
Application.CutCopyMode = False
End If
End Sub

#excel #makro
  • 1
  • Odpowiedz
@lgc89: Odpowiadając wprost na pytanie: nie działa, bo musisz wkleić kod w module konkretnego arkusza, a nie w ogólnym, który dodajesz przez "insert module". Makro nie spełni jednak Twoich oczekiwań, bo wyczyści schowek już po wklejeniu danych. Nie naruszy ono również historii schowka (win+v), choć pewnie i tak niewielu Twoich użyszkodników zna ten skrót ;) No i w żaden sposób nie zabezpieczy przed kopiowaniem danych z arkusza.

Generalnie raczej nie da
  • Odpowiedz