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

Страницы: 1
Error in loading DLL, Не могу определить недостающую библиотеку
 
Есть Add-in, который сам написал.
На большинстве машин работает без проблем.
Но на одной - не хочет идти.

Не могу определить, которой библиотеки не хватает, чтоб запустить этот макрос (в приложении)?

При попытке запуска ругается на первую строку:
Код
Public LevelsRange As Range
С сообщением "Automation error".

Подскажите, чего не хвататет?
Гугл и поиск по форуму не дал результатов... =(
EXCEL 2016 VBA редактор. Не меняется размер шрифта
 
Столкнулся с проблемой.

Хочу увеличить размер шрифта.
Делаю соответствующие изменения в настройках. Но изменения не применяются.


Подскажите, в чем проблема?
Office 2016.
Текстовое значение как цифру
 
В одной ячейке сцеплены 57 ячеек. И образуют следующий текст "1+2*3+4*5+6*7+8*9+10*11+12*13+14+15"
Как преобразовать это текст в формулу и посчитать?
Без VBA.

Пробовал функцию VALUE - не срабатывает...
Поиск по форуму "текст как цифры" не дал ничего путного.
Макрос: перебрать все возможные комбинации
 
Друзья,

Появилась задача, которую я не могу корректно сформулировать в коде VBA.
ДАНО:
Есть диапазон в колонке А. Диапазон содержит нули.


Высота колнки А может меняться. Для примера, я сделал 3 ячейки.
В этих 3х ячейках надо по очереди перебрать все возможные варианты комбинации единиц и нулей.
Для данного примера, это 8 возможных вариантом.

Но если высота данных 10, 20, 30 то задача усложняется.

И я не могу этот алгоритм написать в VBA.
Может кто это уже делал?
Помогите с кодом на перебор.

Поиском пользовался. Но запрос сложно унифицировать в поиске, поэтому, я не нашел того что искал... =(
Заранее благодарен.
Макрос для коллекций и сбора инфы в коллекции, возможность создать функцию CollectionCreate(ColName as String, DataAdd as Range)
 
Здравствуйте!

Есть мысль. Но не знаю, на сколько она реализуема.
Когда пишу макросы, часто приходится вновь и вновь писать код для создания коллекции и накопления в неё информации.

Так, вот, возможно ли написать sub, который бы это делал без лишнего гемора?
К примеру:
CollectionCreate(TESTCOLLECTION) - создать коллекцию с имененм "TESTCOLLECTION"
CollectionAdd(TESTCOLLECTION, 100) - добавляет 100 в коллекцию  "TESTCOLLECTION"
CollectionWrite(TESTCOLLECTION, sheet1, a1) - пишет всю инфу из коллекции "TESTCOLLECTION" на страницу "sheet1" ячейку "A1".

Я не прошу это написать, я просто хочу понять, это возможно?
Если да, то подскажите, направление - как это реализовать. То что я пробовал - не корректно. А правильно загуглить вопрос не получается, т.к. не могу коротко сформировать вопрос.
Изменено: SanShiney - 23.06.2016 10:10:50
Корректная передача UserForm как параметр Sub-а, Корректность использования процедуры типа sub test (frm as UserForm)
 
Работаю над оптимизацией кода. Т.к. он получается очень нагромождённым.
И некоторые процессы, я понимаю, что их можно упростить. Но в виду слабого понимания ограничений VBA не могу корректно изложить код.

суть проблемы:
Есть код, например:
Код
sub GetData()
UserForm1.Show vbModeless
WaitForInput (UserForm1)
end sub

sub WaitForInput (frm as UserForm)
Do Until frm.Visible = False
    DoEvents
Loop
end sub
По не понятной мне причине, VBA ругается на Typemismatch.

Поиском пользовался. Ответа не нашел.
Благодарю, если поделитесь знаниями.

Тестовый файл приложен.
[ Закрыто] Объясните причину ошибки, В коде возникает ошибка run time error 91
 
Вот пример кода (без излишеств):
Код
Sub Test()
    
    Dim IDCell As Range, EVCell As Range

    Set wsSource = ThisWorkbook.Sheets("TEST SHEET")

    Set ActivityIDCell = wsSource.Range(FindCell("Activity ID"))
    Set EVCell = wsSource.Range(FindCell("EARNED VALUE")) ' Ошибка возникает после второго раза запуска функции FindCell

End Sub

Function FindCell(CellContent As String)

    FindCell = wsSource.Cells.Find(CellContent, LookIn:=xlValues).Address

End Function

Объясните, почему, при повторном вызове функции FindCell выскакивает ошибка 91? =(
Я не совсем понимаю... Что именно не так.
Не удаляемые стили, Стили excel которые невозможно удалить
 
Есть файл. https://drive.google.com/file/d/0B7oBaHlCIEhaZVp5dC1uUkQ0eDQ/view?usp=sharing

размер файла 300 кб, не сжимается. Поэтому, выложил на google drive.
В этом файле есть стили, которые надо удалить. Но, они не удаляются.

Условия:
Надо удалить стили именно в этом файле, т.к. этот пример, является копией файла, с которого удалено всё содержимое, и оставлена только одна чистая вкладка.
Поэтому, все решения должны быть выполнены внутри данного файла, без предложений создать новый файл, т.к. когда вкладки перекочовывают в новый файл, все "пустые" стили тоже перекочёвывают.

Что пробовал:
* Пробовал удалять ручками - нет результата
* Пробовал удалять различными VBA кодами обнаруженными на просторах тырнета. Эффекта нет.
* Пробовал гуглить. Проблемы есть, решения нет.
* Пробовал гуглить на этом форуме. Пошелестив первые 5 страниц ничего толкогого не нашел.

Буду благодарен любому совету!
Проблема Циклов и возможная альтернатива, альтернатива для LOOP ов
 
Есть ли альтернатива циклам?

К примеру, есть таблица данных размером 1 000 x 1 000, где надо удалить содержимое ячеек, в которых содержимое >100 и <1000.
Если прогонять через loop это занимает кучу времени.

Есть ли альтернатива циклу?
Visual Scripting - написание скрипта визуальным модулем
 
На просторах тырнета встретил отличную, интеллектуальную штуковину, которая называется Visual scripting.
Она позволяет визуализировать процесс написания кода, что несказанно облегчает процесс написания оного.
Но поиск в гугле аналога для excel не дал ничего путного.
Может кто из знатоков форму знает о наличии или отсутсвии подобной фичи на EXCEL.

Чтоб было понятно, что такое Visual Scriptin выкладываю ссылку на видео.
https://www.youtube.com/watch?v=BK72HzyYn_8  
Применить sub к некоторым листам.
 
Приветсвую!
Вопрос:
Есть VBA код. К примеру, такой:
Код
Sub writeA()
cells(1,1) = "A"
End Sub 
Теперь, данный код, мне надо применить к определённым листам в книге, к примеру листы 1,3,7,8.
Как это можно написать в VBA. гугл не помог. Видимо не правильно даю запрос.
Изменено: SanShiney - 31.01.2015 21:39:45
Синтаксис Property Let/Set/Get, VBA понятия
 
Прошу простить, но поиском ползовался и даже в гугле смотрел.
но так и не смог понять принцип работы данного синтаксиса в VBA.
Подскажите ссыль где это разъясняется просто и с примерами.

Ходил на офф форум Microsoft но там информация скудная и понимания не дала.

Конкретно не понятен следующий код "Property Let PenColor(ColorName As String)" (и далее) в примере ниже:
Код
Dim CurrentColor As Integer
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3

' Set the pen color property for a Drawing package.
' The module-level variable CurrentColor is set to
' a numeric value that identifies the color used for drawing.
Property Let PenColor(ColorName As String)
   Select Case ColorName   ' Check color name string.
      Case "Red"
         CurrentColor = RED   ' Assign value for Red.
      Case "Green"
         CurrentColor = GREEN   ' Assign value for Green.
      Case "Blue"
         CurrentColor = BLUE   ' Assign value for Blue.
      Case Else
         CurrentColor = BLACK   ' Assign default value.
   End Select
End Property

' The following code sets the PenColor property for a drawing package
' by calling the Property let procedure.

PenColor = "Red"
 
Изменено: SanShiney - 27.10.2014 17:19:06
Суммировать значения из колонок "C:C" всех вкладок, разный результат одной и той же формулы
 
Друзъя, столкнулся со необычайно странной проблемой!!!
Сделал длинную формулу из комбинаций функций INDIRECT и MATCH.
Цель формулы - суммировать значения из колонок "C:C" всех вкладок.

Но так получается, что формула корректно считает только первый столбец данных на странице "SUMMING",




в то время как остальные суммируются либо не корректно либо выдают ошибки.





Кто может понять - в чем дело?
Почему одна и та же формула ведёт себя по разному?

С/У
SanShiney
Изменено: SanShiney - 12.10.2014 13:15:45
Collections и Error handling, На одном компе данный код работает, а на другом выдает ошибку
 
Вчера написал код. Ниже привожу выдержку по коду, которая даёт проблему.

Код
 ' Раздаю определенения
  Dim arr1 As New Collection, a1
  Dim aFirstArray1() As Variant
  Dim i1 As Long
 
' Присваиваю значения переменным. Т.к. данные на другой странице, использую WTIH
With Sheets("PROJECT DETAILS")
    LastRow1 = .Cells.Find("*", .Range("A1"), , , xlByRows, xlPrevious).Row
    PROJECTSLIST1 = .Range(.Cells(2, 1), .Cells(LastRow1, 1)).Value
End With
 
'Пытаюсь включить уникальные значения из списка "PROJECTSLIST1" в ListBox "ProjectsList" путём фильтрации через свойства Collection.
aFirstArray1() = PROJECTSLIST1
  On Error Resume Next
  For Each a1 In aFirstArray1
  arr1.Add a1, a1
  Next

  For Each a1 In arr1
     frm_PROJECTWISEREPORT.ProjectsList.AddItem arr1(a1)
  Next
End If
На домашнем компьютере код выполнялся идеально, и добавлял в соответсвтующий ListBox уникальные значения списка PROJECTLIST1.
И в случае ошибки (не уникальное значение) переходил к следующему пункту. Однако, открыв код на другом компе обнаружил, что код выдает ошибку. А именно в отрезке:

Код
aFirstArray1() = PROJECTSLIST1
  On Error Resume Next
  For Each a1 In aFirstArray1
  arr1.Add a1, a1
  Next
Я так понимаю, что это в связи с разными версиями EXCEL?!





И самое главное, как "заставить" ErrorHandler работать на всех компах? Честно гуглил пару часов, но ответа не добился. Видимо в силу слабых знаний VBA.

Забыл приложить сам файл.
Файл во вложении.
Проблемный код в форме "frm_PROJECTWISEREPORT"
Изменено: SanShiney - 08.09.2014 10:02:30
Удаление строк на основании критерия (оптимизация решения), вопрос в оптимизации процесса
 
Допустим, в колонке А есть данные, как показано на рисунке ниже:



Основываясь на этих данных надо удалить определённые строки. К примеру, при условии что в строке есть символ "А", то строку надо удалять.
Решил я это следущим кодом:
Код
Sub test()

For Each c In Range("A:A")
If c Like "A" Then
    CriteriaRow = c.Row
    Rows(CriteriaRow).Delete
End If
Next

End Sub
И когда мы говорим, о 100 строк, то всё выполняется более менее хорошо.
Но когда на данном параметре надо удалить 1 000 и более строк процесс затягивается на минуты.

ВОПРОС: Очень прошу подсказать метод оптимизации данной задачи.

Пример с кодом во вложении.
Искал на форуме, но по данному вопросу оптимизации ничего не нашел...
Обработка формата даты посредством VBA
 
Приветствую!

Вводная часть (можно пропустить):
Я работаю планнинг менеджером в одной компании. Для планирования работ есть программа (Priavera) которая работает как База даннных. В ней есть информация, которую я хочу обработать в Excel, т.к. сама программа не выдает информации в качестве приемлемом для презентации. Поэтому, я копирую данные из сторонней программы и вставляю их как текст. И потом, я произвожу кучу операций по обработке данных, для того, чтоб приветси их в формат приемлемый для обработки. Т.к. эту операцию я произвожу часто, я хотел автоматизировать её через VBA. И на данном пути, у меня получилось почти всё, за исключением некоторых моментов. Вот об одном из них я и хочу спросить.

Вводная часть в проблему:
Есть данные, к примеру в столбце А, которые выглядят как даты, но при этом, воспринимаются как текст.
Теперь, посредством VBA я хочу произвести замену "." на ту же самую точку или знак "/" (в зависимости от региональных стандартов), чтоб эти ячейки были восприняты как ДАТА.
Если это делать в самом EXCEL через функцию автозамены "CTRL+H" то даты в ячейке буду поняти и преобразованы корректно (в соответствии с форматом принятым в европе "DD.MM,YYYY"  ;)  .
Проблема:
Но если произвести замену символа через VBA, то в этом случае, формат "восприятия" даты будет по американскому стандарту (MM.DD.YYYY).
Т.е. если смотреть по примеру, ячейка А3 была отформатирована как Ноябрь 05 2014 года, а ячейки А4 и А5 не были восприняты, т.к. нет месяцев под номером 24 и 15.
Вопрос:
Как мне в данной ситауции, в VBA сделать так, чтоб данные в ячейках с A2 по A5 цифры были прочитаны именно в европейском формате, а не в американском???

Важно, чтоб это было выполненно именно в VBA,
Заранее благодарю.
Рисунки удалены: превышение размера вложения [МОДЕРАТОР]
01-Jan-2013 русский excel не понимает формат
 
Есть выгрузка большого объёма информации из сторонней программы в excel.
При этом там есть даты в формате английского языка. Системный язык стоит "Русский" и соответственно даты в формате "29-Jan-2013" он не понимает.

Чтоб понимало производим замену "-Jan-" на "-Янв-" и т.д. по всем оставшимся 11 месяцам. =)

Есть какой то другой способ заставить excel "цеплять" иностранные даты, при условии не менять системный язык? ;)

Поиск использовал. По моему вопросу ничего толкового не дало.

Спасибо за советы.
Выполнение определённых шагов перед сохранением/закрытием/печатью файла, Изменять значение ячеек
 
Есть таблица. Эту таблицу обновляет подрядчик. Однако, при заполнении они часто допускают ошибки, формулы они корректируют вручную, что приводит к тому, что в целом таблица получается не правильная.

Мне надоЯ бы хотел, чтоб перед тем, как отправить на печать, либо перед сохранение файла ячейки с формулами "возвращались" к исправному содержанию.

Я понимаю, что нет такого макроса, который бы сам всё считал.
Поэтому как один из этапов решения данной проблемы я создал копию таблицы.

Теперь мне нужен код я бы хотел найти способ, который бы перед печатью/сохранением копировал ячейки с листа "sheet2" в соответствующие ячейки листа "sheet1".

надеюсь верно изложил проблему.

Пример во вложении.
Изменено: SanShiney - 10.08.2013 14:05:45
Отключение оповещения о защищённости ячеек
 
Я правда пользовался поиском.
Но так и не смог найти где и каким способом можно отключить оповещение о том, что ячейки заблокированы.
Очен ннннада.

Подскажите. Если только через макрос, то плиз весь код. А так же плюс и минус такого отключения?
Сложный расчет областей массивов, Надо просчитать сколько областей массивов "покрывается" одной ячейкой
 
Доброго времени суток!

В общем, суть вопроса:
Долго пытался решить проблему сам. Но не получается. Я так подозреваю, что я не корректно использую комбинацию формул "INDIRECT" и "MID", но почему то не получается.

В общем. Есть формулы в столбце А. Есть отображение в формул, а не результатов расчётов в столбце B.
В столбце C надо произвести расчёт. Надо просчитать, скольки массивами "покрывается" каждая ячейка С.
Пример решения для первых нескольких строк я дал в ячейке D.

ПРИМЕЧАНИЕ 1: В формулах столбца дана ссылка не столбец Y, но предлагаю это игнорировать.
ПРИМЕЧАНИЕ 2: Я сам пытался просчитать в столбце C.

Подскажите решение. Спасибо всем кто ответит.
Расчёт рабочих дней
 
доброго времени суток. Я сейчас изучаю excel интересным способом: у меня есть товарищ, гуру эксель. =) он даёт задачи, а я их решаю. В решениии помогают Google и всякие книжки. но есть вещи которых я просто не могу там найти. А каждый раз обращаться по "тупому" вопросу с товарищу тоже неудобно.
Сейчас я "встал" на такой вот задаче.
Есть 3 ячейки. 1 ячейка начальная дата (любая), 2 ячейка конечная дата (тоже любая). В 3 ячейке надо дать сумму рабочих дней между этими 2 датами. Однако выходные дни СРЕДА и СУББОТА или только СРЕДА.
Я так понимаю, что это надо сделать через формулу массивов и функции счётесли. Однако просто не понимаю, как можно из двух дат создать массив (двссыл тут не работает).

очень прошу помочь.

Чуть не забыл, для расчётов надо использовать только 1 ячейку.
Заранее спасибо.
Сортировка массива значений (цифры, текст, пустые ячейки), разбор формулы и понятие алгоритма
 
В сети нашел формулу, которая дает нужный результат, а именно - сортирует значения по возрастанию.
Однако разбрать формулу не получается.
Прошу мастеров этого дела помочь понять формулу и разбить на алгоритмы.

Скажу, что сам пробовал понять через функцию "Evaluate formula" но безуспешно.
Вот так выглядит эта формула:
Код
=INDEX($A$1:$A$25;MATCH(SMALL(IF(ISBLANK($A$1:$A$25);"";IF(ISNUMBER($A$1:$A$25);COUNTIF($A$1:$A$25;"<"&$A$1:$A$25);COUNTIF($A$1:$A$25;"<"&$A$1:$A$25)+SUM(IF(ISNUMBER($A$1:$A$25);1;0))+1));ROW()-ROW($A$1)+1);IF(ISBLANK($A$1:$A$25);"";IF(ISNUMBER($A$1:$A$25);COUNTIF($A$1:$A$25;"<"&$A$1:$A$25);COUNTIF($A$1:$A$25;"<"&$A$1:$A$25)+SUM(IF(ISNUMBER($A$1:$A$25);1;0))+1));0))

В примере ячейки с формулами выделены желтым цветом.
Изменено: SanShiney - 11.07.2013 12:01:50
Страницы: 1
Наверх