Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - помогите решить задачу в excel с помощью vba

Ответить
Настройки темы
VBA - помогите решить задачу в excel с помощью vba

Аватара для yulka6464

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:13, 01-05-2011

 

Модератор


Moderator


Сообщения: 16844
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


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

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 15:30, 01-05-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для yulka6464

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 17:23, 01-05-2011 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


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

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 17:27, 01-05-2011 | #4


Аватара для yulka6464

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: docx 1.docx
(11.5 Kb, 11 просмотров)

ок...сейчас отправлю

Отправлено: 17:44, 01-05-2011 | #5


Аватара для yulka6464

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip 1.ZIP
(27.7 Kb, 13 просмотров)

все кидаю..пасибки )))

Отправлено: 17:51, 01-05-2011 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


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

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:19, 01-05-2011 | #7


Модератор


Moderator


Сообщения: 16844
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


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

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:54, 01-05-2011 | #8


Аватара для yulka6464

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 11:52, 02-05-2011 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


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 его офиса.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 14:25, 02-05-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - помогите решить задачу в excel с помощью vba

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - VBA Excel помогите решить Мария74 Программирование и базы данных 1 19-02-2011 12:58
Разное - Помогите пожалуйста решить задачу в excel DjCiB Программирование и базы данных 1 28-12-2010 11:38
Разное - Помогите решить задачу в Excel Dgonny Программирование и базы данных 2 16-11-2009 04:11
VBA - помогите решить задачку Vba + Excel hellp123 Программирование и базы данных 3 14-03-2009 01:15
MsOffice | Помогите решить задачу в Excel Yarikus Программирование и базы данных 3 31-01-2005 10:57




 
Переход