Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 22:35   #1
aigula
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 13
По умолчанию создание ведомости(отчета) в VBA

Курсовая. есть 2 таблицы: Прейскурант и продажи. надо создать ведомость о проданных товарах на указанную дату, и получить отчет популярных показаний за месяц. выдает ошибки в формулах, помогите пожалуйста.
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim h As Byte
If ComboBox1 = "" Then
h = MsgBox("Для вывода ведомости необходимо выделить из списка Количество", vbYes + vbQuestion, "Ведомость")
If h = vbYes Then GoTo 12 Else GoTo e
End If
Dim pr As Object, nx As Object
Dim prez As Object, nex As Object
Dim cur As Object, fol As Object
Dim nam As String, schet As String
Dim y As Integer, r As Integer, j As Integer
nam = ComboBox1.Text
ActiveWorkbook.Sheets("Ведомость продаж").Activate
ActiveWorkbook.Sheets("Ведомость"). Range("d3") = 0
For i = 3 To 15
ActiveWorkbook.Sheets("Ведомость"). Cells(i, 2) = ""
ActiveWorkbook.Sheets("Ведомость"). Cells(i, 3) = ""
ActiveWorkbook.Sheets("Ведомость"). Cells(i, 4) = ""
ActiveWorkbook.Sheets("Ведомость"). Cells(i, 5) = ""
ActiveWorkbook.Sheets("Ведомость"). Cells(i, 6) = ""
Next i
Sheets("Ведомость продаж").Select
Set prez = Sheets("Ведомость продаж").Range("B3")
Do Until IsEmpty(prez)
If prez = nam Then
kod = prez.Offset(0, 1)
kol = prez.Offset(0, 2)
Else: GoTo 1
End If
Sheets("Регистрация наличия лекарств").Select
Set cur = Sheets("Регистрация наличия лекарств").Range("a2")
Do Until IsEmpty(cur)
If cur = kod Then
namt = cur.Offset(0, 1)
Z = cur.Offset(0, 2)
Exit Do
End If
Set fol = cur.Offset(1, 0)
Set cur = fol
Loop
Sheets("Ведомость").Select
Set pr = Sheets("Ведомость").Range("b3")
Do Until IsEmpty(pr)
Set nx = pr.Offset(1, 0)
Set pr = nx
Loop
Sheets("Ведомость").Range("a3") = nam
pr.Value = kod
pr.Offset(0, 1) = namt
pr.Offset(0, 2).Value = Z
pr.Offset(0, 3).Value = kol
summ = Z * kol
pr.Offset(0, 4).Value = summ
1: Set nex = prez.Offset(1, 0)
Set prez = nex
Loop
Sheets("Ведомость").Range("g3").Act ivate
ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[196]C[-1])"
12 ComboBox1 = ""
UserForm4.Hide
e: End Sub


Private Sub Frame1_Click()

End Sub

Private Sub UserForm_activate()
Dim pr As Object, x As Object
UserForm4.ComboBox1.Clear
ActiveWorkbook.Sheets("Ведомость продаж").Select
Set pr = ActiveSheet.Range("C2")
Do While Not IsEmpty(pr)
Set x = pr.Offset(1, 0)
ComboBox1.AddItem pr
Set pr = x
Loop
End Sub


где желтым выделено, выдает ошибку: метод из класса ранг завершен неверно
aigula вне форума Ответить с цитированием
Старый 28.05.2013, 22:43   #2
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

пробел в "Act ivate"?
kalbasiatka вне форума Ответить с цитированием
Старый 28.05.2013, 22:57   #3
aigula
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 13
По умолчанию

нет, это только здесь так вышло.
aigula вне форума Ответить с цитированием
Старый 28.05.2013, 23:01   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Без пробела работает.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 28.05.2013, 23:03   #5
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Значит вы пытаетесь активировать ячейку не активного листа, добавьте перед строкой с ошибкой
Код:
Sheets("Ведомость").Activate
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 28.05.2013, 23:07   #6
aigula
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 13
По умолчанию

Sheets("Ведомость").Range("g3").Act ivate
вот так у меня, все равно не получается.
Пробел когда сюда добавляю только выходит.
aigula вне форума Ответить с цитированием
Старый 29.05.2013, 00:05   #7
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Sheets("Ведомость").Range("g3").Act ivate

вот так у меня, все равно не получается.
и не будет так работать
или пишите
Код:
Sheets("Ведомость").Activate
Range("g3").Activate
или одной строкой
Код:
Application.GoTo Reference:=Worksheets("Ведомость").[g3]
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 29.05.2013, 00:51   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Виктор, у меня сработало, без проблем.
Вот, взял из кода:
Код:
ActiveWorkbook.Sheets("Ведомость продаж").Activate

Sheets("Ведомость продаж").Select

Sheets("Ведомость").Select
Sheets("Ведомость").Range("g3").Activate
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.05.2013, 01:04   #9
aigula
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 13
По умолчанию

я пробовала подставлять эти коды, нажимаю потом на кнопку на листе в эксель, обратно возвращает в VBA. но ошибку не выдает.
aigula вне форума Ответить с цитированием
Старый 29.05.2013, 07:53   #10
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Еще пару постов со словами "мамой клянусь не работает" и созреем до файла
kalbasiatka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание ведомости в VBA aigula Помощь студентам 1 29.05.2013 09:38
Создание сводного отчета VBA mr. Good Microsoft Office Excel 17 17.04.2011 12:34
Создание отчета Alexnoir Microsoft Office Access 11 16.02.2011 01:07
Создание отчета Ol_Bak Microsoft Office Access 1 25.01.2011 13:43