Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   помогите решить задачу в excel с помощью vba (http://forum.oszone.net/showthread.php?t=205938)

yulka6464 01-05-2011 14:13 1668436

помогите решить задачу в excel с помощью vba
 
помогите пожалуйста решить задачку
на склад поступило некоторое количество товара.данные о наименовании товара и его цене занесены в таблицу.вычислить, какое количество наименований товара поступило на склад
через excel решила...а через vba не могу..
заранее спасибо

okshef 01-05-2011 15:30 1668468

Каков критерий различий наименований?
Как решили в Excel?

yulka6464 01-05-2011 17:23 1668515

критерия особого нет...просто надо посчитать сколько всего товара поступило...в excel считала через СЧЕТЕСЛИ...подсчитала количество заполненных строк

в vba пыталась так же считать...но выводит последнюю заполненную ячейку

lxa85 01-05-2011 17:27 1668518

yulka6464, прикрепи excel файл с поступившим товаром и vba программу, посмотреть, что у тебя получилось

yulka6464 01-05-2011 17:44 1668522

Вложений: 1
  • 1.docx (11.50 KB, скачиваний: 20)
ок...сейчас отправлю

yulka6464 01-05-2011 17:51 1668528

Вложений: 1
  • 1.ZIP (27.70 KB, скачиваний: 22)
все кидаю..пасибки )))

lxa85 01-05-2011 23:19 1668677

yulka6464, внимательнее относись к переменным.
Держи, должно работать. У меня в виртуальной машине только 2003 офис, т.ч. проверить все не смог.
Если где ошибся на единичку, я думаю тебе поправить меня труда не составит :)
Код:

Private Sub CommandButton1_Click()
Dim l As Integer, min As Integer, j As Integer, NData As Integer, k As Integer
Dim i As Integer, x As Integer
'давай переменный "говорящие названия" в процессе программирования i j l легко перепутать между собой
j = 12
min = Worksheets("Вычисления").Cells(j, 4)
For i = 1 To 10
    x = Worksheets("Вычисления").Cells(j + i, 4)
    If x < min Then
        min = x
        l = i
    End If
Next i
Worksheets("Вычисления").Cells(j + 18, 6) = min
Worksheets("Вычисления").Cells(j + 18, 9) = Cells(l, 3)

End Sub

Private Sub CommandButton2_Click()

Worksheets("Вычисления").Range("f29") = "" ' очистка ячейки f24
Worksheets("Вычисления").Range("f30") = "" ' очистка ячейки f25
Worksheets("Вычисления").Range("i30") = "" ' очистка ячейки i24

End Sub

Private Sub CommandButton3_Click()
Dim i As Integer, x As Integer
Dim j As Integer
'j можно посчитать лишней и заменить на константу 12, а можно и оставить
i = 0
j = 12              'строка с которой начинаются записи в таблице
Do Until Worksheets("Вычисления").Cells(j + i, 4) = "" 'проверяется условие - не являеся ли строка пустой
    i = i + 1        'подсчитывается количество заполненных строк
Loop
i = i + 1 'если честно, то данный шаг сомнителен

Worksheets("Вычисления").Cells(29, 6) = i

End Sub


okshef 01-05-2011 23:54 1668692

yulka6464, вместо
Код:

Worksheets("Вычисления").Range("f29") = ""
лучше использовать
Код:

Worksheets("Вычисления").Range("f29").ClearContents
И с циклом разберитесь: увеличение аргумента Cells(j + i, 4) - ничем не обосновано.
Вместо функции СЧЕТЕСЛИ() в Office 2010 используйте СЧЁТЗ()

yulka6464 02-05-2011 11:52 1668848

lxa85, спасибки...мне весь код не нужен был...а только для вычисления количества наименований товара...и он в твоем собщении не ведкн..не мог бы ты только его переслать..пасибки )))

lxa85 02-05-2011 14:25 1668940

yulka6464, цитируй пожалуйста неправильные места программы.
Вычисление количества наименований товаров - это этот кусок кода?
Код:

Private Sub CommandButton3_Click()
Dim i As Integer, x As Integer
Dim j As Integer
'j можно посчитать лишней и заменить на константу 12, а можно и оставить
i = 0
j = 12              'строка с которой начинаются записи в таблице
Do Until Worksheets("Вычисления").Cells(j + i, 4) = "" 'проверяется условие - не являеся ли строка пустой
    i = i + 1        'подсчитывается количество заполненных строк
Loop
i = i + 1 'если честно, то данный шаг сомнителен

Не правилен в какую сторону? В бОльшую, в меньшую?
----
прикрепи пожалуйста текущий файл екселя в формате 2003 его офиса.

yulka6464 02-05-2011 14:55 1668965

Вложений: 1
  • 11.ZIP (19.10 KB, скачиваний: 21)
да этото..сечас вышли его в вордовском докуме и exel вариант

lxa85 02-05-2011 15:49 1668987

Вложений: 1
  • 1.zip (15.50 KB, скачиваний: 26)
Комментарии к коду остаются в силе. Внимательнее к названиям переменных! Ты в них путаешься. i,j,l выглядят очень похоже друг на друга.
Исправленный xls в архиве

yulka6464 02-05-2011 16:33 1669013

большое спасибо за помощь..я поняла свою ошибку

яна0103 24-12-2011 16:08 1821473

помогите решить задачу пожалуйста с помощью VBA

1. Создать таблицу, которая содержит сведения о работе обменного пункта за день (продажа и покупка одного вида валюты).
Структура таблицы:
- наименование банка;
- курс продажи;
- курс покупки.
- количество проданных у.е.;
- количество купленных у.е.;
2. Разработать режим добавления в таблицу произвольного количества строк.
3. Определить:
• максимальную разницу между курсом продажи и покупки у.е.;
• суммарное количество у.е., проданных всеми обменными пунктами за день, и общую сумму, на которую они проданы.
4. Создать на 2 листе книги таблицу, которая содержит наименование фирмы, количество проданных у.е. и общую сумму продажи.
5. Сортировать данные в таблице по заданному столбцу.
6. Изменить курс покупки валюты у заданного банка.
7. Удалить информацию о банке с максимальной разницей между курсом продажи и курсом покупки.

яна0103 24-12-2011 16:34 1821485

пожалуйста помогите :) :) :) :) :) :) :) !!!!!!! очень важно!!! )))))

Iska 24-12-2011 21:39 1821627

яна0103, это: Правила Форума читали? Обратите особое внимание на пункты 5 и 6.

beli2nb 15-05-2012 19:45 1916527

Вложений: 2
помогите а то что то я запутался...вот задания я вожусь вожусь уже голова деревянная облазил всё в поисках руководств всяких.Но ближе к делу!вот моё задания 1. Создать в рабочей книге рабочие листы:Большой зал,малый зал,лекционный зал и данные.2.На рабочих листах создать сетку-график рабочих дней и времени работы.3.На листе данные заполнить колонку А Фамилия преподователей, оформив каждого уникальным цветом заливки ячейки.4.Создать пользовательскую форму,каторая позволит в диалог-режиме выполнить отметку в какой день,кто и где проводил занятия.5.Заполнение данных на соответствующих листах выполнять заливкой фона ячейки на пересечение даты и времени занятия тем же цветом,что был присвоен фамилии на листе данные. пункт 1,3,4 сделан но вот со вторым пунктом я запутался,в листе данные я вписал 5 фамилий закрасил как надо создал форму вот дальше я не могу понять как раскидать в 3 ячейки время и дни работы преподавателей!не могу со вторым пунктом разобраться либо я уже не соображаю.может кто поможет разобраться?


Время: 17:51.

Время: 17:51.
© OSzone.net 2001-