Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 След.
Модернизация ленты, Изменение содержимого ленты
 
Доброго времени
Владимир Баукин Вы решили провести эксперимент с Excel. Как он отреагирует на одинаковые ID вкладок на ленте (<tab id="TabAirTable">). Я думаю, что они должны быть уникальные. А в этой строке (<ribbon startFromScratch="false">) можно оставить только ribbon. Полностью она нужна со значением True, чтобы не загружать стандартные вкладки Excel. Но это мои предположения, я еще только учусь.
Вычислить общее отработанное время сотрудника из разных зон
 
Ирина вы не правы у вас там текст используйте функция ВРЕМЗНАЧ для преобразования текста во время в файле сделал это
Отображение макросов из надстройки в списке Alt+F8
 
asesja
Цитата
Я примерно так делал. Описал это в сообщении #8.
Вообще то вы не так делали В сообщении №15 делается через старые панели эксель, а вы делали через Ribbon. И разница вообще-то есть. Все пользовательские панели созданные по старому автоматом помещаются на вкладку Надстройки  ленты при открытии в новом эксель,  и доступ к старым панелям и новым (лента и панель быстрого доступа) различны Хотя можно сказать, что к новым из VBA доступа практически нет.
Обращаться прямо по названию столбца vba
 

К определенному столбцу обращаются так

Код
Columns(N) 

где N  номер столбца

Можно так к столбцу A:A

Код
Range("A:A")

Изменено: Евгений Смирнов - 01.05.2021 07:41:40
Автоподстройка ширины столбцов по длине слова
 
edkudin Просто все желают, чтобы Вы научились сами разбираться.
1 макрос сначала определяет диапазон ячеек для изменений (Выделенный диапазон)
потом в цикле пробегают по этому диапазону вызывая 2 макрос который в каждой ячейке делает необходимые действия
Это вкратце
Как получить в макросе код цвета ячейки?
 
Обучение прошло успешно. Ура!!!
Вывести дату и время выполнения работ с учетом 8-ми часового рабочего дня
 
Антон а что такое контрольное время? Вы не пояснили. Где файл пример?
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
johnycage123
Цитата
А можно ли добавить, чтобы происходил  пересчёт,  ещё и по комбинации клавиш - скрытие столбца Ctrl+0 ?
Проверяйте теперь и Ctrl-0 реагирует
Изменено: Евгений Смирнов - 28.04.2021 04:50:17
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
sokol92 Спасибо большое за учебу. Насчет перехватчика сейчас нет времени. Попозже подумаю.
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
Событие скрытия(отображения) столбцов отлавливается на панели инструментов. По комбинации  клавиш нет события в моем файле.
Изменено: Евгений Смирнов - 27.04.2021 13:37:49
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
johnycage123 В сообщении 21 пересчет происходит  при скрытии(отображении) столбцов, а не по щелчку правой кнопки мыши.(этот метод в сообщении 15)
VBA. Не работает внешний цикл в вложенном цикле
 
На самом деле внешний цикл работал. Но у вас <MsgBox a> во  внутреннем цикле и после его исполнения переменные r и b  выходили за диапазон и поэтому во внутренний цикл он больше не заходил. Не работал внутренний цикл
Изменено: Евгений Смирнов - 27.04.2021 08:42:26
VBA. Не работает внешний цикл в вложенном цикле
 
Вроде так работает
Код
Sub OpenSpis2()
Application.ScreenUpdating = False
Dim b, s, r, v, z, a, q As Variant
z = 3
r = 3
b = 3
Do While Not IsEmpty(Cells(z, 1))
a = Cells(z, 1)
Do While Not IsEmpty(Cells(r, 1))

v = Cells(r, 1).Value
Cells(3, 3).Value = v
    q = Cells(b, 2)
    s = Evaluate("=CONCATENATE(MID(CELL(""имяфайла""),1,-2+FIND(""["",CELL(""имяфайла""))),""\"")")
    pt = s & a & "\" & q & ".xlsx"
    MsgBox a
Application.Workbooks.Open pt
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges:=False
r = r + 1
b = b + 1
Loop
r = 3: b = 3
z = z + 1
Loop
Application.ScreenUpdating = True
End Sub

Изменил немного код не совсем правильно написал сначала. Сейчас некогда попозже поясню




Изменено: Евгений Смирнов - 27.04.2021 08:27:47
VBA. Не работает внешний цикл в вложенном цикле
 
Уберите лишний цикл достаточно одного. Переменные z, r ,b тоже лишние достаточно одной из них Лишний цикл закоментировал. Переменные убирайте сами.Вы же учитесь    Сразу не понял что в каждой папке несколько файлов
Изменено: Евгений Смирнов - 27.04.2021 08:15:33
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
С методом Ontime получилось. Задержка 1/5 секунды поставил. В коде можно поменять. Пересчет будет при скрытии(отображении) столбцов. UDF Mershik. Советы sokol92  
Изменено: Евгений Смирнов - 27.04.2021 05:35:51
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
По методу sokol92 написал события скрытия и отображения столбцов, но они происходят перед скрытием(отображением) столбца, сразу после нажатия кнопки скрыть(показать) а столбцы еще не скрыты. Пересчет происходит рано. Не помогает
Кстати с этим оператором при повторном выделении любого столбца происходит пересчет
Код
Application.Volatile True
Изменено: Евгений Смирнов - 27.04.2021 09:20:37
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
Нет не будет. Зачем спрашивать сами знаете. Чтобы нормально сделать надо писать как предложил sokol92 в сообщении 8
Сумма только видимых столбцов, Добрый день! Нужен макрос для суммирования только видимых столбцов, без скрытых столбцов.
 
Как промежуточный вариант вставляем как предложил sokol92 оператор в функцию Mershik
Код
Application.Volatile True

В книге есть событие щелчок правой кнопки

Код
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Application.Calculate
End Sub

будет пересчет по щелчку правой кнопки мыши

Изменено: Евгений Смирнов - 26.04.2021 17:23:03
построение таблицы по заданному условию цвета ячейки на основе имеющегося массива данных
 
В этот макрос ничего не надо добавлять он не по теме
Надо писать другой
VBA скрыть все неактивные (все невыбранные) листы в Excel
 
Еще вариант
Код
Sub Var2()
Dim Sh As Worksheet, Tp, i&
Tp = "=ROW(R1:R" & Worksheets.Count & ")"
Tp = Application.WorksheetFunction.Transpose(Application.Evaluate(Tp))
For Each Sh In ActiveWindow.SelectedSheets
Tp = Filter(Tp, Sh.Index, 0)
Next Sh
For i = LBound(Tp) To UBound(Tp)
Sheets(Val(Tp(i))).Visible = xlSheetHidden
Next i
End Sub
Создание файлов по шаблону с сохранением в новую папку, оптимизация кода для увеличение скорости
 
8 строка кода в сообщении 1 End If не нужна
Как без использования рабочего листа записать в переменную массив, возвращаемый формулой
 
Цитата
БМВ написал:
где тут Evaluate
Вы отчасти правы Ваш ответ соответствует названию темы, Просто название темы не совсем подходящее, но задача стояла
Цитата
Как без использования рабочего листа записать в переменную массив возвращаемый данной формулой.
Поэтому и ваш вариант и вариант sokol92 решают эту задачу. И хорошо, что я теперь знаю 2 варианта.
Изменено: Евгений Смирнов - 25.04.2021 05:49:19
Как без использования рабочего листа записать в переменную массив, возвращаемый формулой
 
sokol92 Спасибо Вам огромное. Очень интересное решение.
Как без использования рабочего листа записать в переменную массив, возвращаемый формулой
 
Marat Ta Ссылка которую вы дали это в VBA там есть простенький макрос от Юрий М такой я и сам бы написал. Мне хотелось формулу листа другую не =СЧЁТЕСЛИ($A$2:$A$11;$A$2:$A$11)., которая бы выдала массив 3 значений  {3:2:5}, чтобы дальше в коде Vba не делать лишних движений, а сразу получить массив из 3 значений методом Evaluate. С формулами у меня сложнее чем с макросами.
Изменено: Евгений Смирнов - 24.04.2021 10:40:59
Как без использования рабочего листа записать в переменную массив, возвращаемый формулой
 

Не могу придумать название для новой темы и может и не надо новую Есть еще один вопрос
Формула =СЧЁТЕСЛИ($A$2:$A$11;$A$2:$A$11). Возвращает массив 10 элементов {3:3:3:2:2:5:5:5:5:5}
Надо формулу,чтобы возвращала массив из 3 элементов. Уникальные значения {3:2:5}

Как без использования рабочего листа записать в переменную массив, возвращаемый формулой
 
БМВ Спасибо большое все работает
Могли бы вы обьяснить это. Я не могу понять почему нужно добавить функцию Index
Как без использования рабочего листа записать в переменную массив, возвращаемый формулой
 
Здравствуйте уважаемые знатоки.
Помогите пожалуйста разобраться в вопросе. У меня не получается получить массив с помощью метода Evaluate.
Есть диапазон строк и простая формула =СЧЁТЕСЛИ($A$2:$A$11;$A$2:$A$11).
Она возвращает массив значений В справке написано: ”Если выбрана часть формулы в строке формул
подсчитать выбранную часть клавиша F9 Для замены выбранной части формулы рассчитанным значением
нажмите клавишу ENTER” В результате этих действий мы увидим {3:3:3:2:2:5:5:5:5:5}
Те формула возвращает массив. Также если эту формулу использовать в качестве аргумента массив в функции
Индекс можно получить любой элемент массива, что также доказывает данная формула возвращает массив
В файле примере (макрос1) получения массива значений этой формулы при помощи листа
т.е записываем её в диапазон листа считываем в переменную Variant Tp и получаем массив {3:3:3:2:2:5:5:5:5:5}
а методом Evaluate (Макрос3 в примере) получаем одно значение, по видимому 1 элемент массива, а не массив.
Как без использования рабочего листа(что реализовано в макрос1) записать в переменную массив возвращаемый данной формулой.
Разность времени при различных условиях
 
Irina У вас действительно некорректно описаны условия, о чём верно подметил ПРОИЗВЕД  Эти условия никогда не будут выполняться          
Цитата
ЕСЛИ E=G=I, И J>F; И (H>F), то J-H
ЕСЛИ E=G=I, И J>F; И (H<F), то J-F
Поэтому надо правильно поставить условия. Если их выбросить то будет так
Цитата
=ЕСЛИ((E4=I4)*(J4<F4)+(E4>I4);"Раньше плана"; ЕСЛИ((E4=I4)*(J4>F4)+(E4<I4)*(J4>F4);J4-F4;ЕСЛИ((E4<I4)*(J4<F4);J4-F4+1;"Ни одно условие не выполнилось")))
Изменено: Евгений Смирнов - 18.04.2021 14:40:10
Как не перебирать все условия, а выйти после первой ИСТИНЫ
 
Поздно прочитал тему.  Поругали и автора и помогающих.


Изменено: Евгений Смирнов - 24.04.2021 07:14:44
Подсчет количества товаров в ячейке, В ячейке заказа собраны товары с артикулом. Необходимо подсчитать количество товара.
 
Если 2 раза встречается <шт> то так, если больше надо добавить еще
Цитата
=ДЛСТР($C2)*2-ДЛСТР(ПОДСТАВИТЬ($C2;",";""))-ДЛСТР(ПОДСТАВИТЬ($C2;";";""))+1+ЕСЛИОШИБКА(ПСТР(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($C2;"-";ПОВТОР(" ";99));99;99));1;1)-1;0)+ЕСЛИОШИБКА(ПСТР(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($C2;"-";ПОВТОР(" ";99));99*2;99));1;1)-1;0)
А вообще надо БМВ приглашать он напишет круто
Изменено: Евгений Смирнов - 16.04.2021 12:11:01
Страницы: 1 2 3 4 5 6 7 8 9 След.
Наверх