Zmiana koloru kolejnych komórek

0

Chciałem, aby w excelu w równych odstępach czasu po naciśnięciu przycisku kolejne komórki dowolnej kolumny zmieniały kolor np poczynając od A1 do A5.

Po uruchomieniu makra pojawia się błąd jak na zdjęciu. Dlaczego makro nie działa ?1.jpg2.jpg3.jpg

0

W funkcji kolor i przyjmuje jaką wartość? Wg mnie jest to zero bo nigdzie jej nie przypisujesz. Jeśli chcesz współdzielić zmienna pomiędzy modułem i arkuszem zmień dim i As byte na global i As byte.
Dużo lepszym rozwiązaniem będzie schowanie deklaracji zmiennej do eventu przycisku i przekazanie go do funkcji kolor jako parametr

0

@Szymon81: W samej procedurze "kolor" nie przypisałem wartości " i ". Chciałem, aby zmieniała się ona w pętli for w evencie przycisku. Poprawiłem kod, ale znowu pojawia się błąd.
4.jpg5.jpg6.jpg

0
Szymon81 napisał(a):

W samej procedurze "kolor" nie przypisałem wartości " i ". Chciałem, aby zmieniała się ona w pętli for w evencie przycisku.)

Wartość i magicznie nie przeniesie się do funkcji, musisz zrobić to jawnie: (...)"kolor " & i.
Global i byte w poprawionym kodzie nie ma sensu, wartość podajesz w parametrze a przy wywołaniu korzystasz z lokalnej zmiennej.
Żeby to działało usuń ten global i dodaj i do wywołania funkcji

0

@Ales: Taki biegły w tym nie jestem. Możesz napisać jak powinno to wyglądać ?

0

@Szymon81: Próbowałem jeszcze tak jak na zdjeciach i to działa, ale jak bedzie trzeba zmienić kolor np 100 komórek to za dużo tych procedur by było, chyba, że można je utworzyć w pętli, tylko nie wiem jak.7.jpg8.jpg

0

Kod z twojego drugiego posta był dobry tylko wymagał dwóch poprawek i by działał w pętli.
Musisz nauczyć się podstaw, nikt za ciebie tego nie zrobi

0

Maybe it's better

#If VBA7 Then
    Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal milliseconds As LongPtr)
#Else
    Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
#End If
Sub test()
Dim i
For i = 1 To 5
Sleep 1000
    ActiveSheet.Cells(i, 1).Interior.ColorIndex = i + 2
Next
End Sub

1 użytkowników online, w tym zalogowanych: 0, gości: 1