• 2
  • 0
  • 1

Witam.

Nie potrafię napisać makra w Excelu, które wymusza wpisanie do komórki 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

Odpowiedzi (2)

  • 1

Wprowadź makro 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 chcesz zastosować weryfikację 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
  • 1

Sądzę, że obejdzie się bez makra. Można to osiągnąć przy wykorzystaniu narzędzi Excela.

Przykład

W załączonym arkuszu chcesz nadać takie ograniczenie w zakresie A2:D30, aby niemożliwe było pozostawienie pustych komórek wewnątrz listy.

Aby to zrobić:

  1. Rozpoczynając od komórki A2, zaznacz zakres A2:D30.
  2. Z menu Dane wywołaj polecenie Sprawdzanie poprawności (w Excelu 2007/2010: uaktywnij kartę Dane i w grupie poleceń Narzędzia danych wskaż Poprawność danych).
  3. Z listy dozwolonych kryteriów poprawności wybierz pozycję Niestandardowe.
  4. Usuń zaznaczenie pola Ignoruj puste.
  5. W polu Formuła wprowadź:

=LICZ.PUSTE(A$2:A2)=0

  1. Zatwierdź ustawienia, klikając przycisk OK.

Teraz jeżeli ponad kolejnym wpisem pozostawisz pustą komórkę, pojawi się komunikat ostrzegawczy.

Załączniki

  • xlsx

    Przyklad_1.xlsx ( 10K )
Tadeusz_Kasprzak
  • Odpowiedział
  • @ Tadeusz_Kasprzak | 13.12.2018
    • 9
    • 4
    • 11