Почему макрос не работает?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

ОК, с диапазонами ясно, согласен.
А вот так будет выглядет полная процедура заполнения листа "Отчет".

Код: Выделить всё

Private Sub ListBox1_Click()
  Dim NextRow As Long
NextRow = Application.WorksheetFunction.CountA(Range("A2:A500")) + 2
iIndex = ListBox1.ListIndex
obraz = ListBox1.Value
For Each obraz1 In Range("A2:A500")
If obraz = obraz1 Then
Call MsgBox("Такое значение уже введено!", vbExclamation, "Ошибка!")
GoTo err
End If
Next obraz1
With Worksheets("Отчет").Range("A:C")
    If iIndex = 0 Then
    .Cells(NextRow, 1).Value = ListBox1.List(iIndex, 0)
    .Range(Cells(NextRow, 1), Cells(NextRow, 3)).MergeCells = True
    .Cells(NextRow, 1).Font.Bold = True
    .Cells(NextRow, 1).Font.Size = 12
    Else
    .Cells(NextRow, 1).Value = ListBox1.List(iIndex, 0)
    .Cells(NextRow, 2).Value = ListBox1.List(iIndex, 1)
    .Cells(NextRow, 3).Value = ListBox1.List(iIndex, 2)
    End If
End With
err:
End Sub
что дальше?
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

Очень прекрасно работает спасибо.
"что дальше?"
2) На лист "Отчёт" по средствам формы из диапазона А:С удалить не нужные значения в дипозоне A:B:C на форме, не получается что-то модифицировать, удаляет криво
3) создать динамическую форму, котрые вы предложили выше для пополнения динамических диапозонов на листе групповые:
Игровая
Спальня
Спальня: туалетная
Спальня: приемная - раздевальная
Спальня: буфетная
Думал создать форму пополнения/ удаления базы см. файл
http://slil.ru/25861939
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

так, файл забрал.
чуть позже разберемся
куда оно денется :)
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

seergy, опять же, обратите внимание.
для такого количества данных (полное отсутствие, практически) размер файла просто несуразный. Не замечали?
Лишние заливки, границы ячеек (разлиновки) до строки 65536!!!
Все это бессмысленноувеличивает размер файла.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

Это формальность - всё делалось на скорую руку.
Кстати формулы "смещения" я полагаю решают проблему до строки 65536 . Т.е. определяются только заполненые диапозны. Если хотите упростить я не против... только лишь бы работало. Буду рад любому вашему альтернативному варианту...
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Кстати формулы "смещения" я полагаю решают проблему до строки 65536
вообще-то я не об этом, ну да ладно. Сейчас у меня размер Вашего файла - 254 кб.
И все на месте.
Остальное - чуть позже.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

seergy, вопрос.
"Удалять" - это из листа Отчет или Групповые?
А то сначала было одно, ща вроде другое?
***
разобрался
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

"Удалять" - это из листов Отчет и Групповые - в принципе для обоих действий подойдёт однотипный код макрос.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

seergy,
в принципе для обоих действий подойдёт однотипный код макрос
да нет, батенька, не все так просто :)
p.s.
Посмотрите файл, где-то так я себе все это представляю.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

В выложенном файле не задействована кнопка "Очистить", забыл.
Да это мелочи. И еще - можно посмотреть какие листы открывать/закрывать, скрывать/показывать.
В общем - смотрите.
***
поместите в модуль формы РабБаза

Код: Выделить всё

Private Sub cbОчистить_Click()
    tbНаименование.Value = ""
    tbМаркаТип.Value = ""
    tbЦена.Value = ""
    tbДоп.Value = ""
    tbТелефон.Value = ""
End Sub
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Ответить