Введенное значение на листе XXX падает в ячейку на листе YYY (VBA)

Автор Leanna, 07.07.2011, 11:38

« назад - далее »

Leanna

Здравствуйте! Очень хочу одну волшебную VBA функцию, только не знаю реальна она или нет.

Хочу вводить значение в ячейку на одном листе, и что бы это значение упало в ячейку на другом листе.

1. Если я ввела значение 111 в ячейку [С9] на листе "XXX" и нажала Enter
2. то на листе "YYY" в 3-ем стоблце, 4-той строке вставилось это самое значение 111.
3. в ячейке С9 на листе "XXX" восстановилась формула =ИНДЕКС(YYY!A1:D12;B9;C8)

- такое правило нужно только для значений вводимых в ячейку [С9] на листе "ХХХ"
- строки будут меняться, один раз это 4тая строка, в другой раз будет 5-тая строка, какую строку брать известно из ячейки [B9]

Такое возможно? (файлик прикрепила)

nilem

Пробуйте
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "C9" Then Exit Sub
Dim rr&, cc&
rr = Target.Previous.Value
cc = Target.Offset(-1).Value
Sheets("YYY").Cells(rr, cc) = Target.Value
Application.EnableEvents = False
Target.FormulaR1C1 = "=INDEX(YYY!R[-8]C[-2]:R[3]C[1],RC[-1],R[-1]C)"
Application.EnableEvents = True
End Sub

Leanna

nilem спасибо. Вроде бы это то что надо, но только он долго думает (6 секунд).
Можно ли что-нибудь придумать, что бы это быстрее происходило? Просто ещё и непонятно над чем он так долго обрабатывает...

nilem

Ну конечно. EnableEvents совсем вылетел из головы  :)
В предыдущем посте файлик переложил.

Leanna