Нужна аналогичная программа (надстройка, макрос) для Excel?

Оформите заказ, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Обработка таблицы тарифов, и её выгрузка (экспорт) в XML

Результат преобразования массива функцией ExtendArray

Программа предназначена для обработки таблиц с тарифами на междугородную и международную телефонную связь.

Присутствует опция выгрузки обработанной таблицы в файл формата XML.

При запуске программы (которая выполнена в виде надстройки Excel) формируется дополнительная панель инструментов:

панель инструментов надстройки экспорта в XML

Формируемый надстройкой XML-файл имеет такую структуру:

Созданный XML файл

Вложения:
XML addin.xla87.5 КБ

Комментарии

Этот макрос «заточен» под конкретный файл (таблицу) заказчика.
При нажатии кнопки «экспорт в XML» программа формирует файл XML по открытой таблице Excel,
и выдает сообщение только в том случае, если выгрузка прошла без ошибок.

Код макроса, запускающегося при нажатии этой кнопки:

Sub XMLExport()
    'strH = "http://www.w3.org/2001/XMLSchema-instance"
    On Error Resume Next: Err.Clear
 
    Dim Заголовок As Range, Данные As Range
    ' диапазон заголовка таблицы - с ячейки A1 до последней заполненной ячейки в первой строке
    Set Заголовок = Range(Range("a1"), Cells(1, Columns.Count).End(xlToLeft))
    ' диапазон данных таблицы - с ячейки A2 до последней заполненной ячейки в столбце A,
    ' расширенный до количества столбцов заголовка таблицы
    Set Данные = Range([A2], Range("A" & Rows.Count).End(xlUp)).Resize(, Заголовок.Columns.Count)
 
    arrHeaders = Application.Transpose(Application.Transpose(Заголовок.Value))
    ПутьКФайлуXML = ThisWorkbook.Path & "\res.xml"
 
    arr = Данные.Value
    For i = LBound(arr) To UBound(arr)
        arr(i, 4) = Replace(Format(arr(i, 4), "0.0000"), ",", ".")
        arr(i, 6) = Format(arr(i, 6), "YYYY-MM-DD")
    Next i
 
    Array2XML(arr, arrHeaders, "Root").Save ПутьКФайлуXML
    If Err.Number = 0 Then
        MsgBox "Таблица экспортирована в файл" & vbNewLine & ПутьКФайлуXML, vbInformation, "Готово"
    End If
End Sub

Это не универсальный макрос, - не думайте, что нажмете кнопку, и он сделает то, что вам надо.
Это опубликовано просто как пример одной из моих работ.
Можете сами поразбираться в коде, переделав его под свои нужды (пароль на макросы: 1)
Или же можете заказать подобную надстройку под свои нужды.

У меня кнопка "Выгрузка в XML" никак не реагирует на нажатие, не подскажите в чем может быть проблема?

Понял, спасибо за пояснения. До серьёзного заказа я пока ещё не дорос, только недавно начал заниматься темой биллинга, если по мере углубления в тему возникнут потребности в помощи специалиста по Excel VBA, буду знать, к кому обращаться! (не бесплатно, разумеется)

Надстройка рассматривает записи *-* как диапазоны "число-число".
Соответственно, 03 превращается в 3, а 07 - в 7.

Работа с диапазонами как с текстом не предусмотрена (тут очень сложным алгоритм получится)
Сами подумайте, вот встретится в ячейке «текстовый» диапазон "в5-lks" - как его должна интерпретировать программа?

Если надо, чтобы нули сохранялись, можете заказать доработку надстройки под свои нужды (не бесплатно)

Заметил небольшой недостаток в работе надстройки.
В поле ROLLUP был диапазон 03-07.
Нули в данном случае являются неотъемлемой информацией,
поскольку являются частью телефонного номера.
Мало того, что Excel приняла этот диапазон за "3 июля"
(пришлось насильно присваивать текстовый формат),
но и в итоговой таблице эти нули пропали.
Впрочем, вполне возможно, что это не надстройка виновата,
а слишком "умная" Excel решила, что нулям перед числами не место.
Ещё раз спасибо за полезную программу, продолжаю осваивать.

Спасибо, думаю, эта надстройка облегчит мне жизнь ;)
Вымпелком присылает новые тарифы как на картинке слева, да ещё в PDF формате.
Начальник распечатывает и выдаёт мне для заполнения базы данных с тарифами.
Приходится прикладывать к распечатке линейку, чтобы не сбиться
и цифра за цифрой вбивать нужную информацию в нужное место базы.
Процедура эта отнимает очень много времени, а потом приходят
новые тарифы и всё приходится повторять заново :(
Теперь осталось найти хороший конвертер PDF to Excel и работа пойдёт веселее ;)