Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос форма ввода - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос форма ввода (Макросы/Sub)
Макрос форма ввода
Santtic Дата: Вторник, 21.01.2020, 15:00 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Всем добрый день.
Прошу подсказать в реализации пару проблем.
Имею макрос, который подстроил под себя, заполняет все как надо и тем самым облегчает работу в огромной таблице. Но он имеет недостаток, а именно.
в форме при вводе начала работ я ввожу половину данный, точнее все кроме "Окончания работ", там вводится окончание работ по дате, времени и тд.. так вот, когда я через какое то время, ввожу окончание работ, то макрос все стирает и вводит то что прошу естественно.
Как мне сделать что бы Макрос понимал, что я хочу дополнить например первую работу, вторую или третью, а может быть вариант,что третья будет заполнена но надо вторую дозаполнить. При этом не утрачивать данные. часто, густо названия повторяются, что бы макрос тоже не путал их.
Так же е сть проблема с цифровой информацией из Комбобоксов, они сами вводят какие то не видимые значения в ячейки ( в файле выделено красным). А так же комбобокс в колонки "BAT" так же вводит какой то формат, который формула ЕСЛИне понимает, стоит мне зайти два раза кликнут в ячейках колонок "ВАТ" как форматы стают нормальными.
Файл и код макроса прилагаю в втором сообщении, макрос не умещается)
что то макрос и во втором сообщении не поместился, прикладываю файл
К сообщению приложен файл: 8006738.xlsm (145.4 Kb)


Сообщение отредактировал Santtic - Вторник, 21.01.2020, 15:03
 
Ответить
СообщениеВсем добрый день.
Прошу подсказать в реализации пару проблем.
Имею макрос, который подстроил под себя, заполняет все как надо и тем самым облегчает работу в огромной таблице. Но он имеет недостаток, а именно.
в форме при вводе начала работ я ввожу половину данный, точнее все кроме "Окончания работ", там вводится окончание работ по дате, времени и тд.. так вот, когда я через какое то время, ввожу окончание работ, то макрос все стирает и вводит то что прошу естественно.
Как мне сделать что бы Макрос понимал, что я хочу дополнить например первую работу, вторую или третью, а может быть вариант,что третья будет заполнена но надо вторую дозаполнить. При этом не утрачивать данные. часто, густо названия повторяются, что бы макрос тоже не путал их.
Так же е сть проблема с цифровой информацией из Комбобоксов, они сами вводят какие то не видимые значения в ячейки ( в файле выделено красным). А так же комбобокс в колонки "BAT" так же вводит какой то формат, который формула ЕСЛИне понимает, стоит мне зайти два раза кликнут в ячейках колонок "ВАТ" как форматы стают нормальными.
Файл и код макроса прилагаю в втором сообщении, макрос не умещается)
что то макрос и во втором сообщении не поместился, прикладываю файл

Автор - Santtic
Дата добавления - 21.01.2020 в 15:00
gling Дата: Вторник, 21.01.2020, 23:56 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2519
Репутация: 674 ±
Замечаний: 0% ±

2010
Как мне сделать что бы Макрос понимал, что я хочу дополнить например
Здравствуйте. Сделайте на форме ещё один комбобокс для столбца А=№. Если он будет пуст, то данные из формы будут заполнять следующую за существующими данными строку. А если вы выберете какой то номер, то данные из строки с этим номером подтянутся в форму и после изменения заполнят вновь строку с этим номером на листе.
Так же е сть проблема с цифровой информацией из Комбобоксов
Умножьте в макросе значения комбобоксов на 1.


ЯД-41001506838083
 
Ответить
Сообщение
Как мне сделать что бы Макрос понимал, что я хочу дополнить например
Здравствуйте. Сделайте на форме ещё один комбобокс для столбца А=№. Если он будет пуст, то данные из формы будут заполнять следующую за существующими данными строку. А если вы выберете какой то номер, то данные из строки с этим номером подтянутся в форму и после изменения заполнят вновь строку с этим номером на листе.
Так же е сть проблема с цифровой информацией из Комбобоксов
Умножьте в макросе значения комбобоксов на 1.

Автор - gling
Дата добавления - 21.01.2020 в 23:56
Santtic Дата: Среда, 22.01.2020, 00:21 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Сделайте на форме ещё один комбобокс для столбца А=№.
я попробую завтра. У меня мало знаний, поэтому походу изучаю.
Спасибо Вам за помощь. Завтра отпишусь о проделанном)
Что то в ошибку випадает, если каждый комбобокс умножаю 1, через один вроди работет, может не так делаю?
[vba]
Код
.Cells(iFoundRng.Row, 44) = Me.ComboBox25 * 1 'ГАММА
                    .Cells(iFoundRng.Row, 45) = Me.ComboBox26 * 1
                    .Cells(iFoundRng.Row, 46) = Me.ComboBox27 * 1 'ВІБРАЦІЇ
                    .Cells(iFoundRng.Row, 47) = Me.ComboBox28 * 1
                    .Cells(iFoundRng.Row, 40) = Me.ComboBox29 * 1 'BAT
                    .Cells(iFoundRng.Row, 41) = Me.ComboBox30 * 1
                    .Cells(iFoundRng.Row, 42) = Me.ComboBox31 * 1
                    .Cells(iFoundRng.Row, 43) = Me.ComboBox32 * 1
[/vba]
если поставит знак связать то тогда работает без ошибок, но добавляет же лишнее

[vba]
Код
.Cells(iFoundRng.Row, 43) = Me.ComboBox32 &
[/vba]

Кажеться нашел почему выпадает в ошибку. у меня не всегда необходимость выбирать данные во всех комбобоксах. Когда там пусто, тогда и начинается проблема.


Сообщение отредактировал Santtic - Среда, 22.01.2020, 01:06
 
Ответить
Сообщение
Сделайте на форме ещё один комбобокс для столбца А=№.
я попробую завтра. У меня мало знаний, поэтому походу изучаю.
Спасибо Вам за помощь. Завтра отпишусь о проделанном)
Что то в ошибку випадает, если каждый комбобокс умножаю 1, через один вроди работет, может не так делаю?
[vba]
Код
.Cells(iFoundRng.Row, 44) = Me.ComboBox25 * 1 'ГАММА
                    .Cells(iFoundRng.Row, 45) = Me.ComboBox26 * 1
                    .Cells(iFoundRng.Row, 46) = Me.ComboBox27 * 1 'ВІБРАЦІЇ
                    .Cells(iFoundRng.Row, 47) = Me.ComboBox28 * 1
                    .Cells(iFoundRng.Row, 40) = Me.ComboBox29 * 1 'BAT
                    .Cells(iFoundRng.Row, 41) = Me.ComboBox30 * 1
                    .Cells(iFoundRng.Row, 42) = Me.ComboBox31 * 1
                    .Cells(iFoundRng.Row, 43) = Me.ComboBox32 * 1
[/vba]
если поставит знак связать то тогда работает без ошибок, но добавляет же лишнее

[vba]
Код
.Cells(iFoundRng.Row, 43) = Me.ComboBox32 &
[/vba]

Кажеться нашел почему выпадает в ошибку. у меня не всегда необходимость выбирать данные во всех комбобоксах. Когда там пусто, тогда и начинается проблема.

Автор - Santtic
Дата добавления - 22.01.2020 в 00:21
Santtic Дата: Среда, 22.01.2020, 13:19 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Сделайте на форме ещё один комбобокс для столбца А=№.

Сделал как вы посоветовали, все ок. работало и перестало
Можно еще один вопрос реализовать? Как бы мне сделать так, что бы при добавлении информации в строку/ячейку находящаяяся ранее информация не удалялась.
Например: мне нужно изменить данные ячейки Н23 то вся информация в строке не должна удаляться. В данный момент она полностью удаляеться из всех ячеек строки при добавлении/изменении какой либо ячейки.


Сообщение отредактировал Santtic - Среда, 22.01.2020, 13:44
 
Ответить
Сообщение
Сделайте на форме ещё один комбобокс для столбца А=№.

Сделал как вы посоветовали, все ок. работало и перестало
Можно еще один вопрос реализовать? Как бы мне сделать так, что бы при добавлении информации в строку/ячейку находящаяяся ранее информация не удалялась.
Например: мне нужно изменить данные ячейки Н23 то вся информация в строке не должна удаляться. В данный момент она полностью удаляеться из всех ячеек строки при добавлении/изменении какой либо ячейки.

Автор - Santtic
Дата добавления - 22.01.2020 в 13:19
Santtic Дата: Среда, 22.01.2020, 21:33 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Сделайте на форме ещё один комбобокс для столбца А=№

Подскажите мне так его прописать [vba]
Код
Private Sub ComboBox35_Change()
ComboBox35.List = Range("A23:A78").Value
End Sub
[/vba]
как не прописывал все равно не работает. Как оно днем заработало не пойму. После сохранения перестало. Не изменяет выбранный номер, а добавляет новую строку
прописывал и так
[vba]
Код
ComboBox35.RowSource = "Загальний!A23:A50"
[/vba] результат отрицательный


Сообщение отредактировал Santtic - Среда, 22.01.2020, 21:57
 
Ответить
Сообщение
Сделайте на форме ещё один комбобокс для столбца А=№

Подскажите мне так его прописать [vba]
Код
Private Sub ComboBox35_Change()
ComboBox35.List = Range("A23:A78").Value
End Sub
[/vba]
как не прописывал все равно не работает. Как оно днем заработало не пойму. После сохранения перестало. Не изменяет выбранный номер, а добавляет новую строку
прописывал и так
[vba]
Код
ComboBox35.RowSource = "Загальний!A23:A50"
[/vba] результат отрицательный

Автор - Santtic
Дата добавления - 22.01.2020 в 21:33
parovoznik Дата: Среда, 22.01.2020, 22:09 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Посмотрите добавил комбик на форму и он работает. Надо подгружать при инициализации формы.
К сообщению приложен файл: 8006738.rar (77.8 Kb)
 
Ответить
СообщениеПосмотрите добавил комбик на форму и он работает. Надо подгружать при инициализации формы.

Автор - parovoznik
Дата добавления - 22.01.2020 в 22:09
Santtic Дата: Среда, 22.01.2020, 22:26 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Посмотрите добавил комбик на форму и он работает. Надо подгружать при инициализации формы.

Спасибо за помощь, у меня так же работает, может плохо объяснил что мне надо или не правильно выразился. Попробую еще раз:
на данный момент пытаюсь реализовать условие, что при работе иногда надо изменит первую, вторую или десятую работу в разной последовательности при этом хочется что бы данные в строке работы менялись только в определенных ячейках. Сейчас же если я меняю то нужно прописать полностью все названия...и изменить нужную ячейку. В противном случае все данные удаляются, а остается только данные в корректировочных ячейках.
 
Ответить
Сообщение
Посмотрите добавил комбик на форму и он работает. Надо подгружать при инициализации формы.

Спасибо за помощь, у меня так же работает, может плохо объяснил что мне надо или не правильно выразился. Попробую еще раз:
на данный момент пытаюсь реализовать условие, что при работе иногда надо изменит первую, вторую или десятую работу в разной последовательности при этом хочется что бы данные в строке работы менялись только в определенных ячейках. Сейчас же если я меняю то нужно прописать полностью все названия...и изменить нужную ячейку. В противном случае все данные удаляются, а остается только данные в корректировочных ячейках.

Автор - Santtic
Дата добавления - 22.01.2020 в 22:26
parovoznik Дата: Среда, 22.01.2020, 22:32 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Santtic, посмотрите файлик может подойдет
К сообщению приложен файл: ___.xlsm (20.3 Kb)
 
Ответить
СообщениеSanttic, посмотрите файлик может подойдет

Автор - parovoznik
Дата добавления - 22.01.2020 в 22:32
Santtic Дата: Среда, 22.01.2020, 22:40 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
посмотрите файлик может подойдет

Супер, то что доктор прописал. Вы мой спаситель. Попробую его доработать еще немного под себя. Принцип тот что хочу, попробую его с комбобоксом объединить, так как у меня уникальные названия, из них тянуться все расчеты вплоть до амортизации оборудования с выставлением счетов.
Коллеги, тема еще не закрыта, завтра проработаю и отпишу что вышло. Мне важны любые советы. Лучше раз помучатся и выучить самому.
Спасибо всем.


Сообщение отредактировал Santtic - Среда, 22.01.2020, 22:54
 
Ответить
Сообщение
посмотрите файлик может подойдет

Супер, то что доктор прописал. Вы мой спаситель. Попробую его доработать еще немного под себя. Принцип тот что хочу, попробую его с комбобоксом объединить, так как у меня уникальные названия, из них тянуться все расчеты вплоть до амортизации оборудования с выставлением счетов.
Коллеги, тема еще не закрыта, завтра проработаю и отпишу что вышло. Мне важны любые советы. Лучше раз помучатся и выучить самому.
Спасибо всем.

Автор - Santtic
Дата добавления - 22.01.2020 в 22:40
Santtic Дата: Четверг, 23.01.2020, 23:40 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Так ничего и не вышло у меня. Может все же кто подскажет, как можно в моем варианте реализовать мое задуманное ...
на данный момент пытаюсь реализовать условие, что при работе иногда надо изменит первую, вторую или десятую работу в разной последовательности при этом хочется что бы данные в строке работы менялись только в определенных ячейках. Сейчас же если я меняю то нужно прописать полностью все названия...и изменить нужную ячейку. В противном случае все данные удаляются, а остается только данные в корректировочных ячейках.

как прописать это я не могу понять.
Сделайте на форме ещё один комбобокс для столбца А=№.

Буду признателен за помощь.
 
Ответить
СообщениеТак ничего и не вышло у меня. Может все же кто подскажет, как можно в моем варианте реализовать мое задуманное ...
на данный момент пытаюсь реализовать условие, что при работе иногда надо изменит первую, вторую или десятую работу в разной последовательности при этом хочется что бы данные в строке работы менялись только в определенных ячейках. Сейчас же если я меняю то нужно прописать полностью все названия...и изменить нужную ячейку. В противном случае все данные удаляются, а остается только данные в корректировочных ячейках.

как прописать это я не могу понять.
Сделайте на форме ещё один комбобокс для столбца А=№.

Буду признателен за помощь.

Автор - Santtic
Дата добавления - 23.01.2020 в 23:40
Pelena Дата: Пятница, 24.01.2020, 09:12 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
По способу parovoznik'а, становитесь в нужную строку, открываете форму, в ней отображаются данные этой строки. Сделала для первых текст- и комбобоксов, дальше по аналогии допишите в макросе инициализации. Что-то меняете -- Добавить
К сообщению приложен файл: 8006738_1.xlsb (63.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПо способу parovoznik'а, становитесь в нужную строку, открываете форму, в ней отображаются данные этой строки. Сделала для первых текст- и комбобоксов, дальше по аналогии допишите в макросе инициализации. Что-то меняете -- Добавить

Автор - Pelena
Дата добавления - 24.01.2020 в 09:12
Santtic Дата: Пятница, 24.01.2020, 10:37 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Сделала для первых текст- и комбобоксов

Спасибо Вам огромное, решение колоссальное, как всегда все изумительно, очень удобное, супер,благодарен вам) С помощью форума и екселя, могу делать работу за двух, так как учет сумасшедший + сервис + отправки и все сам)
Благодарю вас)
Подскажите пожалуйста, этот код объявляет ячейки переменными, правильно ли понял?
[vba]
Код
RW = ActiveCell.Row
    With Me
        .TextBox1 = Cells(RW, 2)
        .TextBox2 = Cells(RW, 5)
        .ComboBox1 = Cells(RW, 3)
        .ComboBox2 = Cells(RW, 4)
[/vba]
 
Ответить
Сообщение
Сделала для первых текст- и комбобоксов

Спасибо Вам огромное, решение колоссальное, как всегда все изумительно, очень удобное, супер,благодарен вам) С помощью форума и екселя, могу делать работу за двух, так как учет сумасшедший + сервис + отправки и все сам)
Благодарю вас)
Подскажите пожалуйста, этот код объявляет ячейки переменными, правильно ли понял?
[vba]
Код
RW = ActiveCell.Row
    With Me
        .TextBox1 = Cells(RW, 2)
        .TextBox2 = Cells(RW, 5)
        .ComboBox1 = Cells(RW, 3)
        .ComboBox2 = Cells(RW, 4)
[/vba]

Автор - Santtic
Дата добавления - 24.01.2020 в 10:37
Pelena Дата: Пятница, 24.01.2020, 10:58 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Этот код помещает значения из ячеек листа на форму при открытии формы


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЭтот код помещает значения из ячеек листа на форму при открытии формы

Автор - Pelena
Дата добавления - 24.01.2020 в 10:58
Santtic Дата: Пятница, 24.01.2020, 11:20 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
помещает значения из ячеек листа на форму при открытии формы

Ага, понял.
[vba]
Код
Option Explicit
Dim RW As Long
[/vba]
А этот не ограничивает поле действия или количество знаков?)
 
Ответить
Сообщение
помещает значения из ячеек листа на форму при открытии формы

Ага, понял.
[vba]
Код
Option Explicit
Dim RW As Long
[/vba]
А этот не ограничивает поле действия или количество знаков?)

Автор - Santtic
Дата добавления - 24.01.2020 в 11:20
Santtic Дата: Вторник, 28.01.2020, 00:14 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Кажется нашел почему выпадает в ошибку.

[vba]
Код
.Cells(iFoundRng.Row, 45) = Me.ComboBox26.text
[/vba]
нужно было просто указать .Техт или .Value и все ошибки с форматами пропали.
 
Ответить
Сообщение
Кажется нашел почему выпадает в ошибку.

[vba]
Код
.Cells(iFoundRng.Row, 45) = Me.ComboBox26.text
[/vba]
нужно было просто указать .Техт или .Value и все ошибки с форматами пропали.

Автор - Santtic
Дата добавления - 28.01.2020 в 00:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос форма ввода (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!