Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 64030 Skopiuj do schowka Walidacja listy/zablokowanie komórki przed wstawieniem funkc
Autor Wiadomość
Greg88
świeżak


Posty: 8
Wysłany: 04-02-2019, 16:29   Walidacja listy/zablokowanie komórki przed wstawieniem funkc

Mam komórkę w której waliduje dane z listy, przy wyborze jest możliwość wpisania funkcji w tej komórce i obejścia walidacji czy mogę to jakoś zablokować?
ID posta: 361933 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 05-02-2019, 13:11   

Generalnie wybór z listy rozwijanej zwraca wartość, a w komórce, w której jest wartość stała, nie może być równocześnie funkcji. Wszystko jakoś można obejść makrami, ale piszesz na tyle niejasno, że bez przykładu w pliku i dokładnego opisu użycia, trudno coś doradzić.
ID posta: 361993 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 05-02-2019, 16:43   

Zgadza sie, że zwraca wartość z listy ale jak już mam tą wartość mogę zaznaczyć tą komórkę i wybrać opcję by wstawić funkcję i wtedy walidacja już nie działa
ID posta: 362007 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 05-02-2019, 16:58   

Walidacja (poprawność danych) działa przy ręcznej edycji komórki. Nie działa, gdy wklejasz coś do komórki ręcznie lub makrem. Jeśli wklejasz całą komórkę (np. Ctrl+V) walidacja ustawiona w komórce docelowej jest nadpisywana, jeśli wklejasz specjalnie tylko wartość - nie jest nadpisywana, ale się nie uaktywnia.
Opisz jaki masz problem i pokaż to w pliku, bo teoretyzować można bez końca, a i tak się tematu nie wyczerpie.
ID posta: 362009 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 05-02-2019, 20:19   

Chcę tylko żeby nie było możliwości wstawienia w komórce wartości innej niż ta z listy
ID posta: 362021 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 06-02-2019, 10:24   

I dalej nie piszesz jak dokładnie miałoby to działać, ani nie dajesz swojego przykładu.
Można to zrobić za pomocą VBA, używając zdarzenia Change. Propozycja w załączniku. Jednorazowo można wprowadzać dane (w tym wklejać) do jednej komórki, próba wklejenia do kilku komórek pozostanie bez efektu.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim nt, nx
  Application.EnableEvents = False
  nt = Target.Formula
  On Error Resume Next
  Application.Undo
  nx = Target.Formula
  On Error GoTo 0
  If Target.Count = 1 Then
    Target.Formula = nt
    If Not (Target.Validation Is Nothing) Then
      Do Until Target.Validation.Value
        Target = Application.InputBox("Wprowadź poprawną wartość", Type:=2)
        If Target = False Then Target.Formula = nx: Exit Do
      Loop
    End If
  End If
  Application.EnableEvents = True
End Sub
Powyższa procedura kontroluje tylko zmiany, które wywołują zdarzenie Change. Nie podlegają kontroli zmiany spowodowane przeliczeniem formuły zapisanej w nadzorowanej komórce na skutek zmian wprowadzanych w innych komórkach, ani zmiany spowodowane przez działanie kodu.

Ochrona_walidacji.xlsm
Pobierz Plik ściągnięto 18 raz(y) 14.73 KB

ID posta: 362065 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 06-02-2019, 20:52   

Potrzebuję zablokować komórkę A1 tak by nie było możliwości wstawienia funkcji, ale żeby była zachowana możliwość wyboru z listy (plik w załączniku)

1.xlsx
Pobierz Plik ściągnięto 18 raz(y) 8.94 KB

ID posta: 362088 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 07-02-2019, 08:17   

Nie bardzo rozumiem o co Ci chodzi. Czy to co zaproponowałem nie odpowiada Twoim potrzebom? Jeśli tak, to z jakiego powodu? Co rozumiesz przez
Greg88 napisał/a:
nie było możliwości wstawienia funkcji
O jaką funkcję chodzi? Poprawność danych porównuje wartości, więc jeśli w A1 będzie wyrażenie (formuła), niekoniecznie funkcja, która zwraca wartość równą jednej z wartości dopuszczalnych (z listy), to Poprawność danych tego nie odrzuci (bo taka jest idea jej działania). Wyjaśnij dokładnie, najlepiej z przykładami, jak chcesz, żeby to działało, bo na razie trudno pojąć Twój zamysł.
ID posta: 362112 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 18-02-2019, 10:48   

Potrzebuję zablokować komórkę A1 w taki sposób żeby była możliwa opcja wybory z listy a nie było możliwości wstawienia funkcji do A1. Da się to zrobić bez makra?

1.xlsx
Pobierz Plik ściągnięto 17 raz(y) 7.56 KB

ID posta: 362813 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 18-02-2019, 10:53   

Powtarzasz to samo pytanie i dajesz taki sam załącznik, a nie wyjaśniasz o co Ci chodzi. Jaka funkcja? Daj przykład, co ma być zablokowane, a co ma być dopuszczalne.
ID posta: 362814 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 18-02-2019, 12:02   

W komórce A1 wstawiłem funkcję sumowania chcę zablokować taką możliwość.

1a.xlsx
Pobierz Plik ściągnięto 16 raz(y) 7.86 KB

ID posta: 362819 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 18-02-2019, 14:09   

Tak jak pisałem poprzednio, tego ze sprawdzaniem poprawności danych bez makra nie da się zrobić, bo poprawność danych sprawdza wartość, a nie to, czy jest ona wynikiem formuły, czy jest stałą. Bez makra możesz zastosować pole kombi lub pole listy i umieścić powiązane komórki gdzieś w trudno dostępnym miejscu (np. w innym arkuszu, który można ukryć). Ale te komórki też muszą być dostępne do edycji, bo inaczej formant nie zwróci tam wyniku.

1aa.xlsx
Pobierz Plik ściągnięto 16 raz(y) 11.91 KB

ID posta: 362824 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 18-02-2019, 14:53   

Do edycji może być ta komórka dostępna chodzi tylko o to by nie dało wstawić się funkcji
ID posta: 362830 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 18-02-2019, 15:06   

Jeśli komórka jest dostępna do edycji, to można do niej wpisywać wszystko. Dopiero później można uruchomić mechanizm walidacji, który sprawdzi, co zostało wpisane i albo to zaakceptuje albo nie. Mechanizm wbudowany poprawności danych nie rozróżnia, czy została wpisana stała czy formuła, dopiero za pomocą VBA można utworzyć mechanizm sprawdzający różne aspekty zwartości komórki. Poza tym sam mechanizm poprawności danych można ominąć, wiec nie jest on za bardzo skuteczny.
ID posta: 362833 Skopiuj do schowka
 
 
Greg88
świeżak


Posty: 8
Wysłany: 18-02-2019, 19:59   

To być może da się zrobić taką walidację która uniemożliwia wstawienie funkcji?
ID posta: 362850 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe