Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2011, 20:35   #1
Lanatje
 
Регистрация: 14.07.2011
Сообщений: 3
По умолчанию Дублирование строк для бухгалтерских проводок

Здравствуйте, помогите найти функцию, как из одной таблицы, сделать новую, при этом из каждой строки сделать 3 строчки.

Пример

Исходная строка:

2011-6 1-6-2011 11500890 1300 Debiteuren - klanten 6666 12347 Leo Batenburg 145,00

Надо получить:


2011-6 1-6-2011 11500890 1300 Debiteuren - klanten 6666 12347 Leo Batenburg 145,00
2011-6 1-6-2011 11500890 8010 Goederen 19% groep 1 6666 12347 Leo Batenburg -121,85
2011-6 1-6-2011 11500890 1503 Af te dragen BTW 19% 6666 12347 Leo Batenburg -23,15


При этом данные столбцов 1,2,3,6,7,8 дублируются
столбцы 4 и 5 - всегда имеют те же самые 3 значения
а столбец 9 содержит формулу (разделяется сумма продажи на сумму без НДС и НДС отсдельно)

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

ПС. Пользуюсь excel 2010

Спасибо заранее за помощь.
Lanatje вне форума Ответить с цитированием
Старый 14.07.2011, 20:51   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Данные в массив, создаём пустой в 3 раза больше, перебор исходного массива и перекладывание в новый массив.
Выгрузка нового массива.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.07.2011, 21:19   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Только насчёт процентов не сходится - я вроде 19 считал...
Проценты сами подкорректируйте, как Вам нужно.

Код:
Option Explicit

Sub tt()
    Dim a, b, i&, ii&, x As Byte
    a = Range([I1], Range("A" & Rows.Count).End(IIf(Len(Range("A" & Rows.Count)), xlDown, xlUp))).Value
    ReDim b(1 To UBound(a) * 3, 1 To 9)
    ii = 1
    For i = 1 To UBound(a)
        'При этом данные столбцов 1,2,3,6,7,8 дублируются
        'столбцы 4 и 5 - всегда имеют те же самые 3 значения
        For x = 1 To 9: b(ii, x) = a(i, x): Next
        b(ii + 1, 1) = a(i, 1)
        b(ii + 1, 2) = a(i, 2)
        b(ii + 1, 3) = a(i, 3)
        b(ii + 1, 4) = "8010"
        b(ii + 1, 5) = "Goederen 19% groep 1"
        b(ii + 1, 6) = a(i, 6)
        b(ii + 1, 7) = a(i, 7)
        b(ii + 1, 8) = a(i, 8)
        b(ii + 1, 9) = a(i, 9) - a(i, 9) / 100 * 19

        b(ii + 2, 1) = a(i, 1)
        b(ii + 2, 2) = a(i, 2)
        b(ii + 2, 3) = a(i, 3)
        b(ii + 2, 4) = "1503"
        b(ii + 2, 5) = "Af te dragen BTW 19%"
        b(ii + 2, 6) = a(i, 6)
        b(ii + 2, 7) = a(i, 7)
        b(ii + 2, 8) = a(i, 8)
        b(ii + 2, 9) = a(i, 9) / 100 * 19

        ii = ii + 3
    Next
    [a1:i1].Resize(UBound(b)) = b
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 14.07.2011 в 21:25.
Hugo121 вне форума Ответить с цитированием
Старый 15.07.2011, 05:43   #4
Lanatje
 
Регистрация: 14.07.2011
Сообщений: 3
По умолчанию

Hugo121

Спасибо за помощь, если бы вы еще объяснили, что с этим делать.
А то мои познания дальше функций и сортировок не распространяются...
Lanatje вне форума Ответить с цитированием
Старый 15.07.2011, 05:48   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Файл давайте - сделаю кнопку...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 15.07.2011, 05:56   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Хотя... вот Вам файл.
Открываете его, потом свой файл (копию!!! ), потом жмёте Alt+F8 и выбираете макрос Lanatje, ОК.
Вложения
Тип файла: rar Lanatje.rar (12.2 Кб, 16 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 16.07.2011, 11:22   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Что-то пропал заказчик...
Я не тогровец, поэтому в процентах не специалист...
Там вероятно так нужно делать (тогда цифры сходятся):
Код:
a(i, 9) / 119 * 19
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 16.07.2011, 12:22   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

заказчик пошел нынче какой-то ветренный - то пропадет, то появится снова...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.07.2011, 15:21   #9
Lanatje
 
Регистрация: 14.07.2011
Сообщений: 3
По умолчанию

Извините, что пропала - отчетный период сами понимаете...
Просто нашла в программе возможность экспорта не готовых проводок, а самого списка продаж и моих знаний хватило на эту операцию ))
Поэтому вопрос закрылся до следующего месяца....
Но все равно большое спасибо, буду осваивать. Новый месяц не горами, да и для других клиентов пригодится

Что касается формул - то для второй строки = -1 * округление (значение / 1,19), 2 знака,
для третьей = -1 * округление (значение / 1,19 * 0,19)

вместе три строки должны давать в сумме 0

Большое спасибо за оперативную и качественную помощь!
Lanatje вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TStringList и дублирование строк us4us Общие вопросы Delphi 4 25.04.2011 22:30
Аналог "Сквозных строк" для формирования итоговых строк на печать. kotyambala Microsoft Office Excel 0 05.05.2010 13:40
дублирование строк в таблице windrun БД в Delphi 0 27.02.2010 22:53
дублирование строк в документ varelik Общие вопросы Delphi 0 02.12.2009 17:05
Дублирование(файл) ТРОЯН=) Помощь студентам 5 30.03.2009 10:33