Excel - hurtowa zmiana wartości liczb

W kilkudziesięciu komórkach mam liczby. Jak za jednym zamachem każdą z tych liczb powiększyć o 12%, tak, aby powiększona liczba wyświetlała się w tej samej komórce?

Napisz makro

dim x as string

dim j As string

dim i as string

’ jeżeli dane są w innym wierszu wpisz inną liczbe początkową

i = 1

j = 1

’ pamiętaj że zakładam że dane zaczynają się w pierwszej kolumnie i wierszu!

While Cells(i, j).Value <> “”

x = cells(i, j).Value

x = x * 1,12

Cells (i, j) = x

i = i + 1

Wend

Wyświetla błąd

i = 1

Podświetla 1

Compile errror

Invalid outside procedure

Function zmien()

dim x as string

dim j As string

dim i as string

’ jeżeli dane są w innym wierszu wpisz inną liczbe początkową

i = 1

’ pamiętaj że zakładam że dane zaczynają się w pierwszej kolumnie i wierszu!

While Cells(i, 1).Value <> “”

x = cells(i, 1).Value

x = x * 1.12

Cells (i, 1) = x

i = i + 1

Wend

End Function

teraz zadziała

Działa. Wielkie dzięki :smiley:

PS. Co oznacza Wend?

koniec pętli while.

Jeszcze jedno - x i z chyba lepiej by były double (dim x as double)

W tym makro nie ma z

:slight_smile: masz rację - dodałem z w czasie testów :slight_smile:

To które mam ustawić na double?

W takim razie tylko x :slight_smile:

Ja po prostu zmieniłem linijkę

x = x * 1.12

na

z = x * 1.12

i potem cells(i, 1) = z

Ale to nie ma żadnego znaczenia, pierwsza i tak działa.