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

Страницы: 1 2 След.
Макрос для получения информации с сайта, получения с сайта перечня товаров и цен
 
Добрый вечер, нужен макрос для получения иформации с сайта https://epicentrk.ua/
Т.З.: распарсить выдачу по запросу например "штукатурка" (найменования товаров и цены), с учетом маркета (организовать перебор маркетов)  
Изменено: Vitallic - 02.03.2020 21:04:00 (орфография)
Выставлять информацию (экспортировать) из Excel на SQL Server
 
Здравствуйте, уважаемые форумчане
возникла необходимость выставлять информацию (экспортировать) из Excel на SQL Server.
Собственно, с подключением проблем нет, поделитесь опытом:
как правильно сделать SQL-запрос или надо "ворошить" из Excel stored procedure на стороне сервера
Информация которую надо выставлять представляет собой один столбец с набором цифр.
Зарание спасибо
SQL запрос для сбора информации с листов книги
 
Здравствуйте, уважаемые форумчане.
Подскажите возможно ли одним sql-запросом собрать с нескольких листов
однотипную информацию в рекордсет для последующей обработки.
Пример запроса:
Код
"SELECT * FROM `'1$'`, `'2$'`"
где 1 и 2 реально существующие листы с одинаковой структурой.
Эксперементальным путем у меня не получилось это сделать.
Возможно есть нюансы или все же придется обращатся к каждому листу отдельно?
 
Ошибка метода .select Excel 2016, run-time error '1004'
 
Уважаемые форумчане,
может кто сталкивался с ситуацией:
перешел на ексель 2016 и не отрабатывает элементарный код
Код
Sheets("2").Range("A1").Select
Как побороть сие?
Ошибка "Объект который вызывается отключен от своих клиентов"
 
Уважаемые форумчане, подскажите откуда появляется ошибка (фото).
Возникает на машине под Excel 2013 64-bit,
на машине под Excel 2010 32-bit (на котором код разрабатывался) работает без замечаний  
Появляется ошибка при открытии файла после сортировки
 
Добрый вечер, уважаемые форумчане
Подскажите что подправить:
появилась ошибка при открытии файла после сортировки столбцов (на VBA)/
Сортирую таким образом:
Код
            With .Sort
            .SortFields.Add Key:=Range(Cells(1, 4), Cells(1, Application.WorksheetFunction.Match("Âñã", Range("D1:AX1"), False))), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange Range(Cells(1, 4), Cells(Cells(Rows.Count, 2).End(xlUp).Row, Application.WorksheetFunction.Match("Âñã", Range("D1:AX1"), False)))
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlLeftToRight
            .SortMethod = xlPinYin
            .Apply
            End With
Необходим SQL-запрос для Microsoft Query
 
Добрый вечер, уважаемые форумчане
Связываю два файла Excel с помощью Microsoft Query. С нужного листа файла-источника затаскиваю все столбцы в файл-приемник.
Проблема возникла когда в файле-источнике добавился еще один столбец - он не отображается в файле-приемнике при обновлениии даных,
в силу того, что в SQL-запросе четко прописаны заголовки столбцов без указания нового. Попробовал изменить SQL-запрос на что то подобное:
Код
SELECT 'Лист$'.*
но выдает ошибку.
Собственно вопрос - есть ли этакая универсальная команда(запрос) для вытаскивания информации из таблицы с динамическим количеством столбцов?
Зарание спасибо  
Работа с файлами .db3 в Excel
 
Добрый вечер, уважаемые форумчане
Собственно вопрос состоит в том есть ли возможность "затянуть" информацию из файлов
формата .db3 в Excel?
Зарание спасибо
Сделать накопительный итог (количество позиций) по критерию
 
Здравствуйте, уважаемые планетяне!
Вопрос наверное не сложный и решаетсься, возможно, одной штатной формулой, но я давно не работал
с ексель и данная задача никак не дается.
Суть - сделать накопительный итог (количество позиций) по критерию.
Пример в файле, зарание спасибо  
Макрос надстройки прицепить к меню ПКМ
 
Добрый вечер, уважаемые форумчане
Есть рабочий макрос, который хотелось бы использовать в виде надстройки, и вызывать с помощью меню правой кнопки мышы.
Условный код приведен внизу
Когда работаю с обычной книгой то первый макрос помещаю на событие Workbook_Open второй в стандартный модуль - все без проблем.
Но хотелось бы работать без привязки к определенной книге поэтому остановился на надстройке (в силу разных причин работать через Personal нет возможности).
Но почему то этот код не запукаеться через надстройку (я имею ввиду что при запуске любой книги автоматически не создаеться новая позиция в меню ПКМ, при этом если принудительно запустить макрос AddMenu новое меню создаеться).
Укажите, пожалуйста, как решить проблему

Код
Sub AddMenu()
  Dim objCmdBrBtn As CommandBarButton
    Set objCmdBrBtn = CommandBars("Cell").Controls.Add(msoControlButton, , , , True)
    With objCmdBrBtn
    .Caption = "New Menu"
    .Enabled = True
    .OnAction = "Test"
    .Visible = True
    .FaceId = 10
  End With
End Sub

Sub Test()
Msgbox "Test"
End Sub
Работа с MSScriptControl
 
Уважаемые форумчане, есть ли возможность
использования компонентов  MSScriptControl.ocx
на базе MS Office 64-bit?
Получение результата web-запроса на лист Excel
 
Добрый день, уважаемые форумчане

Интересует вопрос возможно ли в принципе из VBA
1. создать запрос к ресурсу http://www.uz.gov.ua/cargo_transportation/electronic_transportation/specificat­ions_carriages_info/ (в поле номера вагонов вставить № вагона, например - 62111018)
2. эмулировать нажатие кнопки "получить информацию"
3. полученную информацию забрать на лист Excel

Почему спрашиваю возможно ли в принципе  - потому что при использовании штатных средств Excel (Данные - Из интернета) вообще не увидел информации в нужных полях,  я так понимаю есть "нюансы" некоторых сайтов при которых Excel их "не видит"?

Заранее спасибо    
Возможно ли выгрузить из массива размерность без цикла
 
Добрый вечер, уважаемые форумчане
Собственно весь вопрос в названии темы
Есть такой коротенький макрос:
Код
Sub test2()
Dim a(), cell As Range, i%
[f:g].ClearContents
ReDim a(1 To [a1:a15].Count, 1 To 2): i = 1
For Each cell In [a1:a15]
a(i, 1) = cell.Value
a(i, 2) = cell.Offset(, 3).Value
i = i + 1
Next
[f1].Resize(UBound(a)) = a
End Sub
Хотелось бы добраться без цикла  до второго "столбца" сформированого массива.
Догадываюсь что не получится без костылей (типа выгрузить весь массив, а ненужный столбец удалить),
но на всякий случай хочу убедиться :)
Выгрузка из коллекции значений словаря по разным строкам без использования цикла
 
Добрый вечер, уважаемые форумчане
Подскажите, пожалуйста, есть ли возможность выгрузить в разные строки части составленых при помощи конкатенации .item словаря?
В нижеприведенном примере происходит выгрузка в ячейки всего .item,
а нужно: в одну строку - день месяца, в следующую - день недели и в следующую график работы (согласно условному примеру)
Код
Sub test1()
Dim dict As Object, cell As Range
Set dict = CreateObject("scripting.dictionary")
For Each cell In [a1:a15]
dict.Add cell.Value, Day(cell) & "|" & WeekdayName(Weekday(cell), True) & "|" & cell.Offset(, 1).Value
Next
[d1].Resize(, UBound(dict.items)) = dict.items
End Sub
Вопрос в том можно ли без цикла получить желаемый результат?
Как поставить заполненый Recordset в источник сводной таблицы
 
Добрый день, ув. форумчане
Есть ли возможность обработать обьект Recordset "на лету"
и выгрузить данные на лист в уже нужном виде пока есть вот такой код,
который не отрабатывает в части SourceData:=rs. Возможно ли обойти проблему?
Код
Sub test27()
Dim strConn$, strSQL$, rs As Object, cn As Object, QTable As QueryTable, objPivotCache As Object
Set rs = CreateObject("ADODB.Recordset"): Set cn = CreateObject("ADODB.Connection")
Sheets("12").[A1].CurrentRegion.ClearContents
Sheets("Data").Activate
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read;Data Source=" & ThisWorkbook.FullName
strConn = strConn & ";Extended Properties=""Excel 12.0;HDR=true"";"
strSQL = "Select colPIB,colRegistrationTime, colProf From [Data$] As t1 Inner Join [ar$] As t2 On (t1.colTabNumber=t2.colTabNumber)"
cn.Open strConn
rs.Open strSQL, cn
'Set QTable = Sheets("12").QueryTables.Add(rs, Sheets("12").Range("A1")): QTable.Name = "Temp"
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rs, Version:=xlPivotTableVersion14).CreatePivotTable _
    TableDestination:=Sheets("12").[a3], TableName:="sd", DefaultVersion:=xlPivotTableVersion14
    With ActiveSheet.PivotTables("sd")
    With .PivotFields("colPIB")
        .Orientation = xlRowField
        .Position = 1
    End With
    With .PivotFields("colRegistrationTime")
        .Orientation = xlRowField
        .Position = 2
    End With
    With .PivotFields("colProf")
        .Orientation = xlPageField
        .Position = 1
    End With
    End With
'QTable.Refresh
rs.Close:  cn.Close
Set cn = Nothing: Set rs = Nothing
ActiveWorkbook.Sheets("12").Activate
End Sub

 
Как правильно использовать вложеные функции в VBA
 
Уважаемые форумчане, подскажите пожалуйста
как корректно построить функцию в VBA
Нужна вот такая:
Код
ss = Application.WorksheetFunction.Index(Sheets("Data").Range("A1").CurrentRegion, Application.WorksheetFunction.Match(s, Sheets("Data").Range("C:C"), 0), 1)
но она не работает
Как подставить массив ключей Dictionary в RefersTo имени (Names)
 
Дообрый день, уважаемые форумчане
Ситуация следующая: пытаюсь извлечь список уникальних значений диапазона и присвоить его  Имени (Names).
Извлекаю уникальные с помощью словаря (см. код), но вот не получаеться корректно передать значения  с ".keys" в "Имя".
Код
Sub test1()
Dim i%, s$
With CreateObject("scripting.dictionary")
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Not .exists(CStr(Cells(i, 3))) Then .Add (CStr(Cells(i, 3))), 1
Next
's = Join(.keys, ";")
's = "{" & s & "}"
Names.Add Name:="test", RefersTo:=.keys
End With
's = ThisWorkbook.Names("test").RefersTo
'Debug.Print s
End Sub
Прошу помочь
Возможно ли выгрузить массив "снизу-вверх" без использования цикла
 
Добрый день, уважаемые форумчане
Есть необходимость по условию выгрузить двумерный массив данных на лист в виде "как есть"
при этом использую такую конструкцию:
Код
Sub t1()
Dim a()
a = [a1].CurrentRegion.Value
[g1].Resize(UBound(a, 1), UBound(a, 2)) = a
End Sub
при не выполнении условия нужно последний элемент поставить первым, предпоследний - вторым и т.д.:
Скрытый текст

есть ли возможность проделать такую операцию не прибегая к использованию цикла?
Особенности декларирования WinApi функций для 32-бит и 64-бит ОС и Офиса, конкретно функции смены раскладки клавиатуры - ActivateKeyboardLayout
 
Добрый день, уважаемые форумчане
столкнулся с проблемой выполнения макроса для смены раскладки клавиатуры, декларация функции WinAPI делалась под 32-битный Офис:
Код
 Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
 
В процесе работы этот же файл нужно использовать на компютерах и 32 и 64 битной разрядностью
Пробовал пойти вот таким путем:
Код
 #If Win64 Then Private Declare PtrSafe Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As LongLong, ByVal flags As LongLong) As LongLong #Else Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long #End If

в процесе исполнения 4 строка выделяется красным, а макрос не отрабатывает (в 64 бит Офисе при этом в 32 битном проблем нет) .
Прошу помочь разобраться
Разбор (работа с) XML-схемы с целью импорта данных
 
Добрый день, уважаемые форумчане
подскажите, пожалуйста, как програмно
выбрать из XML-схемы нужные мне поля и вставить в нужные ячейки.

Использую вот такой макрос но он работает только на этапе импорта схемы:

Код
Sub ImportXMLSchema()
    Dim xmMap As XmlMap, strXPath As String
    Application.DisplayAlerts = False
    Set xmMap = ActiveWorkbook.XmlMaps.Add("D:\Мои документы\Вересень 2014\22.09.2014 ГУ46 22090343.xml", "egu46")
    Application.DisplayAlerts = True
    xmMap.AdjustColumnWidth = False
    xmMap.PreserveNumberFormatting = True
strXPath = "wagon_num"
ActiveSheet.[a1].XPath.SetValue xmMap, strXPath ' Строка не работает
    Set xmMap = Nothing
End Sub
 
П.С. Запись вышеупомянутой операции макрописцем ничего не дала, он почему-то ничего незафиксировал  :(
Синтаксис команды открытия файла FineReader-ом из VBA
 
Добрый вечер, подскажите пожалуйста
как правильно расставить кавычки и амперсанды в команде открытия файла с помощью ADOBE FineReader
Сразу уточняю хочу открывать файл не по умолчанию соответствующим приложением, а именно   FineReader-ом
Вот что пока есть (но не рабочее, не видит пути к файлу):

Код
CreateObject("wscript.shell").Run """C:\Program Files\ABBYY FineReader 11\FineReader.exe "" & answer """
 
где переменная answer есть путь к нужному файлу
Формула (со смещением) для вывода списка
 
Добрый день, ув. форумчане
Столкнулся с проблемой написания формулы (которая будет фигурировать в Источнике/Source для выпадающего списка)
К сути: есть таблица с информацией (см. файл) о работниках  в столбце В - ФИО, в столбце D - указана профессия
Вопрос: как написать формулу чтоб  выпадающий список местил в себе ФИО определенной профессии (к примеру - монтер)
У меня получилась пока формула которая позволяет посчитать кол-во работников определенной профессии, но вот
"достать" ФИО которые соответствуют этим профессиям не удается
Моя формула:

Код
=SUM(IF(OFFSET(B2:B4;0;2)="монтер";1;0))
 
массивная
Как установить через VBA некоторые параметры при импорте из TXT-файла
 
Добрый вечер, уважаемые форумчане
не могу найти в VBA какой параметр при импорте файла TXT отвечает за вот это:
Есть ли возможность сохранить PDF-файл в txt-формате из VBA?
 
Добрый день,
собственно говоря в названии темы отображена часть окольного пути для получения данных из PDF-файла в Excel
Знаю что есть спец. конвертеры - но по нескольким причинам они не подходят.
Ипользование SendKeys не дает нужного результата (тем более очень ненадежно все):

Код
Sub er()
Dim f$
Application.CutCopyMode = False
f = "c:\Documents and Settings\vvv\Рабочий стол\20245.pdf"
CreateObject("wscript.shell").Run """" & f & """"
Application.Wait (Now + TimeValue("0:00:05"))
SendKeys "^a", 100
SendKeys "^c", 10
SendKeys ("%n"), 10
Workbooks("по пдф").ActiveSheet.[a1].Activate
' ActiveSheet.[a1].PasteSpecial
End Sub
 
По этому возникла идея:
при "ручной" обработке PDF-файла есть возможность сохранить его в Блокнот,
а уже обработать содержимое txt-файла из VBA не есть проблема.
Так вот вопрос: как открытый из VBA PDF-файл сохранить в нужное место с форматом .txt?
Работа с массивом
 
Здраствуйте, уважаемые форумчане
есть необходимость собирать дынные с листов
именно в массив (для быстроты). Возникли такие проблемы:
1. До последнего не знаю сколько будет элементов в массиве (тоесть его размерность, потому как почти 50 листов)
2. Как внести целую строку (если быть точным то первых 13 столбцов слева)
3. Если выполнить два предыдущих пункта должен образоваться двумерный массив как его правильно выгрузить в [b7]
прилагаю "нужный" для припарирования кусок кода:
Код
 ReDim arrQ(1 To 243, 1 To 13)
r = 1
For i = LBound(arrX) To UBound(arrX)
 For Each ws In ActiveWorkbook.Sheets
    If ws.Name = arrX(i) Then
    lr = ws.Cells(400, 6).End(xlUp).Row
        If lr > 4 Then' отбрасываем название таблиц
          For q = 5 To lr Step 1
          arrQ(r) = ws.Rows(q).Value
          
'          lr2 = Sheets(e).Cells(400, 6).End(xlUp).Row
'          ws.Rows(q).Copy Destination:=Sheets(e).Rows(lr2 + 1)
'          Sheets(e).Cells(lr2 + 1, 15).Value = ws.Name
          r = r + 1
          Next
        End If
        End If
 Next
Next
ActiveSheet.[b7].Resize(UBound(arr), UBound(arrQ, 2)).Value = arrQ
Application.ScreenUpdating = True
[b7].Activate 
Неточный поиск по расширеному фильтру
 
Добрый день, уважаемые форумчане
Недавно открыл для себя в приемах возможности расширеного фильтра.
К сожалению, несмотря на кучу одобств есть один минус немогу провести
неточный поиск по числу (т.е. если в данных есть число 5555 и я в фильтре введу 5 или 5*
фильтр не сработает) . Есть ли возможность обойти это ограничение?
Изменено: Vitallic - 11.09.2014 09:13:41
Ошибка в коде для события Worksheet_Change
 
Добрый день, форумчане
Подскажите почему нижеприведенный код
вылетает на строке изменения цвета указаной области?
Спасибо

Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ArrX, q%, i%, lr%
If Target.Cells.Count > 1 Then Exit Sub
'On Error Resume Next
i = 0
lr = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
If Not Intersect(Target, Range("F5:F250")) Is Nothing Then
ArrX = Worksheets("Îðåíä. âàã.").[a1].CurrentRegion
For q = LBound(ArrX) To UBound(ArrX)
If Target = ArrX(q, 1) Then
Target.Offset(0, 1).Value = ArrX(q, 2)
Target.Offset(0, -1).Value = ArrX(q, 3)
Target.Offset(0, -2).Value = ArrX(q, 4)
Target.Offset(0, -3).Value = ArrX(q, 5)
i = 1
End If
Next
Range(Cells(Target.Row, 2), Cells(Target.Row, 13)).Font.Color = vbGreen
If IsEmpty(Cells(Target.Row, 2)) Then Cells(Target.Row, 2).Value = Cells(lr, 2).Value + 1
End If
End Sub
 
как написать алгоритм расчетов данных нивелира
 
Добрый день. Подскажите как изменить формулу чтобы закончить расчет
по показателям нивелира (геодез. инстр. для определения разности высот)
Все даные в файле. Есть также часть формулы которая считает до определенного
момента, а именно когда на линейке ставят 1 отметку потом переносят невелир и ставят еще одну отметку с новой позиции (в файле это строка G3 и G4).
Там где нет формулы я выполнил простые действия чтобы показать какой нужен результат и откуда его взять
Я так понимаю нужна формула массива. Но как это зделать
Как правильно построить SQL-запросы в VBA
 
Добрый день. Подскажите как решить такую проблему: есть excel-файл в котором находяться нужные (но избыточные) данные.
Из него с помощью метода ADODB вытаскиваю часть данных на другой лист этой же книги. Критерий по которому происходит отбор данных находится
на исходном листе в ячейке [i1] (это для примера имя Василь). А если мне нужно использовать несколько критериев для выбора из
большой базы данных (в файле-примере это имена "Іван, Володимир" в следующих ячейках), тоесть количество ФИО по которым
надо вытянуть информацию из базы около 50,  как в таком случае построить запрос? Или нужно будет генерировать 50 запросов?
Сопоставление элемента массива (как имени) и названия активного листа (Activesheet.Name)
 
Добрый вечер, ув. форумчане!
Подскажите пожалуйста, почему если элемент массива число и название активного листа
число то условие срабатывает как ИСТИНА, а если текст то как ЛОЖЬ.
Код:

Код
 Sub ee()
 Dim r As Integer, q As Integer
 Dim a()
 a = Array("A", "2M62 0393 Á", "2", "D")
 [a1].ClearContents
 For r = 0 To 2 Step 1
 If ActiveSheet.Name = a(r) Then
 [a1].Value = 10
 End If
 Next r
 End Sub 
Страницы: 1 2 След.
Наверх