ОБСУЖДЕНИЕ

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

2 ответов 5,3 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

Сущкствуют 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
 
Есть отличная книга: А. Гарнаев - Самоучитель VBA, поройся в gugle - он найдет. Там все отлично написано, сам начал обучатся VBA с нее.
 
эм... если чесно не понял поставленную задачу, а именно каким образом и какие данные в ячейках содержатся. но вообще вот работа с ячейками такая:

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

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