Приветствую, коллеги подскажите, может у кого есть более рациональное решение. На картинках привел пример одного из вариантов ОСВ в Excel. Работать с таким форматом крайне не удобно, надо перестроить таблицу в массив в vba и затем вывести нужный вид, проблема в правильном считывании строк.
Я в названии файла обязательно задаю номер счета (в примере 60). VBA по столбцу с контрагентами сверху вниз ищет, где строка начинается на 60. Признаю содержимое этой строки номером счета. Далее в следующей строке, если она не начинается на 60, то начинается список контрагентов по этому субсчету, если начинается на 60, то перезаписываю переменную номер счета. и т.д. пока не дойдет до конца таблицы.
В случае, если ОСВ не разбита на субсчета, в ней вообще может отсутствовать номер счета, тогда непонятно, как найти, где в столбце начало списка контрагентов - хочу в этом случае выводить окно пользователю для ввода номера строки начала.
Плюс сохраняется проблема в считывании строки ИТОГО, ее не надо считывать, но наименования в разных версиях могут быть разные.
Соответственно задача состоит в том, чтобы правильно считать номер субсчета, список контрагентов и избежать считывания сальдо и оборотов по номеру счета и итоговой строке.
На листе в ячейке A1 запись в две строки. При ее записи весь текст сливается в одну строчку. Как сделать так, чтобы сохранить данные построчно.... может быть в массиве? а затем после обработки вставить в другую ячейку в таком же виде в две строки обратно...
public type oper()
dat as date
d as double
c as double
end type
необходимо отсортировать записанный массив по type().dat, каким путем это лучше осуществить? нашел кучу вариантов, но никак не могу понять, какой лучше и насколько все это применимо к type statement...
Доброго времени суток! Форумчане, уже мозг взорвался, перепробовал несколько методов, предложенных когда-то на разных форумах. В файле вырезал нужный кусок. Сделать надо именно в vba, т.к. это часть макроса... из-за этого он некорректно проводит сортировку по дате. верхние даты скопированы из одного файла, нижние из другого, поэтому оказалось, что вверху текстовый формат, внизу числовой формат даты...
Доброго времени суток! Недавно начал заниматься с vba, так что с трудными задачами возникают большие трудности. В 1 колонке дата, в 11 сумма, в 12 сумма, в 14 дата, которую надо заполнить. Необходимо, найти в колонке 12 сумму больше либо равно сумме в 11 и записать дату из найденной строки (колонка 1) в исходную строку в колонке 14. И так для каждого значения в колонке 11.
Вот мой код, в которому сразу есть какая-то ошибка, не очень понимаю, как исправить, возможно, что он вообще не заработает.
Код
Dim k As Integer, l As Integer, m As Date
Set R = Range(Cells(2, 12), Cells(LastRow, 12))
For i = 2 To LastRow Step 1
For l = 2 To LastRow Step 1
If l1.Cells(i, 11) <= R(l) Then
k = R(l).Row
GoTo cont
Next l
cont:
m = l1.Cells(k, 1)
l1.Cells(i, 14).Value = m
Next i
Доброго времени суток, извиняюсь, если был уже вопрос такой, я не нашел на форуме. Я начинающий пользователь макросов, поэтому данная необходимость стала для меня подводным камнем... Как прописать в макросе массовое изменение файлов? у меня уже написан код для одного файла... открывается новый шаблон, открывается старый файл, из старого копируется в шаблон инфа в новую форму, файл сохраняется рядом и закрывается Вопрос: как сделать, что макрос делал это последовательно для всех файлов, которые около него лежат в папке и перемещал старые версии в одну папку, новые в другую? Заранее спасибо