Добрый день уважаемые участники форума. Хочу обратиться к Вам за помощью по вопросу связанному с программированием VBA. Я честно сказать в программировании не очень силён и соответствующей темы я к сожалению тоже не смог найти, хотя я не думаю что её тут нет. http://www.excelworld.ru/forum/10-0-2-0-10-1-[Копирование%20ячеек] - это не совсем то что мне нужно. Подскажите пожалуйста: Есть список людей (35 чел.). Если я ставлю букву (например "т") у первого человека в списке, то чтобы она автоматически копировалась для всех остальных 34 человек. Чтобы потом я смог среди 35 "т" поменять на другие буквы (например "н"). Но копирование должно пройти 1 раз. Т.е. если после того как все буквы раскопируются и если я потом поменяю первую букву на другую... чтобы другие 34 не поменялись.
Кнопки и т.д. не нужны для этой манипуляции. Спасибо большое!
Добрый день уважаемые участники форума. Хочу обратиться к Вам за помощью по вопросу связанному с программированием VBA. Я честно сказать в программировании не очень силён и соответствующей темы я к сожалению тоже не смог найти, хотя я не думаю что её тут нет. http://www.excelworld.ru/forum/10-0-2-0-10-1-[Копирование%20ячеек] - это не совсем то что мне нужно. Подскажите пожалуйста: Есть список людей (35 чел.). Если я ставлю букву (например "т") у первого человека в списке, то чтобы она автоматически копировалась для всех остальных 34 человек. Чтобы потом я смог среди 35 "т" поменять на другие буквы (например "н"). Но копирование должно пройти 1 раз. Т.е. если после того как все буквы раскопируются и если я потом поменяю первую букву на другую... чтобы другие 34 не поменялись.
Кнопки и т.д. не нужны для этой манипуляции. Спасибо большое! AlexBor
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub With Application: .EnableEvents = False Dim rng As Range: Set rng = Intersect([C9:AG43], Target.EntireColumn) rng = Evaluate("IF(Len(" & rng.Address(, , .ReferenceStyle) & "), " & _ rng.Address(, , .ReferenceStyle) & ", """ & Target & """)") .EnableEvents = True: End With End Sub
[/vba]
как-то так
[vba]
Код
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub With Application: .EnableEvents = False Dim rng As Range: Set rng = Intersect([C9:AG43], Target.EntireColumn) rng = Evaluate("IF(Len(" & rng.Address(, , .ReferenceStyle) & "), " & _ rng.Address(, , .ReferenceStyle) & ", """ & Target & """)") .EnableEvents = True: End With End Sub
Kuzmich, ну да)) опшибся) Но всё равно не *.xlsm krosav4ig, нашел небольшую ошибку. Если начать вводить в список Ф. И. О. то выскакивает окно с ошибкой, скрипт останавливает свои действия и перестает работать. Можно это как нибудь исправить? Заранее благодарствую)
Kuzmich, ну да)) опшибся) Но всё равно не *.xlsm krosav4ig, нашел небольшую ошибку. Если начать вводить в список Ф. И. О. то выскакивает окно с ошибкой, скрипт останавливает свои действия и перестает работать. Можно это как нибудь исправить? Заранее благодарствую)AlexBor
Друзья, снова здравствуйте! Еще раз хотелось бы попросить у вас помощи по программированию VBA. Поскольку я не в ладах с программированием((( Подскажите, можно ли в данном табеле сделать так, чтобы при выставлении значения из выпадающего списка (т, пк, пп, н, с ,пр) скрипт проставлял не весь столбик с 1 по 35 включительно, а только те строчки, сколько присутствует человек. Если 23 человека, то 23 строчки заполняет, если 31, то 31 и т.д. [moder]Нарушение п.4 Правил форуиа[/moder]
Друзья, снова здравствуйте! Еще раз хотелось бы попросить у вас помощи по программированию VBA. Поскольку я не в ладах с программированием((( Подскажите, можно ли в данном табеле сделать так, чтобы при выставлении значения из выпадающего списка (т, пк, пп, н, с ,пр) скрипт проставлял не весь столбик с 1 по 35 включительно, а только те строчки, сколько присутствует человек. Если 23 человека, то 23 строчки заполняет, если 31, то 31 и т.д. [moder]Нарушение п.4 Правил форуиа[/moder]AlexBor