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

  • Автор темы Mad Mike
  • Дата начала
M

Mad Mike

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

Сущкствуют 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
 
O

Octadm

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

Jumpy

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

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

вроде все что те надо рассказал )