Cezary S.

Cezary S. Zespół Zarządzania
Ryzykiem, Centralny
Dom Maklerski
Peka...

Temat: If Then Else

Witam,

proszę o pomoc w kwestii użycia instrukcji If Then Else. Chciałbym aby odnosiła się do wielu komórek tzn. do większego zakresu danych. Dla przykładu:
Sub prowizja()
A = Cells(2, 1)

If A > 30000 Then
Cells(2, 3).Value = "Obniżka prowizji"
End If

If A < 30000 Then
Cells(2, 3).Value = "Brak obniżki"
End If

End Sub

Jak zapisać te warunki dla szerszego zakresu a nie dla jednej komórki, tak aby po wpisaniu wartości w inne komórki był także zwracany warunek?
Łukasz N.

Łukasz N. ETL Developer

Temat: If Then Else

Panie Cezary,

bardzo proszę napisać dokładnie jakiego efektu Pan oczekuje.
Dla zakresu np. A1:A200 mniejszych od 30000 w kolumnie B chce Pan wstawić "Brak obniżki", a gdy wartość jest większa to "Obniżka prowizji"?

Proszę też napisać czy makro VBA jest jedyną formą rozwiązania jaką chce Pan zastosować. Proszę o to, ponieważ jest szansa, że Pański problem można rozwiązać również formułami.

Pozdrawiam
Cezary S.

Cezary S. Zespół Zarządzania
Ryzykiem, Centralny
Dom Maklerski
Peka...

Temat: If Then Else

Dziękuję za szybką odpowiedź.,

Tak, dokładnie to chciałbym uzyskać. Nad formułami się nie zastanawiałem, bo ostatnio trochę zgłębiam tematykę makr i szukam rozwiązania w ten sposób.

Pozdrawiam
Łukasz N.

Łukasz N. ETL Developer

Temat: If Then Else

Witam,

skoro interesują Pana makra, będzie makro:
Sub t()
Dim arr_src() As Variant
Dim arr_dest() As Variant
Dim i As Integer

arr_src = Worksheets("Sheet1").Range("A2:A16").Value
ReDim arr_dest(1 To UBound(arr_src), 1 To 1)

For i = 1 To UBound(arr_src)
If arr_src(i, 1) > 3 Then arr_dest(i, 1) = "Obniżka prowizji"
If arr_src(i, 1) < 3000 Then arr_dest(i, 1) = "Brak obniżki"
Next

Worksheets("Sheet1").Range("B2:B" & i) = arr_dest

End Sub

Jak nietrudno zauważyć operuję na tablicach a nie na "żywych" zakresach. To z uwagi na szybkość wykonywania kodu. Tablice najzwyczajniej w świecie są szybsze.

Myślę, że z dostosowaniem kodu do odpowiednich zakresów nie powinien mieć Pan problemów. Gdyby jednak takowe wystąpiły - proszę dać znać.

Pozdrawiam
Cezary S.

Cezary S. Zespół Zarządzania
Ryzykiem, Centralny
Dom Maklerski
Peka...

Temat: If Then Else

Dziękuję serdecznie za odpowiedź!!!

Następna dyskusja:

IF THEN ELSE w gniazdach




Wyślij zaproszenie do