Помощь с макросом в Excell

Тема в разделе "Visual Basic", создана пользователем Mad Mike, 16 ноя 2007.

  1. Mad Mike

    Mad Mike Гость

    Вот после пяти лет учебы понял что то чему учился никому ненужно решил начать заниматься программированием.
    И вот решил себя попробовать в написании такого макроса
    Макрос должен делать следующие

    Сущкствуют 3 листа. первый называется in, второй out, третий stock. нужно чтобы

    1. На листе in значение в ячейке (кол-во товара) должно как-то связываться с его названием которое находится в начале строки и с датой которая находится в начале столбца и переносить их на лист stock.

    2. Тоже самое надо делать и на листе out (можно только к названию).

    3. На листе stock из данных ячеик (кол-во товара) которые были перенесены с листа in должны вычитаться данные ячеик перенесенные с листа out. Но с таким условием чтобы сначала вычитались значения с наименьшей датой, а когда там стане 0 то со следующий по возрастанию. (т.е. есть кол-во товара с датой 01.12.00 (1) и с датой 23.02.01 (2) сначала должно вычитаться из кол-ва товара (1)

    4. На листе stock макрос должен суммировать все значения ячеек для каждого наименования.

    Буду очель благодарен за любые вашы советы!!!

    И еще могли бы Вы мне порекомендовать книги где подробно написано по VBA
     
  2. Octadm

    Octadm Гость

    Есть отличная книга: А. Гарнаев - Самоучитель VBA, поройся в gugle - он найдет. Там все отлично написано, сам начал обучатся VBA с нее.
     
  3. Jumpy

    Jumpy Гость

    эм... если чесно не понял поставленную задачу, а именно каким образом и какие данные в ячейках содержатся. но вообще вот работа с ячейками такая:

    dim NAZVANIE as string
    dim stroka as string
    stroka = in.range("A" & 1) 'stroka = тому что у нас в столбце A в первой строке

    NAZVANIE = mid(stroka,1,instr(1,stroka," ",) -1) 'NAZVANIE = начальной части stroka до первого пробела (но пробел не включается)

    'перенос на другую страницу

    out.range("A" & 1) = in.range("A & 1) 'ячейка A1 листа out = ячейке A1 листа in

    'с вычитанием, сам разберешься, думаю :rolleyes:

    'сумма по столбцу
    dim a as integer 'счетчик цикла
    dim START as integer 'номер первой строка с данными
    dim KONEC as integr 'номер последней строки с данными
    dim SUMMA as long

    START = 1
    KONEC = 10 'допустим у нас 10 записей

    a = START
    SUMMA = 0
    do while a <= KONEC 'делать пока не дойдем до последней записи

    SUMMA = SUMMA + stock.range("B" & a) 'допустим складываемые циферки у нас в столбце B
    a = a + 1
    loop

    stock.range("C" & 1) = "Сумма: " & SUMMA 'выведем результат в ячейку С1

    вроде все что те надо рассказал )
     
Загрузка...

Поделиться этой страницей