Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка Run-time error '13', Не могу разобраться. 
:(
    Опции темы
glass44
Дата 1.2.2016, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.2.2016

Репутация: нет
Всего: нет



При заполнении таблицы на 3-4 строке выскакивает вот это;
Вот полный код !


'читаем признак

Private Sub inic()
Dim k, z, priznak
Application.ScreenUpdating = False
Workbooks.Open Filename:=ThisWorkbook.path + "" + "конф.xls"
With Workbooks("конф.xls")
For k = 2 To .Worksheets("пользовательские").Range("A100").End(xlUp).Row
priznak = .Worksheets("пользовательские ").Cells(k, 1).Value
ComboBox4.AddItem priznak
Next k
End With
Workbooks("конф.xls").Close (False)
End Sub

Private Sub Frame2_Click()

End Sub

Private Sub UserForm_Initialize()
inic
End Sub


ФОРМИРОВАНИЕ КАТЕГОРИИ
Private Sub ComboBox4_Change() 'при выборе признака
ComboBox1.Clear
ComboBox2.Clear

Dim sh As Worksheet
Dim path, list, cat, k
Application.ScreenUpdating = False
Workbooks.Open Filename:=ThisWorkbook.path + "" + "конф.xls"

With Workbooks("конф.xls")
For k = 2 To .Worksheets("прайс-листы").Range("A1000").End(xlUp).Row

If .Worksheets("прайс-листы ").Cells(k, 12) = ComboBox4.Text Then

path = .Worksheets("прайс-листы ").Cells(k, 1).Value
list = .Worksheets("прайс-листы ").Cells(k, 2).Value

Set sh = GetObject(path).Sheets(list)

cat = .Worksheets("прайс-листы ").Cells(k, 3).Value

ComboBox1.AddItem sh.Range(cat).Value втягиваем категорию
sh.Parent.Close (False)
Else
End If
Next k
End With
Workbooks("конф.xls").Close (False)
'sh.Parent.Close (False)
End Sub






'ФОРМИРОВАНИЕ НАИМЕНОВАНИЯ
Private Sub ComboBox1_Change() 'при выборе категории

Dim sh As Worksheet
Dim path, list, cena, k, cat, mat, vid, ed, e, tol, procent
Application.ScreenUpdating = False

ListBox1.Clear

Workbooks.Open Filename:=ThisWorkbook.path + "" + "конф.xls"

With Workbooks("конф.xls")

For k = 2 To 100

If .Worksheets("прайс-листы ").Range("L" & k).Text = ComboBox4.Text Then

path = .Worksheets("прайс-листы ").Cells(k, 1).Value
list = .Worksheets("прайс-листы ").Cells(k, 2).Value

Set sh = GetObject(path).Sheets(list)

'формируем список наименование и цена
Dim n, g, c, cc, ccc

cat = .Worksheets("прайс-листы ").Cells(k, 3).Value
If ComboBox1.Value = sh.Range(cat).Value Then 'втягиваем категорию


g = Mid(.Worksheets("прайс-листы ").Cells(k, 4).Text, 2) 'берем из ячейки с началом списка диапазона только цифру
c = Mid(.Worksheets("прайс-листы ").Cells(k, 5).Text, 2) ' берем из ячейки с концом списка диапазона только цифру

cc = Left(.Worksheets("прайс-листы ").Cells(k, 4).Text, 1) ' берем из ячейки с началом списка диапазона только букву
ccc = Left(.Worksheets("прайс-листы ").Cells(k, 6).Text, 1) ' берем из ячейки с началом цены только букву


ed = .Worksheets("прайс-листы ").Cells(k, 8).Text
mat = .Worksheets("прайс-листы ").Cells(k, 9).Text
tol = .Worksheets("прайс-листы ").Cells(k, 10).Text
vid = .Worksheets("прайс-листы ").Cells(k, 11).Text
procent = .Worksheets("прайс-листы ").Cells(k, 13).Text
valu = .Worksheets("прайс-листы ").Cells(k, 14).Text

'ставим значение в листбокс
For n = g To c
a = sh.Cells(n, cc).Text

ListBox1.AddItem a 'наименования

ComboBox2.list = ListBox1.list 'наименования

'цены и остальные пункты
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 1) = sh.Cells(n, ccc).Text 'цена
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 2) = ed
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 3) = mat
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 4) = tol
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 5) = vid
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 6) = procent
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 7) = valu
Me.ListBox1.list(Me.ListBox1.ListCount - 1, 8) = ComboBox4.Text
Next n

End If
sh.Parent.Close (False)
End If
Next k

End With
Workbooks("конф.xls").Close (False)
'sh.Parent.Close (False)

End Sub



'ВСТАВКА ЗНАЧЕНИЙ

Private Sub ComboBox2_Change() ' при выборе наименование

If ComboBox2.Value = "" Then 'если комбо очистили то идем на иник

Else
'*********ИНАЧЕ ВСТАВЛЯЕМ ЗНАЧЕНИЕ***************
inic2:
Dim koli As Variant
koli = Application.InputBox("ВВЕДИТЕ КОЛИЧЕСТВО!", "НОВЫЙ РАСЧЕТ")
If koli = False Then Exit Sub 'если нажать Cancel
If koli <> "" Then 'если ни чего не ввели


If IsNumeric(koli) Then 'если ввели цифру


Новый расчет.ListView1.ListItems.Add , , "" 'вынесли вверх чтобы не было пустой строки

For i = 1 To Новый расчет.ListView1.ListItems.Count
If Новый расчет.ListView1.ListItems.Item(i) <> "" Then
Else



Новый расчет.ListView1.ListItems.Item(i) = ComboBox1.Value 'категория
Новый расчет.ListView1.ListItems.Item(i).SubItems(1) = ComboBox2.Value 'наименование
Новый расчет.ListView1.ListItems.Item(i).SubItems(2) = ListBox1.list(ListIndex, 3) 'материал


Новый расчет.ListView1.ListItems.Item(i).SubItems(3) = ListBox1.list(ListIndex, 4) 'толщина
Новый расчет.ListView1.ListItems.Item(i).SubItems(4) = ListBox1.list(ListIndex, 5) 'вид
Новый расчет.ListView1.ListItems.Item(i).SubItems(6) = ListBox1.list(ListIndex, 2) 'ед
Новый расчет.ListView1.ListItems.Item(i).SubItems(7) = CDbl(ListBox1.list(ComboBox2.ListIndex, 1)) 'закупка
Новый расчет.ListView1.ListItems.Item(i).SubItems(9) = ListBox1.list(ListIndex, 6) 'процент


Новый расчет.ListView1.ListItems.Item(i).SubItems(5) = koli 'кол-во
Новый расчет.ListView1.ListItems.Item(i).SubItems(8) = koli * Новый расчет.ListView1.ListItems.Item(i).SubItems(7) 'цена


p = Íîâûé_ðàñ÷åò.ListView1.ListItems.Item(i).SubItems(9) / 100 + 1
Новый расчет.ListView1.ListItems.Item(i).SubItems(10) = p * Новый расчет.ListView1.ListItems.Item(i).SubItems(8)
Новый расчет.ListView1.ListItems.Item(i).SubItems(11) = Новый расчет.ListView1.ListItems.Item(i).SubItems(10) - Новый расчет.ListView1.ListItems.Item(i).SubItems(8)
Новый расчет.ListView1.ListItems.Item(i).SubItems(12) = ComboBox4.Text



'общая стоимость
Dim a As Currency

a = Новый расчет.ListView1.ListItems.Item(i).SubItems(10)
OldStr = Новый расчет.TextBox1.Value
NewStr = Replace(OldStr, ".", ",") 'меняем точку из текстбокса на запятую для вычисления
s = NewStr
s = s + a
Новый расчет.TextBox1.Value = s
Новый расчет.TextBox28.Value = s
Новый расчет.TextBox34.Value = s

'краткий отчет
Новый расчет.TextBox4.Value = s 'общая сумма
Новый расчет.TextBox2.Value = i 'всего строк

Dim aa As Currency
aa = Новый расчет.ListView1.ListItems.Item(i).SubItems(8) 'закупка
ss = Новый расчет.TextBox3.Value 'закупка
ss = ss + aa (ОШИБКА)
Новый расчет.TextBox3.Value = ss
Новый расчет.TextBox5.Value = s - ss


End If
Next i

Else 'это для ошибки ввода koli
MsgBox "Вы ни чего не ввели, или ввели букву!", vbExclamation, ""
GoTo inic2
End If
Else
MsgBox " Вы ни чего не ввели, или ввели букву!", vbExclamation, ""
GoTo inic2
End If

'**********************ЧИСТИМ ЗА СОБОЙ И ИДЕМ НА ИНИК
ListBox1.Clear
ComboBox2.Clear
ComboBox1.Clear
ComboBox4.Clear
inic

End If
End Sub

Private Sub CommandButton1_Click()

Unload компоненты
End Sub


Не могу разобраться, ПОМОГИТЕ ПЛЗ!!! Очень надо!
PM MAIL   Вверх
Angel666
Дата 2.2.2016, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 8.9.2011

Репутация: нет
Всего: 1



А в чем проблема запустить отладку и поставить точку остановки на этом
aa = Новый расчет.ListView1.ListItems.Item(i).SubItems(8) 'закупка
ss = Новый расчет.TextBox3.Value 'закупка
и посмотреть существуют ли эти объекты в данный момент или нет.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
glass44
Дата 2.2.2016, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.2.2016

Репутация: нет
Всего: нет



Цитата(Angel_666 @ 2.2.2016,  12:46)
А в чем проблема запустить отладку и поставить точку остановки на этом
aa = Новый расчет.ListView1.ListItems.Item(i).SubItems(8) 'закупка
ss = Новый расчет.TextBox3.Value 'закупка
и посмотреть существуют ли эти объекты в данный момент или нет.

Этот ответ добавлен с нового Винграда - http://vingrad.com

А как, я особо не силен в программировании. Просто очень нужна этоа программа.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1092 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.