Страницы: 1
RSS
Определенное действие по изменению любого из группы Textbox
 
На форме есть группа Textbox с номерами от 1 до 12 в которых будут находится данные. Данные каждого месяца равны предыдущему. При изменении этих данных необходимо организовать пересчет для чего имеется цикл:    
Код
For i = 2 To 12
        Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i - 1).Value
    Next i
но в нем данные пересчитываются начиная со второго месяца, а мне надо чтобы с измененного. Как сделать так, чтобы при изменении любого из Textbox формировалась переменная, значение которой (например изменили Textbox7, значит  i=7) можно было бы использовать в цикле? Более одного Textbox пользователь изменять не будет. Заранее спасибо всем откликнувшимся.
P.S. Конечно можно было бы прописать действия для каждого Textbox, но как мне кажется, это не рационально, а если Textbox было бы не 12, а 100?
 
Цитата
OlegO написал:
а если Textbox было бы не 12, а 100?
РАБОТА С МОДУЛЯМИ КЛАССОВ
Согласие есть продукт при полном непротивлении сторон
 
Код
Private Sub TextBox5_Change()
    For i = Val(Mid(ActiveControl.Name, 8)) + 1 To 12
        Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i - 1).Value
    Next i
End Sub
 
Sanja, спасибо за ссылку, изучаю, хотя пока не очень понимаю 8-0 , но будем надеяться, разберусь. RAN, в приведенном Вами примере настроено действие на изменение 5 текстбокса (хотя цикл начнется  с "правильного" номера), но вот как сделать тоже самое при изменению ЛЮБОГО из 12 текстбоксов, причем прописать это не отдельно, а универсально?  
 
Цитата
OlegO написал:
при изменению ЛЮБОГО
12 обработчиков с одним кодом
Код
Private Sub TextBox6_Change()
    For i = Val(Mid(ActiveControl.Name, 8)) + 1 To 12
        Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i - 1).Value
    Next i
End Sub

Или классы.
 
Таки да, в Вашем варианте при изменении любого из текстбоксов универсальным кодом данные пересчитаются правильно, но ведь придется (хотя это разумеется несложно) повторить код 12 раз. А вот в присланной Sanja ссылке получается сделать тоже самое прописав действие 1 раз (правда пока не смог прикрутить код к своему примеру :cry: ). Так что Ваш код будет пока запасным, но спасибо за него не меньше.
 
Копируем с листа в модуль желтый столбец, и радуемся, что не пришлось мучать классы  :)
Изменено: RAN - 05.07.2019 19:24:53
 
Цитата
RAN написал: что не пришлось мучать классы
Отмучались уже  ;)  
Согласие есть продукт при полном непротивлении сторон
 
Спасибо, RAN, очень интересно, но классы я все-таки помучаю, лишними извилины не бывают
Страницы: 1
Наверх