Wpis z mikrobloga

I need help.
W liceum miałem podstawy c++ ale vba nie znam praktycznie wcale.

Chciałem zrobić tak aby kolor arkusza zależał od treści komórki A1. Problem w tym, że komórka A1 jest warunkowana przez inne komórki (IF). Mam kod który działa, ale tylko jeśli kliknę w A1 i dam enter.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Select Case Target.Value
Case "czerwony"
Me.Tab.Color = vbRed
Case "zielony"
Me.Tab.Color = vbGreen
Case Else
Me.Tab.Color = vbBlue
End Select
End If
End Sub

Czy da się zrobić żebym nie musiał za każdym razem wymuszać kalkulacji?
btw. polecacie jakieś ebooki, kursy, kanały na youtube do nauki vba?

Z góry dziękuję.
#excel #vba #programowanie
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nieraz-nie-dwa: Warunek If Target.Address = "$A$1" Then będzie spełniony tylko wtedy, gdy faktycznie edytowaną komórką będzie A1, stąd konieczność jej ręcznej zmiany. Usuń tę linijkę wraz z End If (lub dodaj apostrof na początku obu tych wierszy), wtedy makro będzie działać niezależnie od adresu edytowanej komórki.
  • Odpowiedz
Gdybym miał stosować polecenia dosłownie to byłoby:
(wywalone if i end if)

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "czerwony"
  • Odpowiedz