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

Страницы: 1 2 След.
Слетает форматирование. Как задать формат по умолчанию всей книге?
 
Переносить в книгу - трудоёмкий вариант. Всего 17 вкладок, на каждой вкладке используются имена, как общие для всей книги, так и определённые для книги. Так же часть информативности сделана через форматирование. Такое чудо досталось по наследству...  
Вопрос трансформировался в другой, как удалить пользовательские стили в Excel 2007 ? Насколько я понял - проблема именно в них.
Слетает форматирование. Как задать формат по умолчанию всей книге?
 
Проблема возникает с одной книгой, в которой формат по умолчанию изменился на денежный, и время от времени в ней слетают все форматы на всех вкладках.Если время от времени формат будет слетать но становиться "Общим" - меньше надо будет переделывать, что бы вернутся к исходному. Если у кого-нибудь есть опыт в этом - буду рад получить совет о том, как с этим бороться, или как от этого предохраняться.
Автозамена. Как ввести в ячейку (R), что бы оно не превратилось в ®?
 
Стыдно признаться, но столкнулся с такой проблемой...  
Не могу ввести в ячейку ®, так, что бы оно не превратилось в ®. Метомдом Заменить - заменяется на ®, но ручным вводом никак не получается.  
Как быть?
Полетели форматы
 
Поздняк метаться - файл уже сохранён, закрыт, открыт... Время паниковать.
Полетели форматы
 
В рабочем файле полетели форматы. На всех листах... Случилось данное несчастье после того, как промазал по сочетанию клавиш Ctrl+Shift+Esc и получилось Ctrl+`(показать формулы. Повторным сочетанием клавиш в первоначальное состояние вид формул вернулся - но все форматы стали денежными, причём по всей книге. Как теперь что? CTRL+Z не помогает...
Нумерация уникальных значений
 
Вырвиглазная формула полчается, пиццотметровкраснойтряпки СЧЕТЕСЛИ, ПОИСПОЗ, СМЕЩ, ЕСЛИ, да еще и МАКС и НАИБОЛЬШЕЕ отказалось работать с результатом всего этого... Моя кплакаси горько, несть печали и воздыхания, а потом удалять... В результате то что нужно? Может этого можно достичь более легким и читаемым методом?
Убрать пустые ячейки между заполненными, "сжав" их.
 
Если честно - то не думаю, что работа с формулами массива будет эффективнее.  Когда работаешь с массивами - подразумевается точное знание индексов, и все работы функций с массивами оптимизируют по этому принципу - быстрый доступ по индексу массива. У вас же задача - в работе с данными массива. А под это оптимизируют функции, работающие со строковыми переменными, так как они массивы - но главное там значение...
Убрать пустые ячейки между заполненными, "сжав" их.
 
Есть ли возможность использовать разделитель: т.е. мы заранее знаем, что, допустим, знак "/" не будет встречаться в этих семи ячейках? Если да - то эта задача решаема на уровне работы екселя с текстом.
Как разбить Общие данные по листам согласно столбца
 
Учёл твой совет, LightZ. Про такой способ копирования - не знал, если честно...  
Получилось разбиение, довольно быстрое, но алгоритм не оптимален. Не учитывает много возможных ошибок, условий итд. В общем, если всё идеально - то работать будет, и будет оставльять за собой мусор на исходном листе.  
 
Sub test()  
Dim targ_book As Workbook  
Dim r As Range  
Dim S_Criteria As Collection  
On Error Resume Next  
 
[C:C].Copy [M:M]
[M:M].RemoveDuplicates Columns:=1, Header:=xlYes
Set r = Range([M2], [M2].End(xlDown))
   
r.Copy  
[N2].PasteSpecial Transpose:=True
Set r = Range("N1", Cells(1, r.Count + 14))  
Set S_Criteria = New Collection  
For Each j In r  
j.Value = [M1]
S_Criteria.Add Range(j, j.End(xlDown))  
Next j  
Set r = [A:J]
   
Set targ_book = Workbooks.Add  
For Each j In S_Criteria  
With Worksheets.Add  
 .Name = j.Item(2).Value  
End With  
r.AdvancedFilter xlFilterCopy, j, Range("A1"), Unique:=False  
Next j  
End Sub  
 
Кстати, где узнать побольше про время видимости объекта, влияние With на это дело, необходимость/желательность скобок/With при вызове процедуры/функции ? А то уж слищком много вопросов накопилось по этому поводу...
Как разбить Общие данные по листам согласно столбца
 
Примерно те же результаты, потом надоело) Только пытался использовать сильные стороны екселя (некоторые методы, к приеру "Удалить дубликаты" и "Автофильтр" - работают катастрофически быстро). Но, к сожалению, не научился пока для некоторых вещей обходиться без Select-а и Selection :(  
 
Sub test()  
Dim targ_book As Workbook  
Dim sors_book As Workbook: Set sors_book = ActiveWorkbook  
Dim i As Worksheet  
Dim r As Range  
[C:C].Copy
[M:M].Select
ActiveSheet.Paste  
[M:M].RemoveDuplicates Columns:=1, Header:=xlYes
[M2].Select
Set r = Range(Selection, Selection.End(xlDown))  
Set targ_book = Workbooks.Add  
On Error Resume Next  
For Each j In r  
  Set i = Worksheets.Add  
  i.Name = j.Value  
Next j  
End Sub
Начисление премии в зависимости от нормы
 
... на доработку!  
Премии собирательны? Можно выполнить все 3 условия сразу, премии при этом складываются?    
В случае, если премии собирательны.  
В ячейке А1-Товар1, в В1 - Товар 2  
Формула:  
=((A1+B1)>5000)*(A1>3000)*(0.08*(A1-3000)+0.1*(B1-400)+(A1>3000)*(B1>400)*1,500*0,9)
Решение системы неравенств в Excel
 
Чердт! Никогда не нужна была эта функция )) А вообще, тут почти всё лишнее)
Назначение клавиш для специальной вставки
 
Я пользуюсь, пусть немного длинной, но доведённой до автоматизма комбинацией клавиш: "Вызов контекстного меню"-"Вниз"-Вниз"-"Ентер"-"Вниз"-Вниз"-"Энтер". На первый взгляд это и долго, но за маусом тянуться дольше... Видел человека, который получал туда доступ через Альт.
Решение системы неравенств в Excel
 
Если А1 это "а" и В1 "Х" то:  
=(1-(B1<A1)*2)*(A1*B1^2)*(A1<>B1)
VBA. Передача в метод Range
 
Или вот так:  
----------------------------------  
Function DrawTest(i As Range)  
i.Interior.Color = vbRed  
End Function  
----------------------------------  
Sub test2()  
Dim r As Range  
Set r = Cells(7, 14)  
With DrawTest®  
End With  
End Sub
POPUP Меню, не работает OnAction
 
Великое колдунство сиё есть... ZVI, большое спасибо, всё работает... Не мог бы ты объяснить как, или подсказать, где курить мануалы по этому поводу? В моём варианте макроса коммандбар P создаётся правильный, стринги OnAction у контролов прописаны такие же, но если делаю .ShowPopup по выходу из With P - то меню отображается но действия по OnAction не происходит... Прямо квантовая механика какая-то...
POPUP Меню, не работает OnAction
 
Никак не могу разобраться. Получается, создать динамическое попап меню можно, а вот создать его динамический функционал нельзя? По OnAction он не хочет пердавать параметр, для работы макроса или функции. Есть ли другие способы получить сведенья о том, какой имено пункт был выбрат, кроме поля OnAction?
как узнать какие новые строки появились в очередной выгрузке из базы
 
Если при выгрузке так в ексель так же попадает id записи - тогда просто сделать. На вашем месте я бы перед выгрузкой из базы, переносил список ID на соседний лист, в диапазон А:А, для удобства присвоил бы ему какое-нибудь имя, напоример "old_version", экспортировал бы базу на первый лист и прогнал бы =ВПР первой строки в "old_version" по значению ID новой версии базы. Потом отфильтровал бы по #Н/Д и сделал бы заливку фона. В этом случае использовать =ВПР, а не =СУММЕСЛИ выгоднее, так как он ищет первое вхождение, и список до конца проходит редко, а =СУММЕСЛИ всегда проходит список до конца и работает от этого на порядок дольше. Если такая операция нужна каждый день (или почти каждый) то можно и макрос написать, который будет делать то же самое, но автоматически.
POPUP Меню, не работает OnAction
 
Не, гиперссылки не устраивают. Есть несколько перегруженых листами книг, и макрос должен работать в любой книге и в любом её месте. Со временем допилю и вложенные меню с переходами от книги к книге на нужный лист.
POPUP Меню, не работает OnAction
 
Задача макроса - вывести названия всех листов в книге и при выборе нужного - перейти туда. Получился такой макрос:  
 
Sub Макрос1()  
Dim i As Worksheet  
Dim p As CommandBar  
 
    On Error Resume Next: Application.CommandBars.Add "My_Worksheets", msoBarPopup  
     'Без On Error Resume Next: не создаётся, странно...  
    Set p = Application.CommandBars("My_Worksheets")  
       
For Each i In Worksheets  
 
Set add_ctrl = p.Controls.Add(msoControlButton)  
With add_ctrl  
 .Caption = i.Name  
 .OnAction = "Worksheets(" & Chr(34) & i.Name & Chr(34) & ").Select"  
End With  
 
Next i  
p.ShowPopup  
End Sub  
 
Список то он выводит, но вот на выбранный лист не переходит. Пробовал так же сделать отдельную функцию, в которую бы передавалось название выбранного листа, но после выбора к ней даже нет обращения. Подскажите, как быть? Excel 2007.
офф. и о погоде:
 
В Тбилиси дождит и землятресёт...
Добавление картинки из буфера обмера в примечание ячейки.
 
{quote}{login=Leanna}{date=05.05.2012 10:20}{thema=}{post}@Z знаю, сама использую FSCapture и Image Uploader :)  
Но эти программы не создадут мне примечание в excel. А хотелось бы сделать одну операцию вместо двух.  
@Inoxodec у меня макрос надолго вешает эксель, а потом выдает ошибку. Но мне всё равно нужно не снятие скриншота, а взятие картинки которая лежит в буфере и сохранение на диск. Ещё он сохраняет файл в bmp который занимает 3мб, в идеале, конечно, хотелось бы другой формат.{/post}{/quote}  
 
Странно, при запуске мекроса меняется курсор, на песочные часы (не стал возиться с изменением курсора и возвратом к первоначальному). Может вы это приняли за зависание екселя?  
Сохранять в чём-либо кроме BMP формата - проблематично. Лично я не знаю такой API библиотеки, хотя она наверняка существует. Теоретически преобразование в PNG может сам ексель. xlsx/xlsb/xlsm - пакетные файлы. Если пределать им расширение на rar или zip и открыть, то в ..xl/media/ можно найти все рисунки к примечаниям в формате png. Но копать, как именно это делать методами екселя - лень...
Добавление картинки из буфера обмера в примечание ячейки.
 
Посмотрите прикреплённый мной в прошлом посте файл. Макрос там забинден на сочетание клавиш Ctrl+Q(в этом отношении Excel чувствителен к раскладке, так что убедитесь, что стоит англисская). Запустите макрос, и осторожно (не применяя правой клавиши мыши) переходите на нужный вам участок экрана или другой программы. Нажатие правой клавиши мыши - будет означать начальную точку захватываемого изображения. Удерживая правую клавишу проведите диагональ и отпустите правую клавишу. Отпускание клавиши означает конечную точку изображения. Если нужен скрин всего экрана, то просто зажать правую клавишу мыши в одном углу и провести до противоположного и там отпустить. Так же учтены варианты (с зажатым шифтом и контролом).
Добавление картинки из буфера обмера в примечание ячейки.
 
В своё время долго компилил куски кода из разных других макросов, что бы получить такой результат. Получилось примерно следующее.  
Я не нашёл только одного, как сделать так, что бы пропорции рисунка сохранялись?
Раcсчет процентов без промежуточных вычислений
 
{quote}{login=}{date=14.01.2012 02:20}{thema=Re: }{post}{quote}{login=}{date=14.01.2012 02:12}{thema=}{post}1000*0,005^12{/post}{/quote}  
Это бред какой то.... там вообще очень много нулей получается....{/post}{/quote}  
 
Это у вас бред какой-то, нулей мало уже на второй итерации. 5% от 1005 это не 5,03 а 5,0025, так что в любом случае, даже если округлять, если до 3 знаков то 5,003, а если как у вас до двух - то вообще 5,00. Формулу, которую вам подсказали - считает правильно. Но если ван надо округлять до 2 знаков после каждого периода - тогда лучше считать вашим методом, а не писать одну формулу, так как она будет длинной и иметь много вложенных функций. Правильные числа при округлении на каждом периоде до двух знаков выглядят так:  
10000    5  
10005    5  
10010    5,01  
10015,01 5,01  
10020,02 5,01  
10025,03 5,01  
10030,04 5,02  
10035,06 5,02  
10040,08 5,02  
10045,1  5,02  
10050,12 5,03  
10055,15 5,03
открытие формы с DTPicker, в DTPicker сегодняшняя дата
 
Не знаю, что у вас там произошло, но объект ComboBox повреждён. Как я понял, его зовут DTPicker1. Удалите его и создайте заново с тем же именем. Кстати, если вам нужна дата - то лучше пользоваться Date(), а то Now() еще и время выдаёт, а не только дату.
символы
 
{quote}{login=Юрий М}{date=27.12.2011 02:51}{thema=}{post}И почему этот вопрос родился в ЭТОЙ теме?{/post}{/quote}  
Да потому, что Vrangtop писал: "Мне этот макрос надо сделать в каждом файле." , что подразумевает, что в макрос должен быть в файле. Разумеется, он имел в виду, что в каждом файле ему надо прописать папку, в которой он лежит, но сама идея программно добавить процедуру или функцию в файл родилась именно от этого.
символы
 
{quote}{login=Юрий М}{date=27.12.2011 02:14}{thema=Re: }{post}{quote}{login=Vrangtop}{date=27.12.2011 01:53}{thema=}{post}Можно ли указать просто папку, чтобы макрос открыл все файлы в ней и отработав, закрыл их, сохранив изменеия.{/post}{/quote}Конечно можно! 152 раза подобный вопрос задавался. Один из вариантов в разделе "Приемы", остальные найдёте поиском по запросу "перебрать файлы в папке"{/post}{/quote}  
 
Тут родился другой вопрос. Как из ВБА добавить макрос в другой файл? Нашёл недокументированную коллекцию модулей ThisWorkbook.Modules, есть метод добавления модуля ThisWorkbook.Modules.Add , но вот как в модуль прописать текст процедуры или функции?
нахождение максимального значения в динамическом диапазоне
 
Для столбца "Фактическая дата устранения" формула такая же, только измените начальный пункт отсчёта для функции СМЕЩ с J12 на K12, или добавьте смещение на 1 столбец СМЕЩ(бла-бла-бла;бла-бла-бла;1;бла-бла-бла;бла-бла-бла).
нахождение максимального значения в динамическом диапазоне
 
Для ячейки С7 из вашего примера:  
=МАКС(СМЕЩ($J$12;ПОИСКПОЗ(B7;$H$12:$H$23;0)-1;0;СЧЁТЕСЛИ($H$12:$H$23;B7);1))
Страницы: 1 2 След.
Loading...