Здравствуйте знатоки EXCEL. Помогите в создании макроса. По идее он простой, но я в этом ничего не понимаю. Это как шаблон. В дальнейшем, я надеюсь, адаптирую его к своим нуждам. Суть такова. Есть выпадающий список в ячейке А1. Надо написать макрос, когда при выборе в выпадающем списке «Иванов», автоматически заполнялась бы ячейка А2 текстом, скажем, «зеленый», а ячейка А3 текстом «синий». Аналогично при выборе в выпадающем списке «Сидоров» ячейка А2 заполнялась бы текстом «желтый», а ячейка А3 «красный» с возможностью их при необходимости дальнейшего редактирования. Функция ВПР не подходит, надо будет постоянно копировать и вставлять через «специальную вставку». Файл прикладываю. В нарушение правил написал этот вопрос в раздел «Вопросы по Excel», посоветовали раздел «Вопросы по VBA»
Здравствуйте знатоки EXCEL. Помогите в создании макроса. По идее он простой, но я в этом ничего не понимаю. Это как шаблон. В дальнейшем, я надеюсь, адаптирую его к своим нуждам. Суть такова. Есть выпадающий список в ячейке А1. Надо написать макрос, когда при выборе в выпадающем списке «Иванов», автоматически заполнялась бы ячейка А2 текстом, скажем, «зеленый», а ячейка А3 текстом «синий». Аналогично при выборе в выпадающем списке «Сидоров» ячейка А2 заполнялась бы текстом «желтый», а ячейка А3 «красный» с возможностью их при необходимости дальнейшего редактирования. Функция ВПР не подходит, надо будет постоянно копировать и вставлять через «специальную вставку». Файл прикладываю. В нарушение правил написал этот вопрос в раздел «Вопросы по Excel», посоветовали раздел «Вопросы по VBA»ivanov1974
А поконкретнее? Откуда Экзель может узнать про жовто-блакитность или RGBшность конкретной фамилии? Или вы имели в виду, что надо определять нужные надписи по цвету шрифта/фона ячейки из связанного списка?
А поконкретнее? Откуда Экзель может узнать про жовто-блакитность или RGBшность конкретной фамилии? Или вы имели в виду, что надо определять нужные надписи по цвету шрифта/фона ячейки из связанного списка? AndreTM
Привет, Иванов74 Наверное, нужен какой-то список, типа: Иванов - синий - зеленый Сидоров - желтый - красный Если будет список на листе (список соответствий фамилии и цвета), то можно и формулами. Или хотите в макросе записать?
ПС Обратили внимание в файле? - EF жжет с творительным падежом
Привет, Иванов74 Наверное, нужен какой-то список, типа: Иванов - синий - зеленый Сидоров - желтый - красный Если будет список на листе (список соответствий фамилии и цвета), то можно и формулами. Или хотите в макросе записать?
ПС Обратили внимание в файле? - EF жжет с творительным падежом nilem
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Суббота, 07.09.2013, 11:50
Насколько я понимаю, именно в макросе, так как конечный результат должен быть в текстовом виде для возможного дальнейшего редактирования. А "синий", "зеленый" и т. д. не играет роли, эти слова в самом макросе я заменю на другие. Мне много надо выбирать из разных выпадающих списков, но для облегчения ввода данных в другие ячейки я и прошу помочь в составлении этого макроса-шаблона.
Насколько я понимаю, именно в макросе, так как конечный результат должен быть в текстовом виде для возможного дальнейшего редактирования. А "синий", "зеленый" и т. д. не играет роли, эти слова в самом макросе я заменю на другие. Мне много надо выбирать из разных выпадающих списков, но для облегчения ввода данных в другие ячейки я и прошу помочь в составлении этого макроса-шаблона.ivanov1974
Так вы реальный пример и дайте, чтобы было понятно "что и откуда выбирать". Или более конкретно опишите свою задачу - не думайте, что мы все здесь "агенты кровавой гэбни" И nilem отчасти прав - всё может оказаться таким, что и макросы не понадобятся...
Так вы реальный пример и дайте, чтобы было понятно "что и откуда выбирать". Или более конкретно опишите свою задачу - не думайте, что мы все здесь "агенты кровавой гэбни" И nilem отчасти прав - всё может оказаться таким, что и макросы не понадобятся...AndreTM
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address(0, 0) <> "A1" Then Exit Sub Application.EnableEvents = False Select Case Target Case "Иванов" Target(2, 1) = "синий" Target(3, 1) = "зеленый" Case "Сидоров" Target(2, 1) = "желтый" Target(3, 1) = "красный" End Select Application.EnableEvents = True End Sub
[/vba] но, наверное, это не самый лучший вариант. Обязательно посмотрите на этом (в первую очередь :)) и др. сайтах темы про связанные выпадающие списки. (из файла лишнее удалил, чтобы вошло на форум)
ivanov1974, попробуйте так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address(0, 0) <> "A1" Then Exit Sub Application.EnableEvents = False Select Case Target Case "Иванов" Target(2, 1) = "синий" Target(3, 1) = "зеленый" Case "Сидоров" Target(2, 1) = "желтый" Target(3, 1) = "красный" End Select Application.EnableEvents = True End Sub
[/vba] но, наверное, это не самый лучший вариант. Обязательно посмотрите на этом (в первую очередь :)) и др. сайтах темы про связанные выпадающие списки. (из файла лишнее удалил, чтобы вошло на форум)nilem
nilem, спасибо, то, что надо. AndreTM, спасибо за намерение помочь, может я как-то неуклюже объяснил, что мне надо, поэтому прошу прощения. Вопрос закрыт.
nilem, спасибо, то, что надо. AndreTM, спасибо за намерение помочь, может я как-то неуклюже объяснил, что мне надо, поэтому прошу прощения. Вопрос закрыт.ivanov1974
Добрый день, спасибо за макрос, супер! а можно уточнить, если нужно чтобы вместо текста, определенные ячейки заливались, правльно написать так: Target(2,1).Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0
Спасибо
Добрый день, спасибо за макрос, супер! а можно уточнить, если нужно чтобы вместо текста, определенные ячейки заливались, правльно написать так: Target(2,1).Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0
еще вопрос возник, как сделать так, чтоб при выборе разных условий из списка, оставалась только заливка для данного условия? или я опять что-то не так сделала, но у меня получается все возможные цвета сразу на всем листе. а по идеи при одном условии, только один цвет должен быть.
СПАСИБО [vba]
Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address(0, 0) <> "A1" Then Exit Sub Application.EnableEvents = False Select Case Target Case "Иванов" Target(2, 1).Interior.Color = 65535 Target(2, 3).Interior.Color = 65535 Target(4, 6).Interior.Color = 65535 Case "Сидоров" Target(3, 2).Interior.Color = 5296274 Target(3, 3).Interior.Color = 5296274 Case "Петров" Target(2, 1).Interior.Color = 255 Target(3, 3).Interior.Color = 255 Target(5, 5).Interior.Color = 255 End Select Application.EnableEvents = True End Sub
[/vba] [moder]Читайте Правила форума. Мало того, что Вы в чужой вопрос вклинились ( ну это еще понятно - макрос вроде отсюда), но Вы и пример еще не прикладываете. Короче, эту тему закрываю. Создавайте свою.
Спасибо огромное,
еще вопрос возник, как сделать так, чтоб при выборе разных условий из списка, оставалась только заливка для данного условия? или я опять что-то не так сделала, но у меня получается все возможные цвета сразу на всем листе. а по идеи при одном условии, только один цвет должен быть.
СПАСИБО [vba]
Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address(0, 0) <> "A1" Then Exit Sub Application.EnableEvents = False Select Case Target Case "Иванов" Target(2, 1).Interior.Color = 65535 Target(2, 3).Interior.Color = 65535 Target(4, 6).Interior.Color = 65535 Case "Сидоров" Target(3, 2).Interior.Color = 5296274 Target(3, 3).Interior.Color = 5296274 Case "Петров" Target(2, 1).Interior.Color = 255 Target(3, 3).Interior.Color = 255 Target(5, 5).Interior.Color = 255 End Select Application.EnableEvents = True End Sub
[/vba] [moder]Читайте Правила форума. Мало того, что Вы в чужой вопрос вклинились ( ну это еще понятно - макрос вроде отсюда), но Вы и пример еще не прикладываете. Короче, эту тему закрываю. Создавайте свою.Kate-Rina