Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 9
  • 577

Komórka w Excelu ma ustalony format daty rrrr-mm-dd; jeżeli wpiszę tekst, wówczas pojawia się komunikat o błędzie i prośba o wpisanie prawidłowej wartości.

Natomiast w przypadku wklejania wartości tekstowej z innego arkusza, to pole traci swoje właściwości i możliwe jest wklejenie tekstu.

Czy jest możliwe zablokowanie wklejania do tej komórki wartości innych niż o ustalonym formacie?

Z góry dziękuję za odpowiedź.

Tasior
  • Zapytał
  • @ Tasior | 14.05.2014
    • 9
    • 4
    • 12
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 19

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim BylaZmiana As Boolean
    Dim ZakresWspolny As Range
    On Error GoTo Obsluga
        
    'jeśli to spowoduje błąd to nie ma zmian w chronionym zakresie A1:A2
    Application.Intersect(Me.Range("A1:A2"), Target).Select
    BylaZmiana = True
    
    'ta linia prawdopodobnie spowoduje błąd gdy było wklejanie
    If Target.Validation.Type <> xlValidateDate Then Resume Next
    
Czyszczenie:
    On Error Resume Next
    Application.EnableEvents = True
    Exit Sub
Obsluga:
    Select Case Err
        Case 91
            'prawdopodobnie do zignorowania
        Case 1004
            If BylaZmiana Then
                'prawdopodobnie błąd spowodowany wklejeniem w chronionym zakresie
                MsgBox "Nie wolno niszczyć sprawdzania poprawności!", vbExclamation
                Application.EnableEvents = False
                Application.Undo
                Application.EnableEvents = True
            End If
        Case Else
            MsgBox Err & " - " & Err.Description, vbCritical
    End Select
    Resume Czyszczenie
End Sub


Na pewno jest to możliwe z wykorzystaniem zdarzenia Change z poziomu VBA, ale nie jest to specjalnie proste.

 

  • Odpowiedział
  • @ | 21.05.2014
  • TRENER ALTKOM AKADEMII
Komentarze
Bardzo dziękuję za odpowiedź, ale ze względu na moją słabą znajomość VBA, coś mi nie działa. W odpowiedzi umieściłem plik ze skopiowanym rozwiązaniem. z góry dziękuję za pomoc
p.s.
nie mogę doczekać szkolenia EX04 w Krakowie
Skomentował : @ Tasior ,21.05.2014
  • 9
  • 4
  • 12
błąd wynika z tego, że kod został wrzucony do normalnego modułu publicznego
Trzeba go z stamtąd usunąć (Ctrl+X) i przenieść do modułu Arkusza1
Aby zobaczyć ten moduł wystarczy dwu-kliknąć w okienku Project (to małe lewe górne) Arkusz1. Powodzenia!
Skomentował : @ TRENER ALTKOM AKADEMII ,21.05.2014
Bardzo dziękuję za pomoc,
działa przy wklejaniu komórek o niewłaściwym formacie z excela, wówczas pojawia się komunikat aby nie niszczyć poprawności sprawdzania.
Natomiast pojawia się następujące problemy:
- przy wklejaniu prawidłowego formatu również pojawia taki się komunikat;
- przy wklejaniu wartości z innych plików również można wklieć dowolne wartości - takie działanie najbardziej bym chciał zablokować
- przy wklejaniu specjalnym z excela również można wkleić dowolne wartości- ale mało kto wkleja tak wartości.
Pozdrawiam i zgóry dziekuję za pomoc
Skomentował : @ Tasior ,22.05.2014
  • 9
  • 4
  • 12