Всем добрый вечер. Возможно, кто-то сталкивался с взаимным конвертером валют? Я как не пытался - все время попадаю в циклический процесс. Возможно ли в Excel сделать, как вот здесь? https://yandex.by/yandsea....9%D0%BD
Яндекс конвертер валют
Когда вносишь вверху - конвертирует внизу. Когда вносишь внизу - конвертирует вверху.
Я получается, пишу если в первой один, во второй автоматически ставится 3. Теперь обратно расписываю: если во второй ставлю 3 - тогда в первой автоматически ставится 1. И тут понеслась... процедура видит изменение в первой - меняет вторую, видит изменения во второй - меняет в первой и так далее понеслось...
Вот эту ситуацию не могу обойти))
Вот пример кода В А доллары В В русские
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) lr = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
If Not Intersect(Target, Range("А8:А" & lr)) Is Nothing Then Target.Offset(0, 1).Value = Target / Cells(1, 7).Value' ячейка, в которой курс End If End Sub
[/vba]
Всем добрый вечер. Возможно, кто-то сталкивался с взаимным конвертером валют? Я как не пытался - все время попадаю в циклический процесс. Возможно ли в Excel сделать, как вот здесь? https://yandex.by/yandsea....9%D0%BD
Яндекс конвертер валют
Когда вносишь вверху - конвертирует внизу. Когда вносишь внизу - конвертирует вверху.
Я получается, пишу если в первой один, во второй автоматически ставится 3. Теперь обратно расписываю: если во второй ставлю 3 - тогда в первой автоматически ставится 1. И тут понеслась... процедура видит изменение в первой - меняет вторую, видит изменения во второй - меняет в первой и так далее понеслось...
Вот эту ситуацию не могу обойти))
Вот пример кода В А доллары В В русские
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) lr = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
If Not Intersect(Target, Range("А8:А" & lr)) Is Nothing Then Target.Offset(0, 1).Value = Target / Cells(1, 7).Value' ячейка, в которой курс End If End Sub
Я сделал то, что предложено в посте 2. Плюс еще оптимизировал макрос для удобства чтения кода: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("А8:А" & lr)) Is Nothing Then Exit Sub lr = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Application.EnableEvents = False Target.Offset(0, 1).Value = Target / Cells(1, 7).Value ' ячейка, в которой курс Application.EnableEvents = True End Sub
[/vba]
Я сделал то, что предложено в посте 2. Плюс еще оптимизировал макрос для удобства чтения кода: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("А8:А" & lr)) Is Nothing Then Exit Sub lr = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Application.EnableEvents = False Target.Offset(0, 1).Value = Target / Cells(1, 7).Value ' ячейка, в которой курс Application.EnableEvents = True End Sub