Есть большой прайслист. В нем в отдно колонке долларовая цена. Но вот незадача, долларовая есть не везде, и там где нет долларовой, там в соседней ячейке, стоит гривневая цена. Очень нужен маленький макрос, который возмет гривневую цену умножит на курс доллара указанный в ячейке: 5:1 и вставит во весь столбец под номером 5, НО только там где уже по умолчанию НЕ стоит цена в долларах.
Есть большой прайслист. В нем в отдно колонке долларовая цена. Но вот незадача, долларовая есть не везде, и там где нет долларовой, там в соседней ячейке, стоит гривневая цена. Очень нужен маленький макрос, который возмет гривневую цену умножит на курс доллара указанный в ячейке: 5:1 и вставит во весь столбец под номером 5, НО только там где уже по умолчанию НЕ стоит цена в долларах.wwizard
Насколько мне подсказывает логика, гривна стоит МЕНЬШЕ доллара. Поэтому позволил себе отступить от исходной формулировки. Макрос ниже цену в гривнах ДЕЛИТ на курс доллара.
Код программы:
[vba]
Код
Sub Rio_Prob() Dim xRow&, X, rngX As Range, i&, Exchange_Rate# xRow = Cells(Cells.Rows.Count, 4).End(xlUp).Row Set rngX = Range("E8:F" & xRow) X = rngX Exchange_Rate = Range("E1").Value On Error Resume Next For i = 1 To UBound(X, 1) If X(i, 1) + 0 = 0 Then If X(i, 2) + 0 <> 0 Then X(i, 1) = Round(X(i, 2) / Exchange_Rate, 2) End If End If Next i rngX.Value = X End Sub
[/vba] Во вложении две кнопки. Кнопка "Сброс" вернёт данные на листе в состояние "ДО".
Насколько мне подсказывает логика, гривна стоит МЕНЬШЕ доллара. Поэтому позволил себе отступить от исходной формулировки. Макрос ниже цену в гривнах ДЕЛИТ на курс доллара.
Код программы:
[vba]
Код
Sub Rio_Prob() Dim xRow&, X, rngX As Range, i&, Exchange_Rate# xRow = Cells(Cells.Rows.Count, 4).End(xlUp).Row Set rngX = Range("E8:F" & xRow) X = rngX Exchange_Rate = Range("E1").Value On Error Resume Next For i = 1 To UBound(X, 1) If X(i, 1) + 0 = 0 Then If X(i, 2) + 0 <> 0 Then X(i, 1) = Round(X(i, 2) / Exchange_Rate, 2) End If End If Next i rngX.Value = X End Sub
[/vba] Во вложении две кнопки. Кнопка "Сброс" вернёт данные на листе в состояние "ДО".