Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Заполнение ячеек при выборе в выпадающем списке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение ячеек при выборе в выпадающем списке (Макросы Sub)
Заполнение ячеек при выборе в выпадающем списке
ivanov1974 Дата: Суббота, 07.09.2013, 11:23 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 1 ±
Замечаний: 0% ±

Здравствуйте знатоки EXCEL. Помогите в создании макроса. По идее он простой, но я в этом ничего не понимаю. Это как шаблон. В дальнейшем, я надеюсь, адаптирую его к своим нуждам. Суть такова. Есть выпадающий список в ячейке А1. Надо написать макрос, когда при выборе в выпадающем списке «Иванов», автоматически заполнялась бы ячейка А2 текстом, скажем, «зеленый», а ячейка А3 текстом «синий». Аналогично при выборе в выпадающем списке «Сидоров» ячейка А2 заполнялась бы текстом «желтый», а ячейка А3 «красный» с возможностью их при необходимости дальнейшего редактирования.
Функция ВПР не подходит, надо будет постоянно копировать и вставлять через «специальную вставку».
Файл прикладываю.
В нарушение правил написал этот вопрос в раздел «Вопросы по Excel», посоветовали раздел «Вопросы по VBA»
К сообщению приложен файл: 4166897.rar (48.8 Kb)
 
Ответить
СообщениеЗдравствуйте знатоки EXCEL. Помогите в создании макроса. По идее он простой, но я в этом ничего не понимаю. Это как шаблон. В дальнейшем, я надеюсь, адаптирую его к своим нуждам. Суть такова. Есть выпадающий список в ячейке А1. Надо написать макрос, когда при выборе в выпадающем списке «Иванов», автоматически заполнялась бы ячейка А2 текстом, скажем, «зеленый», а ячейка А3 текстом «синий». Аналогично при выборе в выпадающем списке «Сидоров» ячейка А2 заполнялась бы текстом «желтый», а ячейка А3 «красный» с возможностью их при необходимости дальнейшего редактирования.
Функция ВПР не подходит, надо будет постоянно копировать и вставлять через «специальную вставку».
Файл прикладываю.
В нарушение правил написал этот вопрос в раздел «Вопросы по Excel», посоветовали раздел «Вопросы по VBA»

Автор - ivanov1974
Дата добавления - 07.09.2013 в 11:23
AndreTM Дата: Суббота, 07.09.2013, 11:43 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
А поконкретнее? Откуда Экзель может узнать про жовто-блакитность или RGBшность конкретной фамилии?
Или вы имели в виду, что надо определять нужные надписи по цвету шрифта/фона ячейки из связанного списка? :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеА поконкретнее? Откуда Экзель может узнать про жовто-блакитность или RGBшность конкретной фамилии?
Или вы имели в виду, что надо определять нужные надписи по цвету шрифта/фона ячейки из связанного списка? :)

Автор - AndreTM
Дата добавления - 07.09.2013 в 11:43
nilem Дата: Суббота, 07.09.2013, 11:47 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет, Иванов74
Наверное, нужен какой-то список, типа: Иванов - синий - зеленый
Сидоров - желтый - красный
Если будет список на листе (список соответствий фамилии и цвета), то можно и формулами. Или хотите в макросе записать?

ПС Обратили внимание в файле? - EF жжет с творительным падежом :)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Суббота, 07.09.2013, 11:50
 
Ответить
СообщениеПривет, Иванов74
Наверное, нужен какой-то список, типа: Иванов - синий - зеленый
Сидоров - желтый - красный
Если будет список на листе (список соответствий фамилии и цвета), то можно и формулами. Или хотите в макросе записать?

ПС Обратили внимание в файле? - EF жжет с творительным падежом :)

Автор - nilem
Дата добавления - 07.09.2013 в 11:47
ivanov1974 Дата: Суббота, 07.09.2013, 11:58 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 1 ±
Замечаний: 0% ±

Насколько я понимаю, именно в макросе, так как конечный результат должен быть в текстовом виде для возможного дальнейшего редактирования. А "синий", "зеленый" и т. д. не играет роли, эти слова в самом макросе я заменю на другие. Мне много надо выбирать из разных выпадающих списков, но для облегчения ввода данных в другие ячейки я и прошу помочь в составлении этого макроса-шаблона.
 
Ответить
СообщениеНасколько я понимаю, именно в макросе, так как конечный результат должен быть в текстовом виде для возможного дальнейшего редактирования. А "синий", "зеленый" и т. д. не играет роли, эти слова в самом макросе я заменю на другие. Мне много надо выбирать из разных выпадающих списков, но для облегчения ввода данных в другие ячейки я и прошу помочь в составлении этого макроса-шаблона.

Автор - ivanov1974
Дата добавления - 07.09.2013 в 11:58
AndreTM Дата: Суббота, 07.09.2013, 12:24 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Так вы реальный пример и дайте, чтобы было понятно "что и откуда выбирать".
Или более конкретно опишите свою задачу - не думайте, что мы все здесь "агенты кровавой гэбни" :)
И nilem отчасти прав - всё может оказаться таким, что и макросы не понадобятся...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеТак вы реальный пример и дайте, чтобы было понятно "что и откуда выбирать".
Или более конкретно опишите свою задачу - не думайте, что мы все здесь "агенты кровавой гэбни" :)
И nilem отчасти прав - всё может оказаться таким, что и макросы не понадобятся...

Автор - AndreTM
Дата добавления - 07.09.2013 в 12:24
nilem Дата: Суббота, 07.09.2013, 12:27 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
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]
но, наверное, это не самый лучший вариант. Обязательно посмотрите на этом (в первую очередь :)) и др. сайтах темы про связанные выпадающие списки.
(из файла лишнее удалил, чтобы вошло на форум)
К сообщению приложен файл: 9046881.xls (37.5 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение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
Дата добавления - 07.09.2013 в 12:27
ivanov1974 Дата: Суббота, 07.09.2013, 15:00 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 1 ±
Замечаний: 0% ±

nilem, спасибо, то, что надо. AndreTM, спасибо за намерение помочь, может я как-то неуклюже объяснил, что мне надо, поэтому прошу прощения. Вопрос закрыт.
 
Ответить
Сообщениеnilem, спасибо, то, что надо. AndreTM, спасибо за намерение помочь, может я как-то неуклюже объяснил, что мне надо, поэтому прошу прощения. Вопрос закрыт.

Автор - ivanov1974
Дата добавления - 07.09.2013 в 15:00
Kate-Rina Дата: Пятница, 04.07.2014, 12:32 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, спасибо за макрос, супер!
а можно уточнить, если нужно чтобы вместо текста, определенные ячейки заливались, правльно написать так:
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

Спасибо

Автор - Kate-Rina
Дата добавления - 04.07.2014 в 12:32
_Boroda_ Дата: Пятница, 04.07.2014, 13:17 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Достаточно так
[vba]
Код
Target(2,1).Interior.Color = 65535
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДостаточно так
[vba]
Код
Target(2,1).Interior.Color = 65535
[/vba]

Автор - _Boroda_
Дата добавления - 04.07.2014 в 13:17
Kate-Rina Дата: Пятница, 04.07.2014, 13:56 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо огромное,

еще вопрос возник, как сделать так, чтоб при выборе разных условий из списка, оставалась только заливка для данного условия?
или я опять что-то не так сделала, но у меня получается все возможные цвета сразу на всем листе. а по идеи при одном условии, только один цвет должен быть.

СПАСИБО
[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]Читайте Правила форума.
Мало того, что Вы в чужой вопрос вклинились ( ну это еще понятно - макрос вроде отсюда), но Вы и пример еще не прикладываете.
Короче, эту тему закрываю. Создавайте свою.
К сообщению приложен файл: 5071978.png (6.3 Kb)
 
Ответить
СообщениеСпасибо огромное,

еще вопрос возник, как сделать так, чтоб при выборе разных условий из списка, оставалась только заливка для данного условия?
или я опять что-то не так сделала, но у меня получается все возможные цвета сразу на всем листе. а по идеи при одном условии, только один цвет должен быть.

СПАСИБО
[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
Дата добавления - 04.07.2014 в 13:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение ячеек при выборе в выпадающем списке (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!