Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Подстановка формулы по умолчанию в редактируемую ячейку
 
Цитата
Михаил Лебедев написал:
Вводите значение в соседнюю ячейку, а в формуле пропишите условие: Если соседняя ячейка пустая, тогда считать по формуле. иначе - бери из сосед. яч. значение

Можно и так, но может путать конечного пользователя.
Там и так форма для заполнения довольно большая
Хочется как раз визуально все упростить, чтобы у пользователя не кипела голова от "введи сюда или сюда, нажми кнопку"
Подстановка формулы по умолчанию в редактируемую ячейку
 
Цитата
evgeniygeo написал:
я бы сделал MsgBox с вопросом "Вы уверены, что хотите изменить формулу на значение?". И если пользователь нажмет "Да", то значение сохранится, а если "Нет", то вернется формула

Тут вопрос в том, что если человек изменит и введет значение, как потом вернуть формулу.
можно и кнопкой, но "чем меньше действий - тем лучше"
Подстановка формулы по умолчанию в редактируемую ячейку
 
Коллеги, нужно реализовать следующий функционал

Есть ячейка, по умолчанию, в ней должна быть сумма соседних, но при этом, должна оставаться возможность ввести число руками.

Правильно ли я понимаю, что делать надо так
Вешать скрипт VBA на изменение этой ячейки - если она пустая, то подставляем формулу.

Или есть какие то более изящные решения?
Чем меня смущает способ выше, если ячейки не именованные, то скрипт начнет надо будет править каждый раз при добавлении строк (а такое возможно)

или сделать именованные ячейки и не парится?
Изменено: gribnick75 - 08.02.2024 13:03:10
Как программным образом поднять диалог Экспорт
 
на всякий случай оставлю тут рабочий скрипт проверенный с сохранением в ПДФ

Код
Sub SaveAsPDF()
    Dim vName As Variant
    Dim wSheet As Worksheet
    vName = Application.GetSaveAsFilename(InitialFileName:="Test.pdf", FileFilter:="PDF files (*.pdf),*.pdf")
    If vName = False Then
        Beep
        Exit Sub
    End If
    Set wSheet = ActiveSheet
    wSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=vName
End Sub
Как программным образом поднять диалог Экспорт
 
да, Через Save As можно попробовать, если там сразу предустановить pdf, спасибо
Как программным образом поднять диалог Экспорт
 
Это  я делал, но этот макрос сразу пишет в файл, а мне хотелось бы поднять диалог, чтобы человек сам уже выбирал куда писать и какое название файла
Как программным образом поднять диалог Экспорт
 
Коллеги мне нужно в завершении работы скрипта поднять диалог экспорта данных ( в идеале сразу диалог экспорта ПДФ)

То есть что то типа
Application.Dialogs(xlDialogOpen).Show.

Но не могу найти название нужного диалога
Помогите плиз....  
Как узнать имя диапазона по адресу ячейки?
 
R091n,  работает, спасибо большое



PS...  а ведь только собирался домой поехать ))))
Изменено: gribnick75 - 14.12.2023 19:11:57
Как узнать имя диапазона по адресу ячейки?
 
Коллеги, нужно написать скрипт, который при изменении значения определенной ячейки делал  некое действие.

Ячейка c адресом $А$1  имеет имя (именованный диапазон)  - пусть будет MyCell1
Код
Private Sub Worksheet_Change(ByVal Target As Range)

   If Target.Address = "$A$1" Then
           MsgBox "действие"
   End If
    

End Sub
Это работает, но я хочу чтобы IF анализировал именно "если имя диапазона MyCell1 то действие"
Потому что адрес может поменяться при добавлении, столбцов, строк

Не могу найти как это сделать.  
Изменено: gribnick75 - 14.12.2023 18:52:42
Выбор значения выпадающего списка макросом, Нужно по кнопке выбрать значение списка в ячейке
 
Цитата
написал:
gribnick75, С трудом понимаю за чем это, но ответ таков, разработчик сие не предусмотрел и действительно действия такие не записываются.
Ясно, спасибо.  Думал может я что-то не так делаю.


Есть некий большой справочник, где много "настроек" через списки со значениями.
Идея была в том, чтобы человек  далекий от VBA и макросов мог бы записать макрос, который по умолчанию выставлял бы определенную комбинацию настроек.  Так как эти комбинации могут меняться и чтобы каждый раз не переписывать руками макросы, научить его "записывать" новый сценарий для комбинации настроек.

Надеюсь понятно объяснил )  
Выбор значения выпадающего списка макросом, Нужно по кнопке выбрать значение списка в ячейке
 
Цитата
написал:
gribnick75,
наверное я недопонял, но)))
вот записанный макрос:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6      Sub   Макрос1()          Range(  "S4"  ).  Select          Selection.Copy          Range(  "D6:D9"  ).  Select          ActiveSheet.Paste    End   Sub   
 
или вот:
Код
    [URL=#]?[/URL]       1  2  3  4      Sub   Макрос2()          Range(  "D6:D9"  ).  Select          Selection.FormulaR1C1 =   "да"    End   Sub   
 
Речь не про копи паст

А про ситуацию  есть  поле со списком выбора - "да/нет", если ты включаешь ЗАПИСЬ макроса и ВЫБИРАЕШЬ одно или другое значение списка, макрос это не записывает.
А если не  выбираешь из списка, а просто руками вписываешь значение, тогда записывает.

Было непонятно - это штатный алгоритм работы либо что-то я не правильно делал
Изменено: gribnick75 - 27.01.2023 09:37:04
Выбор значения выпадающего списка макросом, Нужно по кнопке выбрать значение списка в ячейке
 
Коллеги, есть такая потребность

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


Например

яблоки (список-да/нет)
груши  (список-да/нет)
картошка  (список-да/нет)  
капуста (список-да/нет)

Нужно записать макрос (желательно именно записать, а не руками через VBA делать)
который по кнопке выставлял определенную комбинацию - например "все фрукты - ДА"


Не нашел решения
При попытке просто записать макрос выставляя руками значения, эти действия не записываются

В гугле не нашел пока решения
Работа с колонтитулами через макрос, Странно работает макрос, помогите разобраться
 
Любопытно, действительно без "мусора" который при записи макроса на автомате был - все норм работает.
Спасибо большое
Работа с колонтитулами через макрос, Странно работает макрос, помогите разобраться
 
Коллеги, добрый день

Задача - в зависимости от запуска того или иного макроса (в примере - нажатие на кнопку), нужен разный текст в нижнем колонтитуле.

Но по факту работает как то странно.  
В первый прогон - колонтитул создается нормально.  
После этого, какой скрипт бы не запускал, выполняется только последняя инструкция RightFooter  (в данном случае правый нижний колонтитул)

   .LeftFooter = "1"
   .CenterFooter = "2"
   .RightFooter = "3"

если поменять местами, например

   .CenterFooter = "2"
   .RightFooter = "3"
   .LeftFooter = "1"

то опять выполняться будет только последняя - то есть LeftFooter
Прилагаю тестовый файл
Изменено: gribnick75 - 12.12.2021 20:02:38
Подстановка первого значения связанного списка
 
Цитата
vikttur написал: Только макросом.
Печалька, спасибо

Есть ли какие то готовые макросы, может попадались? Чтобы как пример посмотреть.
И можно ли такой макрос реализовать универсально - то есть не под конкретные списки, а параметризованные, чтобы использовать по сути как формулу с указанием аргументов?
Изменено: gribnick75 - 15.04.2020 20:58:01
Подстановка первого значения связанного списка
 
Никто не знает?  :oops:
по идее задача не меня одного должна волновать, но что то гугл не помог найти решения
Подстановка первого значения связанного списка
 
Сорри, прикрепил

Задача - сделать так, чтобы при выборе значения в "Список 1"
автоматом в "связанный" подставлялось первое значение связанного списка
Подстановка первого значения связанного списка
 
Всем привет

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

Ситуация
Есть  список со значениями условно - Группа1, Группа2

Есть связанные с ними списки
1)  А, Б ,В  для Группы 1
2)  Г, Д, Е  для Группы 2

Нужно чтобы при выборе Группы 1 или Группы 2 -  туда где связанный список, сразу подставлялось первое значение списка
То есть - Выбираем Группу 1 - во вложенном списке сразу А
Выбираем Группу 2 - во вложенном списке сразу Г

Списки реализованы по простому, через ДВССЫЛ()
Сейчас поведение дурацкое - при смене основного списка, во втором списке сидит старое значение, пока руками не выберешь другое
Подстановка значений ячеек из разных столбцов
 
Коллеги, привет

Направьте на наиболее изящное решение для следующей задачи

Есть справочник цен, где для всех материалов указана цена в 2 вариантах - вариант 1 (столбец) и вариант 2 (столбец)
Есть некая настройка (поле) настройка - данные из какого столбца брать

Есть прайс - куда в зависимости от значения настройки надо ставить данные либо из ячейки столбца 1 или 2 (строка одинаковая)
Использование переменной из VBA в формуле ячейки
 
Коллеги, подскажите, а есть ли какой-то способ использования параметра из макроса VBA в формуле ячейки?

Пример - некий признак IsSomething формируется в функции и принимает значение 0 или 1
А Где-то в ячейке есть формула, где используется данный признак.  Например, = =ОКРУГЛВВЕРХ(D32*E32;0)*IsSomething
--------

Либо, другой способ решения следующей задачи:
При изменении некоего  условия в ячейке - ДА/НЕТ
значения ряда других ячеек должны быть либо обнулены, либо иметь свое прописанное в ячейке значение.

В зависимости от условия придется менять много ячеек, прописывать для них всех ЕСЛИ - реально неохота )
Изменено: gribnick75 - 29.10.2019 17:43:16
Как скрыть/показать именованный диапазон строк в VBA
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Application.Range("range_subfloor_house")

Так работает, спасибо
Как скрыть/показать именованный диапазон строк в VBA
 
Эх...  дяденьки простите тупицу )))))))))))

face palm
умудрился 2 синтаксические ошибки сделать а не 1

БМВ - спасибо за помощь


PS тем не менее внутри Sub Worksheet_Change(ByVal Target As Range)  все равно ругается

Пришлось сделать отдельную функцию в модуле и дергать ее.  
Изменено: gribnick75 - 28.10.2019 19:42:14
Как скрыть/показать именованный диапазон строк в VBA
 
Цитата
Hellmaster написал:
entireRow.hidden

поправил уже, результат тот же
Как скрыть/показать именованный диапазон строк в VBA
 
Цитата
БМВ написал:
Range("myrows")

Видимо ошибка у меня где-то в другом


На листе 1 есть макрос следующего вида

Код
Private Sub Worksheet_Change(ByVal Target As Range)
   

   
   
   'Subfloor1_1 - ïðèçíàê èñïîëüçóåì èëè íåò íèæíåå ïåðåêðûòèå
   '
   '
   '
   ''
    Dim isSubfloorHouse As Integer
      
     If Target.Address = Range("Subfloor1_1").Address And Target = Range("Subfloor1_1") Then
          MsgBox (1)
          If Range("Subfloor1_1") = "Да" Then
            isSubfloorHouse = 0
            Range("range_subfloor_house").entryRow.Hidden = True
          Else
            Range("range_subfloor_house").entryRow.Hidden = False
            isSubfloorHouse = 1
          End If
        End If
     
End Sub
range_subfloor_house - задана через f3 для Листа 2   ='Лист2'!$15:$21

При срабатывании идет ошибка

Method Range of object - '_Worksheet' failed

как раз на строках Range("range_subfloor_house").entryRows.Hidden = True / False
Изменено: gribnick75 - 28.10.2019 18:19:47
Как скрыть/показать именованный диапазон строк в VBA
 
Прошу прощения за, возможно, дурацкий вопрос

Есть именованный диапазон строк уровня книги
Код
myrows   - > ='лист1'!$15:$21

Как в vba в макросе листа 2 - скрыть или показать этот диапазон?
Проверка имени активной ячейки по событию в листе в VBA
 
Имена для примера только

Спасибо!   Способ работает, что то я не додумался что по адресам можно сравнить  :oops:  
Проверка имени активной ячейки по событию в листе в VBA
 
Добрый день, коллеги

В VBA новичек, подскажите наиболее простой способ решения задачи
Есть лист где есть именованные ячейки. Например X1, X2
есть функция вида
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If ??? = "X1" Then
       
        If IsEmpty(Target) Then Exit Sub
           If Range("X1") = "Нет" Then
               'действие 1
          Else
           ' дейсвтвие 2
          End If
       End If
     
End Sub

Задача - составить  условие - что если событие target произошло в ячейке с именем x1 и ее значение не пустое то понеслись дальше
Есть ли у Target какое то свойство, которое содержит именно ИМЯ а не адрес ячейки?
Подстановка данных с разных листов в другую книгу
 
Добрый день

Поиском не смог найти чего то похожего

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

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

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

Спасибо
Страницы: 1
Наверх