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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2010, 16:22   #1
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию Замена значений в определённой строке таблицы

Доброго всем времени суток.
Дорогие форумчане! Вы меня уже не раз выручали.
Появилась ещё одна интересная задачка, на которую я сам не могу найти решения.
Помогите, пожалуйста.

Лист «форма» позволяет видеть значения из таблицы (Лист3) по номеру наряда/строки.
Можно ли сделать так, чтобы была возможность изменить некоторые значения из формы, добавить дату «D4», изменить количество «C18» и сохранить (или заменить) всё с изменениями в ту же строку таблицы?

Смотрите пример:
Вложения
Тип файла: zip forma.zip (5.2 Кб, 9 просмотров)
oleg_sh вне форума Ответить с цитированием
Старый 14.10.2010, 16:31   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Это надо делать макросом.
А раз уж есть такая задача, Вам надо делать полноценную именно форму, где сможете просматривать и редактировать данные.
Работа нудная, не возмусь. Но примеры на форуме/мах есть.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.10.2010, 16:57   #3
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Это надо делать макросом.
А раз уж есть такая задача, Вам надо делать полноценную именно форму, где сможете просматривать и редактировать данные.
Работа нудная, не возмусь. Но примеры на форуме/мах есть.
Согласен, без макроса не обойтись.
Что такое форум/мах? Это другой форум?
Искал подобное решение на нашем форуме, но ничего не нашёл
oleg_sh вне форума Ответить с цитированием
Старый 14.10.2010, 17:05   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Что такое форум/мах? Это другой форум?
Ну в общем я так и думал - если не здесь, то там
Например как в вложении
Ну это конечно Вам слишком будет, но поменьше не нашёл.
Вложения
Тип файла: zip Database_Big_post_161165.zip (100.0 Кб, 16 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.10.2010, 17:17   #5
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Можно воткнуть две кнопки на лист и на них макросы, типа такого:
Код:
Sub ПолучитьДанные()
Dim poz As Range
Set poz = Sheets("Лист3").Range("A2:A30000").Find(What:=[d2].Value, Lookat:=xlWhole)
[c7].Value = poz.Offset(, 1).Value   'код
[c12].Value = poz.Offset(, 2).Value 'марка авто
[e7].Value = poz.Offset(, 3).Value 'код1
'и т.д.
End Sub

Sub ПеренестиДанные()
Dim poz As Range
Set poz = Sheets("Лист3").Range("A2:A30000").Find(What:=[d2].Value, Lookat:=xlWhole)
poz.Offset(, 1).Value = [c7].Value 'код
poz.Offset(, 2).Value = [c12].Value 'марка авто
poz.Offset(, 3).Value = [e7].Value 'код1
'и т.д.
End Sub
nilem вне форума Ответить с цитированием
Старый 14.10.2010, 17:25   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Точно, а можно этим кодом в форме текстбоксы заполнить, и по кнопке "Сохранить" записать изменения в базу.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.10.2010, 18:07   #7
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Вот так интереснее
Код:
Sub ПолучитьДанные()
Dim poz As Range, rng As Range, x, i As Byte
Set poz = Sheets("Лист3").Range("A2:A30000").Find(What:=[d2].Value, Lookat:=xlWhole)
Set rng = Range("C4:G24")
x = Array(16, 41, 18, 56, 20, 71, 86, 101, 2)
For i = 0 To 8
    rng.Cells(x(i)) = poz.Offset(, i + 1).Value
Next i
End Sub
nilem вне форума Ответить с цитированием
Старый 14.10.2010, 18:30   #8
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Точно, а можно этим кодом в форме текстбоксы заполнить, и по кнопке "Сохранить" записать изменения в базу.
Спасибо всем, кто принял участие в обсуждении!!!!
Ваш вариант с форум/мах очень крутой.

nilem - Вам отдельное спасибо! Всё получилось.
Второй вариант то же попробую.

Вот что получилось, может ещё кому пригодится:
Вложения
Тип файла: zip forma2.zip (12.9 Кб, 16 просмотров)
oleg_sh вне форума Ответить с цитированием
Старый 14.10.2010, 19:15   #9
oleg_sh
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 61
По умолчанию

nilem

А можно ещё добавить 2 макроса "следующий" и "предыдущий", чтобы в поле "D4" менялся порядковый номер?
Спасибо

Последний раз редактировалось oleg_sh; 14.10.2010 в 19:18.
oleg_sh вне форума Ответить с цитированием
Старый 14.10.2010, 19:37   #10
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Наверное, D2 имеется ввиду - просто список вставляем.
Если все-таки D4, то можно календарь прикрутить, но, имхо, быстрее вручную дату записать.
Вложения
Тип файла: zip forma2.zip (22.2 Кб, 10 просмотров)
nilem вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Firebird Получение имён таблиц и список полей определённой таблицы Alexei91 БД в Delphi 5 02.08.2010 14:00
Замена слов в строке lpofigistl Общие вопросы C/C++ 1 16.05.2010 20:38
Замена одинаковых значений Ярик 555 Microsoft Office Excel 6 09.02.2010 04:50
замена символов в строке euhenia Помощь студентам 3 30.11.2009 20:59
замена элементов в строке _llllllllll_ Помощь студентам 4 18.10.2009 10:01