• 1
  • 0
  • 1

Witam,

nie potrafię napisać makra w Excelu, które wymusza wpisanie do komórki następnej wartości jeżeli w komórkę poprzedzającą nie wpisano odpowiedniej wartości. Czyli np. nie mogę wpisać nic do komórki B1 jeżeli nie wpisano odpowiedniej wartości w komórkę A1 i w takim przypadku wyskakuje komunikat o tym, że trzeba wpisać coś do A1.

Roksana_Stankiewicz
  • Zapytał
  • @ Roksana_Stankiewicz | 08.11.2018
    • 0
    • 0
    • 0
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 1

Makro wprowadź w module arkusza, w którym chcesz otrzymać efekt:

Private Sub Worksheet_Change(ByVal Target As Range)

With Target
   If .Row > 1 Then
      If .Offset(-1, 0) = "" Then
         Application.EnableEvents = False
         .Value = ""
         Application.EnableEvents = True
         'poniższy wiersz wybiera pierwszą wolną komórkę
         .End(xlUp).Offset(1).Select
         MsgBox "Najperw wprowadź wartość w pierwszym pustym wierszu.", vbExclamation
      End If
   End If
End With

End Sub

Jeżeli weryfikację chcesz zastosować tylko do wybranej kolumny, dodaj ją w pierwszym "ifie", np. (dla kolumny C):

If .Row > 1 And .Column = 3 Then

Podobny efekt możesz osiągnąć bez makr, przez sprawdzanie poprawności (choć nie zastosujesz tego dla całej kolumny, musisz z góry określić obszar działania):

1) Zaznacz zakres np. C2:C30, zaczynając od lewej górnej komórki zakresu (czyli w przykładowym wariancie od C2; to ważne).

2) W menu Dane -> Poprawność danych wybierz Niestandardowe, odznacz Ignoruj puste i jako formułę wpisz:

=C1<>""

3) Na zakładce Alert o błędzie wpisz stosowny komunikat.

Mirosław_Janiak
  • Odpowiedział
  • @ Mirosław_Janiak | 08.11.2018
    • 1
    • 7
    • 1