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?
@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.
@DwaNiedzwiedzie: Ok, teraz rozumiem skąd to. Tylko jak usunę albo zamienię na komentarz warunek "if", to na jakiej podstawie vba będzie wybierał kolor?
Może jest jakiś inny sposób aby zmieniać kolor arkusza?
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
Może jakiś #programista15k pomoże ( ͡° ͜ʖ ͡°)?
źródło: comment_ygPigRiPIvQ8SyirrGQURK3G8yo3aHT9.jpg
Pobierz@nieraz-nie-dwa
źródło: comment_OxS76PStzudvd6YsJmfkDGd6ylOMaRPj.jpg
PobierzIf Target.Address = "$A$1" Thenbędzie spełniony tylko wtedy, gdy faktycznie edytowaną komórką będzie A1, stąd konieczność jej ręcznej zmiany. Usuń tę linijkę wraz zEnd If(lub dodaj apostrof na początku obu tych wierszy), wtedy makro będzie działać niezależnie od adresu edytowanej komórki.@nieraz-nie-dwa: https://goalkicker.com/ExcelVBABook/ && https://goalkicker.com/VBABook/ && http://excelszkolenie.pl/
Tylko jak usunę albo zamienię na komentarz warunek "if", to na jakiej podstawie vba będzie wybierał kolor?
Może jest jakiś inny sposób aby zmieniać kolor arkusza?
@kovalski: txh
Select Case:)(wywalone if i end if)
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "czerwony"
Select Casedotyczył wartości "targetu", czyli zmienianej komórki.Private Sub Worksheet_Change(ByVal Target As Range)
Dim kolor As Long
Select
A już myślałem że chcesz mnie zmotywować do samotnego szukania rozwiązania :D
To teraz się mogę pochwalić co zrobiłem ( ͡° ͜ʖ ͡°) - szablon nie mój, ja tylko makro "zrobiłem".
źródło: comment_LvUHmPR7luNK9x7UqoZkAqtWMQ5rc7V0.jpg
Pobierz