Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek 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

AJOT74 30 Kwi 2011 17:27 1182 2
  • #1 30 Kwi 2011 17:27
    AJOT74
    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

    0 2
  • #2 30 Kwi 2011 20:28
    Eagle
    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

    0
  • #3 30 Kwi 2011 20:47
    AJOT74
    Poziom 10  

    Dzięki za pomoc...

    0