Страницы: 1
RSS
Макрос взаимного перевода сантиметров в дюймы. Пересчет при переходе на любую ячейку
 
Есть макрос взаимного перевода сантиметров в дюймы и обратно, только он работает только при переходе на ячейку вниз. Как его необходимо завершить, чтобы производился пересчет при переходе в любую ячейку
 
А что должно быть индикатором, в каком направлении должна происходить конверсия ?
На данный момент это номер столбца, в котором была выбрана ячейка.

Может быть так ?
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
    On Error GoTo konets
        If Not IsNumeric(Target.Cells(1, 1).Value) Then Exit Sub
        Application.EnableEvents = False
        [A2].Value = Round(Target.Cells(1, 1).Value / 2.54, 2)
        [B2].Value = Round(Target.Cells(1, 1).Value * 2.54, 2)
konets: Application.EnableEvents = True
End Sub
Изменено: ocet p - 08.12.2019 19:22:23
 
Спасибо, но не так
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:B")) Is Nothing Then
    Application.EnableEvents = False
    For Each Cell In Target
        If Cell.Column = 1 Then
            Cell.Offset(, 1) = Cell * 2.54
        Else
            Cell.Offset(, -1) = Cell / 2.54
        End If
    Next
    Application.EnableEvents = True
End If
End Sub
По вопросам из тем форума, личку не читаю.
 
Цитата
Павел Иванов написал:
но не так
А что для вас значит "в любую ячейку" и каким должен быть результат работы этого макроса ?
 
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
If ActiveCell = Cells(2, 1) Then
Cells(2, 1) = Cells(2, 2) / 2.5
End If
If ActiveCell = Cells(2, 2) Then
Cells(2, 2) = Cells(2, 1) * 2.5
End If
End Sub

Вот почему-то в одну сторону считает, а в другую нет.
Подскажите пожалуйста почему?
 
ActiveCell = Cells(2, 1) это сравнение значений, подозреваю что пытались сравнивать адрес.
По вопросам из тем форума, личку не читаю.
 
Не совсем, пытаюсь сделать штуку, чтобы можно было управлять данными либо из одной ячейки, либо из другой.
Этот макрос для ячейки 2,1 срабатывает при переходе в 2,2 или другую. а вот из ячейки 2,2 надо вернуться в 2,1. По другому не работает. А хотелось бы
 
Цитата
Павел Иванов написал:
пытаюсь сделать штуку,
а получается, что при изменении любой ячейки , при этом на любом листе, что уже не корректно сравнивается активная ячейка, а она та которую выбрали, а не предыдущая, со значением из A2 и если они равны, то в A2 записывается частное. Потом сравнивается с B2 и если равны, то в B2 вписывается произведение. Естественно ничего дельного не получается.
По вопросам из тем форума, личку не читаю.
 
Подскажите пожалуйста как сделать толково
 
А вы №4 не смотрели, судя по всему. Только пересчет там после изменения данных , а не при переходе, что в большинстве случаев более толково.
По вопросам из тем форума, личку не читаю.
 
Посмотрел, действительно подходит, только как сделать, чтобы работал не 1 и 2 столбец, а только 1 и 2 ячейки 2-ой строки?

Определенные ячейки
Изменено: Павел Иванов - 09.12.2019 20:20:11
 
Range("A:B") заменить Range("A2:B2")
По вопросам из тем форума, личку не читаю.
 
Все супер, огромное спасибо.
А если ячейки не соседние, как их определить?
Изменено: Павел Иванов - 09.12.2019 20:37:08
Страницы: 1
Наверх