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

Страницы: 1
Подключение к Oracle через vba windows 64bit, Способы подключения к базам данных
 
Добрый день форумчане! Интересует вопрос:

Есть база данных oracle - baza.oracle.com:1527:baza2012(вымышленная). Работа с удаленного рабочего стола. Драйверов Oracle в Источниках odbc 64 нет. MSDAORA на 64 битке не поддерживается. Возможности поставить драйвера нет. Подключение к базе происходит через ПО собственной разработки. Как можно , и можно ли, подключиться к этой базе данных, какими-то стандартными средствами? Windows server 2019. Excel ltsc.
Если подскажете куда копать буду благодарен.
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Добрый день! Подскажите как можно переключаться между вкладками в программе посредством Api. Класс элементов TTabSheet. Хендлер я нахожу и пробую через sendmessage и postmessage, с параметром TCM_setcurfocus, ничего не получается.
Также, если есть возможность, сбросьте ссылку, либо название, на литературу vba api.  
Изменено: Jerry.Sweer - 28.12.2022 21:03:23 (Ошибки)
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
Добрый день! Вопрос к спецам: существует ли какой-нибудь способ парсинга сайтов без установки ПО и прочей требухи? - есть корпоратиная безопасность и сопутствующий, с этим, геморрой, Internet Explorer не грузит многие элементы сайтов, использование прямых запросов требует определённых знаний, а эти знания не консолидированы в доступную, для чайников, структуру с применением в vba.( интересует сайт с авторизацией).
Обычные сайты парсил с помощью туториала, пользователя данного форума с Дейлом на аватарке(спасибо ему), на его канале.

Перерыл большой обьем информации и туториалы есть либо по Selenium, либо по ie, либо, очень скудно, через msxml2 и подобные.

Подходит только vba т. к. Excel стоит на каждом "утюге".

Спасибо.
Сохранение web страницы в htm или pdf vba, Необходим способ сохранения страницы в файл
 
Есть ли способ сохранения HTML файла, полученного через парсинг, с аутентификацией путем ввода логина и пароля, средствами vba, в формате pdf или htm?
Через filesystemobject.createtxtfile - пустая страница.
Urldownloadtofile - вообще ничего не сохраняет.
Sendkeys и аналоги - не подходят.


Буду рад любой помощи.  
Формула суммы чисел в текстовой строке
 
Доброго времени суток. Прошу помощи.
Необходимо суммировать числа в строке где числа разделены запятой.

Пример:
было: 1,21,75,100,3fxuvvcxxcjcvvvffbccg
требуется: 200

Не цифр, а чисел.

Заранее спасибо!
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Доброго времени суток. Помогите разобраться в следующем вопросе:

- есть массив А(). Тип данных массива - "Дата". Необходимо найти максимальную дату по определенному условию (больше или меньше, сверяя сегодняшнюю дату с каждой датой массива). Использовал "Application.WorksheetFunction.Max(А())" - не работает. Поискал информацию в интернете и выяснилось, что vba таким образом работает только с цифрами.
Как можно победить упрямую машину, заставить ее быть благоразумной и начать сотрудничать?

Спасибо заранее.
При изменении размера массива цикл доходит только до конца первоначального массива
 
Код
Sub Razbivka_Kod_Seriya_Mip_Inv()

Dim w&, i&, ob&, LR&, c&, LC&
Dim B(), D(), E(), R(), S(), U(), N() As Variant
Dim Line1 As Object
Dim t As Single
Dim j As Worksheet
Dim NomerDokumenta%, KodTovara%, Naimenovanie%, RaznicaKolvo%, RaznicaGrn%, Hozoperaciya%, Napravl%
Set j = Sheets(1)
't = Timer

LR = j.Cells(Rows.Count, 1).End(xlUp).Row
LC = j.Cells(1, Columns.Count).End(xlToLeft).Column

ReDim B(1 To LR), D(1 To LR), E(1 To LR), R(1 To LR), S(1 To LR), U(1 To LR), N(1 To LR) As Variant


NomerDokumenta = j.Cells.Find("№ документа").Column
KodTovara = j.Cells.Find("Код товара").Column
Naimenovanie = j.Cells.Find("Наименование товара").Column
RaznicaKolvo = j.Cells.Find("Разница, кол-во").Column
RaznicaGrn = j.Cells.Find("Разница, грн").Column
Hozoperaciya = j.Cells.Find("Хоз.операция").Column
Napravl = j.Cells.Find("Направление").Column
    
    For i = 2 To LR
        B(i) = j.Cells(i, NomerDokumenta)
        D(i) = j.Cells(i, KodTovara)
        E(i) = j.Cells(i, Naimenovanie)
        R(i) = j.Cells(i, RaznicaKolvo)
        S(i) = j.Cells(i, RaznicaGrn)
        U(i) = j.Cells(i, Hozoperaciya)
        N(i) = j.Cells(i, Napravl)
    Next i

    For w = LBound(B) To UBound(B)
        For i = LBound(B) To UBound(B)
            If IsEmpty(j.Cells(w, LC + 1)) And IsEmpty(j.Cells(i, LC + 1)) Then
                If D(w) = D(i) Then
                    If w < i Then
                        If (j.Cells(w, RaznicaKolvo) + j.Cells(i, RaznicaKolvo)) <> 0 Then
                            If R(w) < 0 And R(i) > 0 Then
                                If Abs(j.Cells(w, RaznicaKolvo)) > Abs(j.Cells(i, RaznicaKolvo)) Then
                                    If N(w) Like "*МИП*" Or N(w) Like "*ИНВ*" Then
                                        If N(i) Like "*МИП*" Or N(i) Like "*ИНВ*" Then
                                            j.Rows(w + 1).Insert Shift:=xlDown
                                            j.Rows(w + 1).FillDown
                                            j.Cells(w + 1, RaznicaKolvo) = -j.Cells(i + 1, RaznicaKolvo)
                                            j.Cells(w, RaznicaKolvo) = j.Cells(w, RaznicaKolvo) + j.Cells(i + 1, RaznicaKolvo)
                                            j.Cells(w + 1, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 1_" & w
                                            j.Cells(i + 1, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 1_" & w
                                                LR = j.Cells(Rows.Count, 1).End(xlUp).Row
                                                    ReDim B(1 To LR), D(1 To LR), E(1 To LR), R(1 To LR), S(1 To LR), U(1 To LR), N(1 To LR) As Variant
                                                        For ob = 2 To LR
                                                            B(ob) = j.Cells(ob, NomerDokumenta)
                                                            D(ob) = j.Cells(ob, KodTovara)
                                                            E(ob) = j.Cells(ob, Naimenovanie)
                                                            R(ob) = j.Cells(ob, RaznicaKolvo)
                                                            S(ob) = j.Cells(ob, RaznicaGrn)
                                                            U(ob) = j.Cells(ob, Hozoperaciya)
                                                            N(ob) = j.Cells(ob, Napravl)
                                                        Next ob
                                        End If
                                    End If
                                ElseIf Abs(j.Cells(w, RaznicaKolvo)) < Abs(j.Cells(i, RaznicaKolvo)) Then
                                    If N(w) Like "*МИП*" Or N(w) Like "*ИНВ*" Then
                                        If N(i) Like "*МИП*" Or N(i) Like "*ИНВ*" Then
                                                j.Rows(i + 1).Insert Shift:=xlDown
                                                j.Rows(i + 1).FillDown
                                                j.Cells(i + 1, RaznicaKolvo) = Abs(j.Cells(w, RaznicaKolvo))
                                                j.Cells(i, RaznicaKolvo) = j.Cells(i, RaznicaKolvo) + j.Cells(w, RaznicaKolvo)
                                                j.Cells(w, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 2_" & w
                                                j.Cells(i + 1, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 2_" & w
                                                    LR = j.Cells(Rows.Count, 1).End(xlUp).Row
                                                        ReDim B(1 To LR), D(1 To LR), E(1 To LR), R(1 To LR), S(1 To LR), U(1 To LR), N(1 To LR) As Variant
                                                            For ob = 2 To LR
                                                                B(ob) = j.Cells(ob, NomerDokumenta)
                                                                D(ob) = j.Cells(ob, KodTovara)
                                                                E(ob) = j.Cells(ob, Naimenovanie)
                                                                R(ob) = j.Cells(ob, RaznicaKolvo)
                                                                S(ob) = j.Cells(ob, RaznicaGrn)
                                                                U(ob) = j.Cells(ob, Hozoperaciya)
                                                                N(ob) = j.Cells(ob, Napravl)
                                                            Next ob
                                        End If
                                    End If
                                End If

                            ElseIf R(w) > 0 And R(i) < 0 Then
                                If Abs(j.Cells(w, RaznicaKolvo)) > Abs(j.Cells(i, RaznicaKolvo)) Then
                                    If N(w) Like "*МИП*" Or N(w) Like "*ИНВ*" Then
                                        If N(i) Like "*МИП*" Or N(i) Like "*ИНВ*" Then
                                            j.Rows(w + 1).Insert Shift:=xlDown
                                            j.Rows(w + 1).FillDown
                                            j.Cells(w + 1, RaznicaKolvo) = -j.Cells(i + 1, RaznicaKolvo)
                                            j.Cells(w, RaznicaKolvo) = j.Cells(w, RaznicaKolvo) + j.Cells(i + 1, RaznicaKolvo)
                                            j.Cells(w + 1, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 3_" & w
                                            j.Cells(i + 1, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 3_" & w
                                                LR = j.Cells(Rows.Count, 1).End(xlUp).Row
                                                    ReDim B(1 To LR), D(1 To LR), E(1 To LR), R(1 To LR), S(1 To LR), U(1 To LR), N(1 To LR) As Variant
                                                        For ob = 2 To LR
                                                            B(ob) = j.Cells(ob, NomerDokumenta)
                                                            D(ob) = j.Cells(ob, KodTovara)
                                                            E(ob) = j.Cells(ob, Naimenovanie)
                                                            R(ob) = j.Cells(ob, RaznicaKolvo)
                                                            S(ob) = j.Cells(ob, RaznicaGrn)
                                                            U(ob) = j.Cells(ob, Hozoperaciya)
                                                            N(ob) = j.Cells(ob, Napravl)
                                                        Next ob
                                            
                                        End If
                                    End If
                                ElseIf Abs(j.Cells(w, RaznicaKolvo)) < Abs(j.Cells(i, RaznicaKolvo)) Then
                                    If N(w) Like "*МИП*" Or N(w) Like "*ИНВ*" Then
                                        If N(i) Like "*МИП*" Or N(i) Like "*ИНВ*" Then
                                            j.Rows(i + 1).Insert Shift:=xlDown
                                            j.Rows(i + 1).FillDown
                                            j.Cells(i + 1, RaznicaKolvo) = -j.Cells(w, RaznicaKolvo)
                                            j.Cells(i, RaznicaKolvo) = j.Cells(i, RaznicaKolvo) + j.Cells(w, RaznicaKolvo)
                                            j.Cells(w, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 4_" & w
                                            j.Cells(i + 1, LC + 1) = "Разбивка/Код/Серия/МИП/ИНВ 4_" & w
                                                LR = j.Cells(Rows.Count, 1).End(xlUp).Row
                                                    ReDim B(1 To LR), D(1 To LR), E(1 To LR), R(1 To LR), S(1 To LR), U(1 To LR), N(1 To LR) As Variant
                                                        For ob = 2 To LR
                                                            B(ob) = j.Cells(ob, NomerDokumenta)
                                                            D(ob) = j.Cells(ob, KodTovara)
                                                            E(ob) = j.Cells(ob, Naimenovanie)
                                                            R(ob) = j.Cells(ob, RaznicaKolvo)
                                                            S(ob) = j.Cells(ob, RaznicaGrn)
                                                            U(ob) = j.Cells(ob, Hozoperaciya)
                                                            N(ob) = j.Cells(ob, Napravl)
                                                        Next ob
                                            
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        Next i
            LR = j.Cells(Rows.Count, 1).End(xlUp).Row
                ReDim Preserve B(1 To LR), D(1 To LR), E(1 To LR), R(1 To LR), S(1 To LR), U(1 To LR), N(1 To LR) As Variant
                    For ob = 2 To LR
                        B(ob) = j.Cells(ob, NomerDokumenta)
                        D(ob) = j.Cells(ob, KodTovara)
                        E(ob) = j.Cells(ob, Naimenovanie)
                        R(ob) = j.Cells(ob, RaznicaKolvo)
                        S(ob) = j.Cells(ob, RaznicaGrn)
                        U(ob) = j.Cells(ob, Hozoperaciya)
                        N(ob) = j.Cells(ob, Napravl)
                    Next ob
Debug.Print w
    Next w

'MsgBox (Timer - t) / 60

End Sub
Доброго времени суток. Дело в том, что код по ходу добавляет строки. Массивы переопределяются, но по итогу проверил и выявил следующую проблему: при запуске кода программа проходит только в пределах первично определенного массива (не учитывая смещенные элементы).

Пример: есть цикл от 1 до 10. Через каждые 2 -е единицы добавляется еще 1. По итогу получим 15. Код при этом доходит до 10-и и завершает работу.

Укажите огненной дланью на путь истинный. Не дайте сгинуть в безвестности.

PS: В программировании деревянный. Прошу не пинать. Спасибо заранее.
Устранение пересортицы при схожих названиях номенклатуры
 
Добрый вечер Друзья!

Помогите решить такую задачу:

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

Во вложении приблизительно попытался отобразить цель. При этом неважно какая, дата, серия или сумма привяжется после обработки. Важны только код, название номенклатуры и количество. Т.е. простыми словами необходимо выравнять пересортицу не только по одинаковому коду но и максимально приближенному названию.

Надеюсь выразился корректно.

Любым идеям буду рад.

Православное Вам спасибо заранее.
Как агрегировать по коду товара, подсчитывая сумму по "Кол-во", выводя только первые попавшиеся "Серия товара" и "Номенклатура"?
 
Доброго времени суток.


Необходимо найти способ свести товары по коду, не обращая внимание на серии, суммируя приход и расход. Макрос предпочтительнее. Товары разбросаны и серий может быть много. Также ведомость до 300 тыс. строк

Спасибо заранее.
Подстановка показателей табеля в таблицу совершенных заправок
 
Доброго времени суток. В приложенном файле 2 листа. На одном табель учета времени на другом осуществленные заправки. Цель: необходимо напротив осуществленной заправки вывести значение из табеля т.е. необходимо понять где был сотрудник в день заправки (отпуск/больничный...).

Православное спасибо.
Изменено: Jerry.Sweer - 10.06.2020 10:44:00 (1)
Макрос для расчета промежуточного итога по группе товаров
 
Друзья! Помогите занести макросом формулы в ячейки выделенные в файле красным цветом.Навыков  в программировании, к сожалению нет. Прошу учесть, что кол-во позиций товара меняется. Т.е. макрос должен определять ячейки, колонки "Остаток", между группами товаров и заносить в окрашенную ячейку формулу с их суммой. В форуме рылся, но ничего похожего не нашел. Надоело вручную. Формулами могу, но проклятые педанты надоели со своими "задрочками". Спасибо заранее.
Посчитать количество контрагентов, где есть торговая марка 1 и торговая марка 2, Помогите сократить формулу в ячейке D28
 
Помогите сократить формулу в ячейке D28 и посчитать количество контрагентов, где есть торговая марка 1 и торговая марка 2
Заполнение цены для товара согласно действующего прайса на момент введения накладной, Выведение цены по прайсу
 
Доброго времени суток. Помогите вывести цену на определенный товар, согласно действующего прайса, на момент введения накладной, с учетом типа цены? Спасибо заранее.
Отбор данных по нескольким условиям с одного столбца
 
Добрый вечер!
Помогите пожалуйста с задачей.
Задача:
Можно ли при выборе определенного менеджера, чтобы выводились его показатели 1. Розница и 2. Ниже розницы, без помощи макросов?
Спасибо заранее.
Страницы: 1
Наверх