Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/107: Рейтинг темы: голосов - 107, средняя оценка - 4.97
124 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 249

Форма для ввода, поиска и редактирования таблицы excel

01.08.2013, 12:06. Показов 22115. Ответов 48
Метки нет (Все метки)

Всем хорошего настроения!

Есть таблица, сделал форму для ввода данных. Необходимо чтобы при вводе данных в TextBox1 происходил поиск из первого столбца и после соответствия выводил в Textbox2 и TextBox3 значения этой строки соответственно из столбца 2 и 3, но не просто, а для редактирования. При нажатии кнопки Cange Record данные в искомой строке должны измениться.
Форма сейчас работает только на ввод, помогите с кодом поиска и редактирования.
Вложения
Тип файла: rar Data Table With Input Userform.rar (20.6 Кб, 320 просмотров)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.08.2013, 12:06
Ответы с готовыми решениями:

Открытая для редактирования форма в Excel
Можно ли в Excel создать форму так, чтобы она была открыта и пользователь имел бы доступ к редактированию листа???

Форма ввода в ввиде Таблицы Excel или Word
Стоит задача организовать форму ввода и редактирования базы данных в виде документа Word или таблицы Excel. Такая необходимость возникла...

Вот есть форма календаря для ввода дат, а для ввода времени?
Не ткнете, где взять можно??? Или может кодом кто поделится? Нужно часы и минуты выбирать из формы..... Как сделать - не согу...

48
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
22.10.2015, 12:21
Опять шутим ведь у Вас кнопка "Cancel" предназначена для того, чтобы выгрузить форму из памяти (Unload Me), тоже самое происходит и при нажатии кнопки Закрыть [X]

P.S. Может быть Вы хотите отследить нажатие на этот крестик и, предположим, запретить пользователю закрыть форму используя эту кнопку ...

Visual Basic
1
2
3
4
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then Cancel = True
    'Cancel = (CloseMode = vbFormControlMenu)
End Sub
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
22.10.2015, 14:01
pashulka, нет, это понятно, просто в коде я могу легко назначить кнопке "Cancel" любое действие, например как у меня, при выходе из формы ставить защиту паролем на страницу.
При нажатии на "Х" просто закрывается форма, страница остается не защищена, соответственно в силу защиты от кривых рук, чтоб никто ничего со страницы лишнего не удалил, это не подходит.
По Вашему коду я просто отключил действие при нажатии на "Х" - это подходит.

Вопрос: написал макрос который разблокирует все нужные страницы с паролем, макрос назначен простой надписи в виде кнопки, нужно чтоб при нажатии на нее перед выполнением макроса, выскакивал запрос на пароль? На пароль к разблокирование страниц!
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
22.10.2015, 14:56
Как вариант (правда пароль хранится в "открытом" виде)

Visual Basic
1
2
3
If InputBox("Введите пароль", "") = "Ваш_пароль" Then
   'Здесь необходимые действия
End If
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
23.10.2015, 07:42
pashulka, вот в том то и дело, я хотел запрос взять на пароль который уже на листе!
Не разблокировать лист, но взять его значение, сравнить и проверить, а дальше по условию выполнения!

Помоги еще с классом CheckBox, не могу найти логическою последовательность действий:
1. Получаю значение ячейки, если ячейка = "К", тогда CheckBox.Value = True, если ячейка = "", тогда CheckBox.Value = False - тут все понятно, работает!... дальше,
2. Мне нужно чтобы при изменении состояния CheckBox, менялась и ячейка = "К" или = "". - по отдельности оба кода работают, все работает!...но когда вместе...
3. Когда ячейка = "К", первый код смотрит в нее и меняет состояние CheckBox.Value = True - как и должно быть!, но раз состояние изменено, второй код вносит свои изменения и стирает значение с ячейки, при этом мало того что стирает, а еще и оставляет состояние CheckBox.Value = True....
Состояние я то могу поменять там же..., но стирание мне при получении значения ячейки для задания состояния CheckBox не нужно!
Как быть?!

П.С. Объяснил как мог!=(

Добавлено через 15 часов 33 минуты
Утром решил задачку...)

Добавлено через 28 секунд
Все-таки с паролем есть идеи?
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
23.10.2015, 14:23
Вот такой примерно Табель получился, pashulka, спасибо за помощь!
Вложения
Тип файла: zip Табель.zip (570.4 Кб, 90 просмотров)
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
23.10.2015, 14:30
Цитата Сообщение от mostApi Посмотреть сообщение
Все-таки с паролем есть идеи?
Свойства, чтобы узнать уже установленный пароль нет (иначе не было бы смысла его устанавливать), а запросить пароль у пользователя можно с помощью функции InpuBox() и полученный текст Вы можете "сравнить, проверить, и дальше по условию выполнения"
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
23.10.2015, 14:57
pashulka, я понимаю, все-равно думаю можно...
Просто не все так просто как хотелось бы, пароль куда-то сохраняется в зашифрованном в виде..., просто хотелось бы обратиться туда, сравнить, и выдать результат...
Ведь если взять макросы и код VBA - все изначально задумано упрощенно для пользователя, в случае с функцией InpuBox()открыто..., в случае если нужно скрыть, нужно отдельно прикручивать функцию шифрования...
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
05.11.2015, 13:18
pashulka, из Вашего примера:

Visual Basic
1
2
3
4
5
6
7
8
        With Columns(2).Find(ComboBox1, , xlValues, xlWhole)
        If ComboBox2.ListIndex >= 15 Then
            TextBox1 = Format(.Cells(1, ComboBox2.ListIndex * 3 + 8), "hh:mm")
            TextBox2 = Format(.Cells(1, ComboBox2.ListIndex * 3 + 9), "hh:mm")
        Else
            TextBox1 = Format(.Cells(1, ComboBox2.ListIndex * 3 + 3), "hh:mm")
            TextBox2 = Format(.Cells(1, ComboBox2.ListIndex * 3 + 4), "hh:mm")
        End If
Как мне можно получить таким способом ссылки на ячейки строки (10) и столбика (2)?
Там где даты, и Работники?!
По работникам получается двигаться:
Visual Basic
1
2
3
4
5
6
7
8
9
With Columns(2).Find(ComboBox1, , xlValues, xlWhole)
    If ComboBox2.ListIndex >= 15 Then
        x = .Cells(1, 1)
        y = Day(.Cells(-3, 3))
    Else
        x = .Cells(1, 1)
        y = Day(.Cells(-3, 3))
    End If
End With
По датам никак, первая дата нормально, дальше с не понятным для меня сдвигом.

Добавлено через 26 минут
Visual Basic
1
2
3
        With Rows(10).Find(ComboBox2, , xlValues, xlWhole)
            y = Day(.Cells(ComboBox1.ListIndex, 1)
        End If
- пытаюсь так отработать, не выходит...

Добавлено через 12 минут
Visual Basic
1
y = Day(.Cells(-3, ComboBox2.ListIndex * 3 + 3))
так похоже на правду, но при изменении индекса работников идет сдвиг, мне нужно чтобы все-равно двигалось по датам...
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
05.11.2015, 14:05
Не было в моём варианте никакого If, не говоря уже об остальном.

Visual Basic
1
2
MsgBox Columns(2).Find(ComboBox1, , xlValues, xlWhole).Address
MsgBox Rows(10).Find("*/" & ComboBox2 & "/*", , xlFormulas, xlWhole).Address
или

Visual Basic
1
2
3
MsgBox Cells(14 + ComboBox1.ListIndex * 4, 1).Address
MsgBox Cells(10, 4 + (ComboBox2.ListIndex * 3) + (ComboBox2.ListIndex \ 15) * 5).Address
'MsgBox Cells(10, 4 + (ComboBox2.ListIndex * 3) + IIf(ComboBox2.ListIndex < 16, 0, 5)).Address
P.S. MsgBox, разумеется, используется только для примера.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2015, 14:05

Форма ввода в виде таблицы
Добрый день. Подскажите пожалуйста, как мне создать форму ввода данных в вите таблички. У меня в бд есть таблицы...

Excel: форма ввода данных в таблицу
Доброго времени суток! Но форуме в первый раз, так что извините, если что не так. Мне нужно быстро заполнять таблицу в экселе, через...

Форма ввода данных в связанные таблицы
Есть схема данных (см. картинки). Первая картинка - все данные, вторая - нужные для формы ввода. Надо сделать форму ввода, через которую...

Не открывается форма для редактирования
При попытке открыть для редактирования первую форму, выкидывает такая ошибка. Но при компиляции все нормально и даже ее открывает без...

Форма только для редактирования.
Возникла такая проблема, посоветуйте пожалуйста, как ее лучше решить: Есть Frameset с двумя Frame, в левом View в правом Form. При...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
49
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru