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

Страницы: 1
Кадровый резерв и Развитие персонала, Создание единой базы по сотрудникам и их обучению
 
Цитата
Niarah пишет:
У меня идея все сделать через уникальные коды (как в Акссессе) н
так может имеет смысл сразу в Access и делать?
Ноль в конце значения после запятой., Как принудительно включить последний ноль в копейках?
 
Цитата
dreamkin пишет:
К сожалению переменная используется еще и для подстановки суммы прописью и такой формат имеющиеся функции не устраивает. Выскакивает ошибка типов.
Сделайте две переменных: в одну пишите число, во вторую - строку (Range.text)
Ну или когда подставляете функцию для прописи - делайте преобразование типов с помощь той же CDbl()
Изменено: ambasad - 23.07.2013 17:46:00
Суммирование с автоопределением строки и столбца
 
мой вариант посмотрите, там один раз задается диапазон
Суммирование с автоопределением строки и столбца
 
вариант
Как с помощью формулы указать путь к файлу
 
Код
ДВССЫЛ

возвращает ссылку, заданную текстовой строкой
настраиваемый РАНГ
 
Вариант
ЗЫ Может формульно стоит выкидывать ненужные значения?
Нахождение максимума, при соблюдении условий
 
Единственное ограничение - начало диапазона должно быть строго больше 0
Поиск значения в массиве VBA
 
Цитата
marker_mc пишет:
LVL,  это будет тогда не массив, а просто диапазон судя по записи
если Вы хотите записать в переменную диапазон, то эту переменную необходимо объявить как объект с помощью слова set
Код
set b=Range("A1:A10")

В записи же
Код
b=Range("A1:A10").Value

переменная b будет объявлена как массив (двумерный) и в неё будут записаны значения из соответствующего диапазона. Возможно вместо значений (value) можно что-то ещё писать: формулы, цвета ячейки и т.д.
Поиск значения в массиве VBA
 
Цитата
marker_mc пишет:
стоял вопрос именно в массиве VBAarray который с листом никак не связан, а вот КБ формируется именно с листа через созданное имя в диспетчере имен.
Может имеет смысл заполнить массив с того же листа? тогда всё будет совпадать
Интерполирование недостающих данных
 
Посчитайте количество циклов измерений за нужный период, длительность периода разделите на это число - получите средний интервал между измерениями. Ну и шагайте с этим интервалом.
И не заморачивайтесь с интерполяцией...
Суммирование однотипных данных из неотсортированных списков
 
Может имеет смысл изменить структуру исходных данных? Макросом например
Непонятки с диаграммой, пытаюсь повторить пример от автора сайта... не получается ((
 
Измените тип диаграммы с Линейчатой на Гистограмму
Смещение даты на диаграмме, Подписи на оси
 
Вариант.
Перейти от дат к месяцам и считать дробную часть месяца соответствующую нужной дате: (интересующая дата)/(количество дней в месяце)+(номер месяца).
График соответственно строить по месяцам
Макрос округления до целого выделенной области со смешанными данными
 
Или вставить проверку содержимого ячейки  
Sub RoundInPlace()  
For Each cc In Selection.Cells  
If WorksheetFunction.IsNonText(cc.Value) Then cc.Value = WorksheetFunction.RoundUp(cc.Value, 0)  
Next cc  
End Sub
Не могу победить числа, сохранённые как текст
 
это не в виде кода, а в виде действий мышкой. А в виде кода Вам поможет это записать макроридер
Удалить целиком те строки, у которых внутри выделенного диапазона стоят только пустые ячейки
 
Вы в Вашем коде проверяете пустоту ВСЕХ ячеек строки, но на самом деле в Вашем задании явно указано что надо удалить только те значения, в которых не указана цена и остаток - бишь надо проверять только колонки C и D  
Плюс зачем городить огород с перебором строк: Вы определили первую строку выделения (RB), определили количество строк выделения (RS) - вот и шагайте от RB к RB+RS. Хотите проверять колонки снизу вверх - шагайте от RB+RS к RB с шагом -1.  
У меня заработал такой код:  
Sub Óäàëèòü_ïóñòûå()  
   Dim RB As Long, CB As Long, RS As Long, CS As Long, I As Long  
     
   Application.ScreenUpdating = True  
   Application.Calculation = xlCalculationManual  
   RB = Selection.Cells(1, 1).Row  
   CB = Selection.Cells(1, 1).Column  
   RS = Selection.Rows.Count  
   CS = Selection.Columns.Count  
   For I = RB To RB + RS  
       If Range(Cells(I, 3), Cells(I, 4)).Text = "" Then Range(Cells(I, 3), Cells(I, 4)).EntireRow.Delete  
   Next I  
   Application.Calculation = xlCalculationAutomatic  
Application.ScreenUpdating = True  
End Sub
Не могу победить числа, сохранённые как текст
 
Как вариант: пробежаться по всем потенциально проблемным ячейкам макросом:  
Cells (i,j).Value = CDbl(Cells (i,j).Value)
Закрасить ячейки в зависимости от условного форматирования
 
Судя по "множеству условий условного форматирования" все они сводятся к одному: если в столбцах AO/AP/AQ что-то есть, то в качестве условного форматирования используются наборы значков (коих всего три); При этом значения для условного форматирования опираются на значения столбцов AO/AP/AQ этой же строки. Если же в указанных столбцах данных нет/данные не полные - в качестве условного форматирования используются гистограммы  
Может не забивать себе голову условным форматированием, и на первом этапе привязаться к столбцам AO/AP/AQ, написать макрос для покраски ячеек опираясь на них. А уже после покраски ячейки условное форматирование можно прицепить доп. бонусом в том же макросе. Такой подход считаю более разумным, ибо условное форматирование кто-то настроил - чтобы настроить покраску ячеек (а это получается тоже условное форматирование) надо опереться  на те же условия. Автор же судя по всему не знает системы в своём условном форматировании и пытается "взломать" однажды сделанное  
 
ИМХО. Проблема у Автора темы не с VBA, а с логикой работы его файла. После того как он структурирует для себя и нас условия для УФ - можно будет что-то вменяемое написать. А пытаться привязаться к УФ - бред
Как создать именно картотеку, чтобы фильтр находил карточки, а не строки?
 
Моё мнение: базу надо вести не в виде вот таких вот карточек, а виде обычной таблицы, где каждое поле - отдельный столбец - благо все карточки имеют одинаковые  поля. Работать с таблицей проще и приятнее. А сформировать простыню из определённых карточек для печати можно и с помощью макроса
несколько листов в Range
 
Ну так проверьте, делает Ваш макрос то что надо - Вам поправили код до того состояния, в котором он отрабатывает без ошибок, правьте если что-то не так в логике
несколько листов в Range
 
У вас куча синтаксических ошибок  
1. В строке с If .. Then - после Then ничего не должно идти - вот и получается ошибка  
2. Соблюдайте правила расположения парных операторов, в частности If-EndIf, For-Next. У Вас получился код For...If...Next...EndIf, а должен был получиться For...If...EndIf...Next  - что же Вы цикл на части разрываете  
 
Вот такой код работает (не знаю выдает ли он то, что надо, но по крайней мере отрабатывает без ошибок)  
 
Sub Macros_Dir2()  
 
Mask = (ThisWorkbook.Path & "\Данил\*")  
MyName = Dir(Mask, vbDirectory)  
Do While MyName <> ""  
 
For Each Worksheet In Worksheets  
If Worksheet.Range("H:H").Find(MyName) Is Nothing Then  
MsgBox Worksheet.Name  
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _  
ThisWorkbook.Path & "\Данил\" & MyName, TextToDisplay:= _  
MyName  
End If  
Next  
MyName = Dir  
Loop  
Columns("H:H").EntireColumn.AutoFit  
End Sub
не обновляются связи в общую книгу XLSX
 
Столкнулся со следующей проблемой: имеется Книга1, в которой заданы связи Книгой2, причём Книга2 имеет формат xlsx. При каждом обновлении связей в Книге1 (ручном или автоматическом) Excel просит указать путь к Книге2 вручную, самостоятельно он найти и обновить связи не может. Открыта Книга2 или закрыта роли не имеет.  
В интернете и на форуме решения не нашел. В чём может быть проблема и как с ней бороться.  
 
Наблюдения:  
1. Если Книга2 не в общем доступе, то проблема не наблюдается  
2. Если Книга2 имеет формат xls, то проблема так же не наблюдается
ФОРМУЛА ЕСЛИ
 
=ЕСЛИ(A1+A2+A3<$C$1;A1*B1+A2*B2+A3*B3;ЕСЛИ(A1+A2<$C$1;A1*B1+A2*B2+($C$1-A1-A2)*B3;ЕСЛИ(A1<$C$1;A1*B1+($C$1-A1)*B2;$C$1*B1)))  
 
A1,2,3 - доход  
B1,2,3 - коэффициент  
С1 - лимит
ФОРМУЛА ЕСЛИ
 
Третий доход это последнее добавление? Или уже выложите файл со всеми условиями и проще написать макрос. Потому что добавление каждого условия значительно увеличивает формулу
ФОРМУЛА ЕСЛИ
 
=ЕСЛИ(A1+A2<18000;A1*0,3719+A2*0,34;ЕСЛИ(A1<18000;A1*0,3719+(18000-A1)*0,34;A1*0,3719))  
 
A1 - доход1  
A2 - доход2
функция ЕСЛИ
 
я бы так сделал. расширьте словарь и пользуйтесь
Страницы: 1
Наверх