HotShot Пользователь Сообщений: 25 |
Приветствую всех любителей (ну и конечно «монстров» ексель в первую очередь) нужна ваша помощь … есть книга в которой на листе существует кнопка |
Catboyun Пользователь Сообщений: 1631 |
#2 18.11.2015 18:38:23 зачем так категорично?
есть же If Изменено: Catboyun — 18.11.2015 18:39:08 |
||
Sanja Пользователь Сообщений: 14838 |
#3 18.11.2015 18:41:50
Изменено: Sanja — 18.11.2015 18:44:26 Согласие есть продукт при полном непротивлении сторон. |
||
HotShot Пользователь Сообщений: 25 |
#4 18.11.2015 18:51:22
To Sanja:Спасибо, Сейчас буду пробовать … предпологал, что то такое … но так и не нашел свойств этого объекта … еще раз Спасибо. |
||
HotShot Пользователь Сообщений: 25 |
Дв Sanja … не работает … говорит Объект не подерживает это свойство или метод … не знаю может собачка де в другом месте порылась … ( |
CAHO Пользователь Сообщений: 2183 |
#6 18.11.2015 20:13:41 Если у Вас кнопка из семейства Элементов управления форм, то там вроде нет Enabled.
Или заменить кнопку на элемент ActiveX, чтобы можно было её блокировать Enabled. Ну, и соответственно макрос переместить на эту кнопку. Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
||
HotShot Пользователь Сообщений: 25 |
#7 18.11.2015 20:26:08
ммм… САНО если можно … вот с этого места, для «особо одаренных», если можно конечно, то на «пальцах» поясните … очень нужно … Пожалуйста |
||
CAHO Пользователь Сообщений: 2183 |
#8 18.11.2015 20:58:34 Нажмите два раза на кнопку правой кнопкой мыши в разных местах. Там появится список, в котором появится строчка Назначить макрос.
Вот между этих строчек запихиваете название вашего макроса. В данном случае POIUY.
И всё. Теперь нажимаете на кнопку и макрос выполнится. Ту кнопку можно удалить. Прикрепленные файлы
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
||||
HotShot Пользователь Сообщений: 25 |
Сано … прошу прощения, но это не совсем то, что мне хотелось … дело в том, что есть лист выполняющий определенный ряд операций с данными по нажатию кнопки помещенной в листе. Однако если данные не удовлетворяют определенным условиям по умолчанию, то кнопка должна быть недоступна. Отсюда и родился вопрос — как сделать уже имеющуюся кнопку листа недоступной при определенных условиях … (все равно Спасибо .. это тоже думаю потом пригодится). |
CAHO Пользователь Сообщений: 2183 |
Тогда я не понял какой именно результат вы хотите получить. Пример бы…… Изменено: CAHO — 18.11.2015 21:31:15 Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
HotShot Пользователь Сообщений: 25 |
#11 18.11.2015 21:34:12
Сано, ну если Вы не уйдете, то сейчас попробую прицепить пример … ну очень нужна помощь … правда |
||
RAN Пользователь Сообщений: 7091 |
#12 18.11.2015 21:41:27
У вас никаких мыслей не возникает? Изменено: RAN — 18.11.2015 21:43:35 |
||||
HotShot Пользователь Сообщений: 25 |
#13 18.11.2015 21:45:33 Вот это хочется привесить на открытие книги … лист там один, причем имеет кнопку … хочется иметь возможность менять статус кнопки (ну если это возможно конечно) …
|
||
HotShot Пользователь Сообщений: 25 |
#14 18.11.2015 21:50:35
Ну я как бы и пытаюсь выяснить… а возможно ли это? … если нет … то буду искать другие пути … |
||
RAN Пользователь Сообщений: 7091 |
#15 18.11.2015 22:21:22 Да уж. Мыслей нет, одни буквы.
1 ДА |
||
HotShot Пользователь Сообщений: 25 |
Ну наверное, работа с кнопкой в листе невозможна … она зараза такая нигде не отображается в объектах и свойств своих не даёть …значит глупость все это… |
RAN Пользователь Сообщений: 7091 |
#17 18.11.2015 22:26:02
Неужто?
Факт! |
||||||
МВТ Пользователь Сообщений: 1198 |
#18 18.11.2015 22:34:30 Немного запутался. А почему не сделать проще, в самом макросе прописать:
|
||
gling Пользователь Сообщений: 4024 |
#19 18.11.2015 22:49:24 А у меня вопрос, чем не удовлетворяет предложенное CAHO в ответе #6? Вы ведь пишите о том же. Этот код на кнопку. Она видна но не работает
Изменено: gling — 18.11.2015 22:50:49 |
||
Предположим, вы используете командную кнопку для запуска сценария VBA на своем листе. Когда сценарий VBA в некоторых случаях не используется, вам нужно скрыть командную кнопку, а не отображать ее на листе. И отобразите его снова, когда потребуется сценарий VBA. В этой статье говорится о скрытии или отображении кнопки Command на основе указанного значения ячейки в Excel. Пожалуйста, сделайте следующее.
Скрыть или отобразить командную кнопку на основе указанного значения ячейки с кодом VBA
Скрыть или отобразить командную кнопку на основе указанного значения ячейки с кодом VBA
Вы можете запустить приведенный ниже код VBA, чтобы скрыть или отобразить командную кнопку на основе указанного значения ячейки в Excel.
1. Щелкните правой кнопкой мыши вкладку листа, содержащую кнопку Command, которую необходимо отобразить, скрыть, затем щелкните Просмотреть код из контекстного меню.
2. Во всплывающем Microsoft Visual Basic для приложений окно, скопируйте и вставьте приведенный ниже код VBA в Code окно.
Код VBA: скрыть или отобразить командную кнопку на основе указанного значения ячейки
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Cells(1, 1).Value <> "1" Then
Me.CommandButton1.Visible = True
Else
Me.CommandButton1.Visible = False
End If
Application.ScreenUpdating = True
End Sub
Внимание: в коде, Ячейки (1, 1), 1 и CommandButton1 указывают, что CommandButton1 будет скрыт, если ячейка A1 содержит число 1, и отображается, если ячейка A1 содержит любые другие значения, кроме числа 1. См. снимок экрана ниже. И вы можете изменить их по своему усмотрению.
Статьи по теме:
- Как скопировать значение поля со списком в активную ячейку в Excel?
- Как отобразить формат даты в выводе поля со списком в Excel?
- Как открыть конкретный рабочий лист по выбранному значению поля со списком в Excel?
- Как предотвратить или отключить ввод текста в поле со списком в Excel?
- Как выйти из поля со списком, чтобы выбрать конкретную ячейку в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (13)
Оценок пока нет. Оцените первым!
Если на листе других объектов нет (а кнопки, фигуры, диаграммы — все это объекты), можно без использования переключателей. Нажатие пары клавиш Ctrl+6 скрывает/показывает объекты листа.
‘ —————
Вариант, если есть и другие объекты.
Разместить все объекты-невидимки на одном общем (назовем его BigObject). Красивом, залитом приятным цветом
Показывать/скрывать объекты можно с помощью параметра ZOrder, т.е. размещая объекты под/над BigObject:
на задний план
Sub ObjHidden()
With ActiveSheet
.Shapes("Кнопка 4354").ZOrder msoSendToBack
.....' другие объекты
End With
End Sub
на передний план
Sub ObjVisible()
' то же самое, но ZOrder msoBringToFront
End Sub
Правильнее управлять не видимостью объектов на BigObject, а положением самого BigObject относительно присосавшихся к нему паразитов )
Sub BigHidden()
ActiveSheet.Shapes("BigObject").ZOrder msoSendToBack
End Sub
Sub BigVisible()
ActiveSheet.Shapes("BigObject").ZOrder msoBringToFront
End Sub
И если уж управлять, то пускай он сам собой управляет, нечего ему кнопки нподсовывать. Дадим ему в помощь одну ячейку и пускай видимостью управляет клик на BigObject.
Sub HiddenVisibleObj()
With ActiveSheet.Shapes("BigObject")
If Range("A1").Value = 1 Then
.ZOrder msoBringToFront
Range("A1").Value = 0
Else
.ZOrder msoSendToBack
Range("A1").Value = 1
End If
End With
End Sub
Если считаете, что ячейку выделять — жирно будет, пускай своими средствами обходится, не маленький:
Sub HiddenVisibleObj()
With ActiveSheet.Shapes("BigObject")
If .TextFrame2.TextRange.Characters.Text = "" Then
.ZOrder msoBringToFront
.TextFrame2.TextRange.Characters.Text = "Все на дно!"
Else
.ZOrder msoSendToBack
.TextFrame2.TextRange.Characters.Text = ""
End If
End With
End Sub
Скрыть кнопку до тех пор,пока не будет нажата другая кнопка. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Содержание
- Hide individual custom ribbon buttons
- 2 Answers 2
- Disable button using Excel VBA
- 4 Answers 4
- Hide commandbutton based on cell value excel vba
- 4 Answers 4
- Hide close [X] button on excel vba userform for my progress bar
- 6 Answers 6
- Vba excel button hide
- Как скрыть или показать командную кнопку на основе указанного значения ячейки в Excel?
Hide individual custom ribbon buttons
I have an custom excel ribbon and an excel add-in that contains a class which is instantiated once on opening a workbook. Based on some attributes of the class I need certain buttons from the custom ribbon (all in the same tab) to be hidden.
My custom ribbon is:
I then have the following VBA macros in a module to load the custom ribbon and/or disable it:
In my specific workbook that the ribbon should load for I have a hidden sheet from which my class module class reads a value for each button to determine whether it should show or not. Once I’ve read this value how can I hide an individual button? All the examples I’ve found only seem to work for tabs. Could I pass the ribbonUI to the class and loop through each control? I haven’t been able to find a method for doing this. Thanks for any help!
2 Answers 2
You need to customize the ribbon at run-time.
Check my question (and answer) here although my problem was in PPT VBA, I did my testing in Excel and the solution to your problem should be very similar.
Instead of assigning a boolean true or false to the visible property of each button, you need another callback so that when this tab is loaded, the procedure checks whether your class object has been instantiated, and then sets true or false as necessary.
For example in my PPT part of my XML is like:
So instead of using the Visible property of the group, I use a custom attribute getVisible which calls a macro VisibleGroup . There are some nuances that I ran in to, like, I could not use the same callback/macro on different types of controls, hence why I have two callbacks ( EnabledControl and VisibleGroup ) both of which do exactly the same thing. I don’t know why, and this part of development does not seem to be very well-documented, unfortunately.
Check my code to see all the places I put breakpoints while I was testing. I had to do quite a bit of debugging to get it to work. Put breakpoints in every procedure and step through your code. It is a pain in the ass, but if you’ve gotten this far, I’m sure you will be able to make it work.
UPDATE
I did a brief test on my PPT Add-In. Functionally this is similar so it is easier for me to test than trying to recreate everything in Excel.
My add-in has it’s own Menu group, and some custom buttons. The relevant button line is this:
The full XML for your reference:
The EnableControl routine looks like this (I deliberately uncomment the MsgBox so that I can break & enter the code, you may want to do this just to debug and ensure that the proper Boolean val is being passed to the control):
You will need to modify the logic which assigns the returnedVal to suit your purposes. But basically this macro should fire every time that the button is about to be shown, so in my case it fires every time I open the Menu that contains it.
Источник
Disable button using Excel VBA
I want to disable a button with VBA code like this:
My button name is correct, because it doesn’t give me an error message, so the code is completely run through.
After this script I can click on that button and the assigned macro runs. Nothing should happen when I click on it.
4 Answers 4
Disabling a Form button (not talking ActiveX here) does not prevent the assigned macro to run and does not gray out the button. The code below does exactly that based on the version got from Excel. If you did not assign a name to your Form button, you can also use (Buttons(1).
If Excel version = 16 or higher the button is «enabled» by making it black and assigning my macro, else the button is «disabled» by making it gray and assigning no action to it.
Code can e.g. reside in Private Sub Worksheet_Activate() within sheet «Test Sheet»
Probably you are using ActiveX Button. Try this:
EDIT: ______________________________________________________________________________
For a Form control Button the following line
disables the button i.e. click event will no longer work but the appearance of the button does not change which gives an impression that the button is still active. So work around for that is to change the color of the text of the button as follows:
And to bring back button to its original state write:
Источник
Hide commandbutton based on cell value excel vba
I am trying to hide a commandbutton based on a specific cell value. I have looked up several codes and pasted them in excel (in the vba form when right clicking the sheet and selecting «view code»).
What am I doing wrong?
Here’s one of the codes I’ve tried:
4 Answers 4
Make sure you enable events before using your code. Also, you must place your code in Worksheet module, not in regular module. To enable events, use this simple sub.
please run this first:
and then your Code will run perfectly:
Your code is confusing, for a number of reasons.
Range , when it’s not qualified with a Worksheet object, implicitly refers to the ActiveSheet , i.e. ActiveSheet.Range . but when it’s in a worksheet’s code-behind, it implicitly refers to that worksheet’s Range property, i.e. Me.Range . Because the meaning of an unqualified Range call depends on context, it’s best to always qualify it with an explicit Worksheet object.
So if you’re in the code-behind module for Sheet1 , then Range(«A1») is equivalent to Sheet1.Range(«A1») , or even better, Me.Range(«A1») .
The two conditions will be evaluated every time, but only one of them needs to be: it’s inefficient.
Truth is, you don’t need to assign a Boolean literal — a Boolean expression is much cleaner.
Источник
Hide close [X] button on excel vba userform for my progress bar
I created a userform to show a progress bar when the macro is still importing sheets
The problem is the user can press the red [X] button that will close and interrupt the processing done.
Is there a way to hide this red button of doom so that potential users don’t have any confusing buttons to click while it runs.
I have tried this
and I used this on userform_initialize
I am getting this error message
this code was taken from here. I don’t know what I’m doing wrong and I already removed the comments. This is the simplest code that I found so I would like to integrate it to my userform. Any help is appreciated.
6 Answers 6
Below is a routine that you can call like this:
or from within your form:
Here’s the code you’ll need:
You can work it out from the following snippets:
Select the cmdClose button On the Menu bar, choose View | Code Where the cursor is flashing, enter the following code:
On the Menu bar, choose View | Object , to return to the UserForm.
To allow users to close the form by pressing the Esc key:
Select the cmdClose button In the Properties window, change the Cancel property to True
To prevent users from closing the form by clicking the X button
When the UserForm is opened, there is an X at the top right. In addition to using the Close Form button, people will be able to close the form by using the X. If you want to prevent that, follow these steps.
Right-click on an empty part of the UserForm Choose View | Code From the Procedure dropdown, at the top right, choose QueryClose
Where the cursor is flashing, paste the highlighted code from the following sample
On the Menu bar, choose View | Object , to return to the UserForm. Now, if someone clicks the X in the UserForm, they’ll see your message.
Источник
Vba excel button hide
Как скрыть или показать командную кнопку на основе указанного значения ячейки в Excel?
Предположим, вы используете командную кнопку для запуска сценария VBA на своем листе. Когда сценарий VBA в некоторых случаях не используется, вам нужно скрыть командную кнопку, а не отображать ее на листе. И отобразите его снова, когда потребуется сценарий VBA. В этой статье говорится о скрытии или отображении кнопки Command на основе указанного значения ячейки в Excel. Пожалуйста, сделайте следующее.
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Вы можете запустить приведенный ниже код VBA, чтобы скрыть или отобразить командную кнопку на основе указанного значения ячейки в Excel.
1. Щелкните правой кнопкой мыши вкладку листа, содержащую кнопку Command, которую необходимо отобразить, скрыть, затем щелкните Просмотреть код из контекстного меню.
2. Во всплывающем Microsoft Visual Basic для приложений окно, скопируйте и вставьте приведенный ниже код VBA в Code окно.
Код VBA: скрыть или отобразить командную кнопку на основе указанного значения ячейки
Внимание: в коде, Ячейки (1, 1) , 1 и CommandButton1 указывают, что CommandButton1 будет скрыт, если ячейка A1 содержит число 1, и отображается, если ячейка A1 содержит любые другие значения, кроме числа 1. См. снимок экрана ниже. И вы можете изменить их по своему усмотрению.
Источник