Показать полную графическую версию : помогите решить задачу в excel с помощью vba
yulka6464
01-05-2011, 14:13
помогите пожалуйста решить задачку
на склад поступило некоторое количество товара.данные о наименовании товара и его цене занесены в таблицу.вычислить, какое количество наименований товара поступило на склад
через excel решила...а через vba не могу..
заранее спасибо
Каков критерий различий наименований?
Как решили в Excel?
yulka6464
01-05-2011, 17:23
критерия особого нет...просто надо посчитать сколько всего товара поступило...в excel считала через СЧЕТЕСЛИ...подсчитала количество заполненных строк
в vba пыталась так же считать...но выводит последнюю заполненную ячейку
yulka6464, прикрепи excel файл с поступившим товаром и vba программу, посмотреть, что у тебя получилось
yulka6464
01-05-2011, 17:44
ок...сейчас отправлю
yulka6464
01-05-2011, 17:51
все кидаю..пасибки )))
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
yulka6464, вместо
Worksheets("Вычисления").Range("f29") = "" лучше использовать
Worksheets("Вычисления").Range("f29").ClearContents
И с циклом разберитесь: увеличение аргумента Cells(j + i, 4) - ничем не обосновано.
Вместо функции СЧЕТЕСЛИ() в Office 2010 используйте СЧЁТЗ()
yulka6464
02-05-2011, 11:52
lxa85, спасибки...мне весь код не нужен был...а только для вычисления количества наименований товара...и он в твоем собщении не ведкн..не мог бы ты только его переслать..пасибки )))
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
да этото..сечас вышли его в вордовском докуме и exel вариант
Комментарии к коду остаются в силе. Внимательнее к названиям переменных! Ты в них путаешься. i,j,l выглядят очень похоже друг на друга.
Исправленный xls в архиве
yulka6464
02-05-2011, 16:33
большое спасибо за помощь..я поняла свою ошибку
помогите решить задачу пожалуйста с помощью VBA
1. Создать таблицу, которая содержит сведения о работе обменного пункта за день (продажа и покупка одного вида валюты).
Структура таблицы:
- наименование банка;
- курс продажи;
- курс покупки.
- количество проданных у.е.;
- количество купленных у.е.;
2. Разработать режим добавления в таблицу произвольного количества строк.
3. Определить:
• максимальную разницу между курсом продажи и покупки у.е.;
• суммарное количество у.е., проданных всеми обменными пунктами за день, и общую сумму, на которую они проданы.
4. Создать на 2 листе книги таблицу, которая содержит наименование фирмы, количество проданных у.е. и общую сумму продажи.
5. Сортировать данные в таблице по заданному столбцу.
6. Изменить курс покупки валюты у заданного банка.
7. Удалить информацию о банке с максимальной разницей между курсом продажи и курсом покупки.
пожалуйста помогите :) :) :) :) :) :) :) !!!!!!! очень важно!!! )))))
яна0103, это: Правила Форума (http://forum.oszone.net/announcement-21-187.html) читали? Обратите особое внимание на пункты 5 и 6.
помогите а то что то я запутался...вот задания я вожусь вожусь уже голова деревянная облазил всё в поисках руководств всяких.Но ближе к делу!вот моё задания 1. Создать в рабочей книге рабочие листы:Большой зал,малый зал,лекционный зал и данные.2.На рабочих листах создать сетку-график рабочих дней и времени работы.3.На листе данные заполнить колонку А Фамилия преподователей, оформив каждого уникальным цветом заливки ячейки.4.Создать пользовательскую форму,каторая позволит в диалог-режиме выполнить отметку в какой день,кто и где проводил занятия.5.Заполнение данных на соответствующих листах выполнять заливкой фона ячейки на пересечение даты и времени занятия тем же цветом,что был присвоен фамилии на листе данные. пункт 1,3,4 сделан но вот со вторым пунктом я запутался,в листе данные я вписал 5 фамилий закрасил как надо создал форму вот дальше я не могу понять как раскидать в 3 ячейки время и дни работы преподавателей!не могу со вторым пунктом разобраться либо я уже не соображаю.может кто поможет разобраться?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.