Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

EXCEL VBA -decyzja o cofnięciu zmiany

30 Kwi 2011 17:27 1290 2
  • Poziom 10  
    Może ktoś zna sposób jak napisać procedurkę która pozwalała by cofnąć zmiany gdy ich nie chce. Chodzi o to, że jeżeli użytkownik arkusza wpisuje jakomś zmianę to ja za pomocą VBA ją najpierw sprawdzam i oceniam czy jest prawidłowa a jeżeli nie jest prawidłowa to przywracam poprzednią wartość komórki. Warto zaznaczyć, że wartość wpisywana niema z góry przewidzianej komórki do celowej (czyli może to być A1 jak i również C10). Kod wyglądał by mniej więcej tak:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim Symbole
    Application.EnableEvents = False
    With Target
    Symbole = UCase(.Value)
    Select Case Symbole
    Case "ABC"
    .Value = "AbC": .Font.Size = 12
    Case "BCA"
    .Value = "BcA": .Font.Size = 11
    Case "CBA"
    .Value = "CBa": .Font.Size = 10
    Case "DEF"
    .Value = "Def": .Font.Size = 14
    Case Else
    MsgBox "Wprowadzony skrót jest nieprawidłowy!"
    'tutaj musi być komenda czy coś przywracająca poprzednią wartość komórki
    End Select
    End With
    Application.EnableEvents = True
    End Sub
  • PCBway
  • Poziom 23  
    Witam,

    Wydaje się że w tym przypadku będzie :

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    czyli tak jak chciałeś cofnięcie ostatniej operacji czyli wpisanie danych przez usera.


    p.s W dokumentacji jest uwaga :
    Cytat:

    (...)and it must be the first line in the macro (...)


    Jednak sprawdziłem, działa w twoim kodzie choć to nie jest pierwsza instrukcja.

    Eagle
  • PCBway
  • Poziom 10  
    Dzięki za pomoc...