Страницы: 1
RSS
VBA выбор списка после нажатия "кнопки"
 
При нажатии кнопки вылезает макрос который делает определенное действие, неважно какое.
Возможно ли сделать, чтобы после нажатия кнопки вылезал список выбора (например диапазон ячеек на скрине), а далее после выбора применялся бы определенный макрос?
 
Цитата
Александр Добрый написал: При нажатии кнопки вылезает макрос
Ух ты, жути какие :)

Цитата
чтобы... вылезал список
Еще одна нечисть...

Выбор диапазона.
Код
Application("Выбрать диапазон";Type:= 8)

Если нужет список - форма пользователя с ListBox.

А вообще, нужно показывать пример того, что хотите
 
Цитата
Александр Добрый написал:
после нажатия кнопки вылезал список выбора
откуда и куда? Где кнопка? Где должен быть(или не быть?) список?
Цитата
Александр Добрый написал:
макрос который делает определенное действие, неважно какое
ошибаетесь - в контексте задачи очень важно, т.к. это может помешать "вылезти" списку и выбрать из него что-то и выполнить по этому выбору еще какой-то макрос.
Так много вопросов и так мало ответов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Sub КП_Word_Щелчок()

   Set objWrdApp = CreateObject("Word.Application")
   Set objWrdDoc = objWrdApp.documents.Add(ThisWorkbook.Path & "\Шаблон.docx")
   
   If (Range("C13") = "Ж") Then
   objWrdDoc.Bookmarks.Item("live").Range.Text = "Страхование жизни и здоровья: " & Range("M9").Text & "руб."
   objWrdDoc.Bookmarks.Item("total").Range.Text = Range("M12").Text
   End If
   If (Range("C13") = "И") Then
   objWrdDoc.Bookmarks.Item("house").Range.Text = "Страхование имущества (предмет залога): " & Range("M10").Text & "руб."
   objWrdDoc.Bookmarks.Item("total").Range.Text = Range("M12").Text
   End If
   If (Range("C13") = "Ж+И") Then
   objWrdDoc.Bookmarks.Item("live").Range.Text = "Страхование жизни и здоровья: " & Range("M9").Text & "руб."
   objWrdDoc.Bookmarks.Item("house").Range.Text = "Страхование имущества (предмет залога): " & Range("M10").Text & "руб."
   objWrdDoc.Bookmarks.Item("total").Range.Text = Range("M12").Text
   End If
   If (Range("C13") = "Ж+И+Т") Then
   objWrdDoc.Bookmarks.Item("live").Range.Text = "Страхование жизни и здоровья: " & Range("M9").Text & "руб."
   objWrdDoc.Bookmarks.Item("house").Range.Text = "Страхование имущества (предмет залога): " & Range("M10").Text & "руб."
   objWrdDoc.Bookmarks.Item("titul").Range.Text = "Страхование титула (права собственности): " & Range("M11").Text & "руб."
   objWrdDoc.Bookmarks.Item("total").Range.Text = Range("M12").Text
   End If
   If IsEmpty(Range("D12")) = False Then
   objWrdDoc.Bookmarks.Item("sozaem").Range.Text = "Страхование жизни и здоровья созаёмщика: " & Range("M8").Text & "руб."
   End If
   If (Range("H17") = "Да") Then
   objWrdDoc.Bookmarks.Item("earth").Range.Text = "Страхование земли: " & Range("M7").Text & "руб."
   End If
   
   objWrdDoc.Bookmarks.Item("name").Range.Text = Range("C5").Text
   If Range("AR22") > 0 Then objWrdDoc.Bookmarks.Item("oszup").Range.Text = "С увеличением на " & Range("J8").Text & " от основной суммы долга (по договору с банком)"
   If Range("AR22") = 0 Then objWrdDoc.Bookmarks.Item("oszup").Range.Text = "Без % увеличения основной суммы долга"
   
   objWrdDoc.SaveAs Filename:=ThisWorkbook.Path & "\Предварительный расчет для " & Range("C5").Text & ".docx"
   objWrdDoc.Close True
   objWrdApp.Quit
   Set objWrdApp = Nothing

Скрипт перекидывает информацию из ячеек в вордовский формат по закладкам

неважно где будет список
После выбора значения из списка - да, будет выполнен макрос который выше (только активные значения в макросе будут иные)
Например:
"Клик кнопки КП> Выбор из списка значения - РЕСО> запуск макроса который выше
 
Цитата
vikttur написал: Ух ты, жути какие
Да, тут целых 3 педали))
 
Цитата
Александр Добрый написал:
неважно где будет список
а, ну ладно. Не важно, так неважно. У меня интерес к теме пропал, т.к. списки могут быть:
-элементами ActiveX на листе
-элементами форм на листе
-списками на UserForm
-сделанными через проверку данных на листе

Куда список выпадать должен тоже непонятно. Предлагать тут варианты для всех видов списка желания ноль.
Могу только предложить сделать список тупо на листе и выбирать из него значения. А при каждом изменении вызывать макрос. Изменения отслеживать через событие листа Worksheet_Change.
Удачи!
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Александр Добрый, кнопка для форматирования кода в сообщении - <...>
Потренируйтесь на сообщении №4
 
Уважаемые, хелп ми!)
Привести в божеский такую штуку

Нажимем "КП" (1 скрин)



Становится доступным список с листбокса:
ListBox2.AddItem "Ингосстрах"
ListBox2.AddItem "Ренессанс"
ListBox2.AddItem "РЕСО"
ListBox2.AddItem "Альфа"




Выбираем необходимое значение и кликаем "Выгрузить" (2 скрин)

После чего срабатывает макрос согласно выбранного значения из списка:

Например выбрали Ингосстрах:

   If (Range("C13") = "Ж") Then
   objWrdDoc.Bookmarks.Item("live").Range.Text = "Страхование жизни и здоровья: " & Range("M9").Text & "руб."
   objWrdDoc.Bookmarks.Item("total").Range.Text = Range("M12").Text
   End If
   If (Range("C13") = "И") Then
   objWrdDoc.Bookmarks.Item("house").Range.Text = "Страхование имущества (предмет залога): " & Range("M10").Text & "руб."
   objWrdDoc.Bookmarks.Item("total").Range.Text = Range("M12").Text
   End If
objWrdDoc.SaveAs Filename:=ThisWorkbook.Path & "\Предварительный расчет для " & Range("C5").Text & ".docx"
   objWrdDoc.Close True
   objWrdApp.Quit
   Set objWrdApp = Nothing
   
End Sub

При необходимости могу загрузить тест.
Изменено: Александр Добрый - 20.10.2020 14:46:51
 
Александр Добрый, удалите иероглифы и приложите файл-пример
Не бойтесь совершенства. Вам его не достичь.
 
Читайте сообщение №7 и исправляйте сообщения!
 
Цитата
vikttur написал:
Читайте сообщение №7 и исправляйте сообщения!
Как быть если мозгов нехватает? :(
 
Тест во вложении
При использовании теста необходимо поместить оба файла в одну папку.
Страницы: 1
Наверх