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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данных их формы ввода в определённую ячейку таблицы. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных их формы ввода в определённую ячейку таблицы. (Макросы/Sub)
Перенос данных их формы ввода в определённую ячейку таблицы.
Marr Дата: Четверг, 16.04.2020, 01:10 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени!
Нужна помощь по форме ввода данных.
Что у нас имеется; я сделал простенькую таблицу в которой вычисляются некоторые значении при вводе определённых данных. Т.е. вводим два параметра в таблице и остальные параметры подсчитываются по ним.
Хочу сделать ввод этих двух данных в виде диалога. Т.е. при открытии файла сразу появляется диалоговое окно и просит ввести сначала одно значение, потом жмём "ОК", далее просит ввести второе значение, далее жмём "ОК" и появляется таблица с уже заполнеными остальными значениями.

Получается что эти два вносимых значения должны с формы ввода направляться именно в определённые ячейки.
Так же, эта таблица заполняется один раз каждый день, т.е. при ежедневном открытии данные с формы ввода направлялись в соответствующую реальной дате ячейку.

Очень жду вашей помощи и советов!

я создал некоторый пример диалога с пользователем, без ввода данных. Как вывести данные из формы в определённую ячейку-не могу разобраться. На орфографию внимание не обращайте, важна суть. в этом коде при октрытии книги сразу же появляется диалоговое окно и просит ввести имя, после ввода имени появляется окно приветствия. Вот нужно чтобы просило ввести не имя, а число и после нажатия на "ОК" это число автоматически переносилось в определённую ячейку и открывалось следующее похожее диалоговое окно и просило ввести следующее число и так же после нажатия на "ОК" число переносилось в другую определённую ячейку. после этого таблица подсчитываю все значения.
Хочу разобраться и научиться как это делается
Саму таблицу прикрепить сюда не могу, т.к. она на рабочем компьютере и доступа к выводу данных у меня нет ( могу только править). В целом это простенькая таблица: Столбцы-определённые параметры, строки- соответствуют каждому дню по датам и заполняются ежедневно. Заполняется только два значения остальные подсчитываются автоматически по простеньким формулам. Сама таблица очень простая, но хочется сделать работу с ней более интересней, чтобы данные вносить не в сами ячейки, а в окно диалога с небольшим описанием действий (например, внесите такое то значение которое надо посмотреть там то и т.д.)

[vba]
Код
Private Sub Workbook_Open()

Dim UserName As String
Dim FirstSpace As Integer
Do Until UserName <> ""
UserName = InputBox("??????? ??? ? ???????: ", _
"Это форма учёта реагента. Для начала работы введите ваше имя")
Loop
FirstSpace = InStr(UserName, " ")
If FirstSpace <> 0 Then
UserName = Left(UserName, FirstSpace - 1)
End If
MsgBox "Привет! " & UserName & "Необходимо внести значение делений на насосе и тонны за сутки"

End Sub
[/vba]


Сообщение отредактировал Marr - Четверг, 16.04.2020, 01:19
 
Ответить
СообщениеДоброго времени!
Нужна помощь по форме ввода данных.
Что у нас имеется; я сделал простенькую таблицу в которой вычисляются некоторые значении при вводе определённых данных. Т.е. вводим два параметра в таблице и остальные параметры подсчитываются по ним.
Хочу сделать ввод этих двух данных в виде диалога. Т.е. при открытии файла сразу появляется диалоговое окно и просит ввести сначала одно значение, потом жмём "ОК", далее просит ввести второе значение, далее жмём "ОК" и появляется таблица с уже заполнеными остальными значениями.

Получается что эти два вносимых значения должны с формы ввода направляться именно в определённые ячейки.
Так же, эта таблица заполняется один раз каждый день, т.е. при ежедневном открытии данные с формы ввода направлялись в соответствующую реальной дате ячейку.

Очень жду вашей помощи и советов!

я создал некоторый пример диалога с пользователем, без ввода данных. Как вывести данные из формы в определённую ячейку-не могу разобраться. На орфографию внимание не обращайте, важна суть. в этом коде при октрытии книги сразу же появляется диалоговое окно и просит ввести имя, после ввода имени появляется окно приветствия. Вот нужно чтобы просило ввести не имя, а число и после нажатия на "ОК" это число автоматически переносилось в определённую ячейку и открывалось следующее похожее диалоговое окно и просило ввести следующее число и так же после нажатия на "ОК" число переносилось в другую определённую ячейку. после этого таблица подсчитываю все значения.
Хочу разобраться и научиться как это делается
Саму таблицу прикрепить сюда не могу, т.к. она на рабочем компьютере и доступа к выводу данных у меня нет ( могу только править). В целом это простенькая таблица: Столбцы-определённые параметры, строки- соответствуют каждому дню по датам и заполняются ежедневно. Заполняется только два значения остальные подсчитываются автоматически по простеньким формулам. Сама таблица очень простая, но хочется сделать работу с ней более интересней, чтобы данные вносить не в сами ячейки, а в окно диалога с небольшим описанием действий (например, внесите такое то значение которое надо посмотреть там то и т.д.)

[vba]
Код
Private Sub Workbook_Open()

Dim UserName As String
Dim FirstSpace As Integer
Do Until UserName <> ""
UserName = InputBox("??????? ??? ? ???????: ", _
"Это форма учёта реагента. Для начала работы введите ваше имя")
Loop
FirstSpace = InStr(UserName, " ")
If FirstSpace <> 0 Then
UserName = Left(UserName, FirstSpace - 1)
End If
MsgBox "Привет! " & UserName & "Необходимо внести значение делений на насосе и тонны за сутки"

End Sub
[/vba]

Автор - Marr
Дата добавления - 16.04.2020 в 01:10
_Boroda_ Дата: Четверг, 16.04.2020, 01:54 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15979
Репутация: 6209 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Без файла очень неудобно.
Примерно так можно
[vba]
Код
Private Sub Workbook_Open()
    Application.ScreenUpdating = 0
    Application.Calculation = 3
    r0_ = 2
    nc_ = Cells(r0_, Columns.Count).End(1).Column - 1
    ar = Cells(r0_, 2).Resize(, nc_).Value
    For i = 2 To nc_
        If ar(1, i) = Date Then
            c_ = i + 1
        End If
    Next i
    If c_ = 0 Then
        MsgBox "В строке 2 нет текущей даты. Заполняйте сами как хотите."
        Exit Sub
    End If
    Do Until z_ <> ""
    z_ = InputBox("Введите параметр 1", "Здрасьти")
    Loop
    r_ = 3
    Cells(r_, c_) = z_
    Do Until z1_ <> ""
    z1_ = InputBox("Введите параметр 2", "И снова здрасьти")
    Loop
    r_ = 4
    Cells(r_, c_) = z1_
    Application.Calculation = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 75785.xlsm(17.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеБез файла очень неудобно.
Примерно так можно
[vba]
Код
Private Sub Workbook_Open()
    Application.ScreenUpdating = 0
    Application.Calculation = 3
    r0_ = 2
    nc_ = Cells(r0_, Columns.Count).End(1).Column - 1
    ar = Cells(r0_, 2).Resize(, nc_).Value
    For i = 2 To nc_
        If ar(1, i) = Date Then
            c_ = i + 1
        End If
    Next i
    If c_ = 0 Then
        MsgBox "В строке 2 нет текущей даты. Заполняйте сами как хотите."
        Exit Sub
    End If
    Do Until z_ <> ""
    z_ = InputBox("Введите параметр 1", "Здрасьти")
    Loop
    r_ = 3
    Cells(r_, c_) = z_
    Do Until z1_ <> ""
    z1_ = InputBox("Введите параметр 2", "И снова здрасьти")
    Loop
    r_ = 4
    Cells(r_, c_) = z1_
    Application.Calculation = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 16.04.2020 в 01:54
Marr Дата: Четверг, 16.04.2020, 22:04 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Без файла очень неудобно.
Примерно так можно

Здравствуйте. Немного поменял ваш файл. У меня вообщем выглядит примерно так.
Но почему то теперь выдаёт что "в строке 2 нет текущей даты"- то что вы запрограммировали. Можно уточнить как это работает и от чего?

По самому макросу- спасибо!- это примерно то что я хотел. В идеале надо чтобы не набирать значение в окне, а чтобы оно уже было прикреплено к кнопке; т.е. будет четыре кнопки. кнопка 1- это значение 1, кнопка 2-это значение 2, кнопка 3 -это значение 4, и четвёртая кнопка это "другое"- в этом случае уже нужный параметр набирается вводом в окне формы. Для создания таких кнопок функцию InputBox надо как то переписывать?

Вот только как теперь отладить чтобы работало после моей корректировки? И так не разобрался где в коде указывается конкретная ячейка куда вставляется значение набранное в форме? Например, если необходимая ячейка будет находится не в начале таблицы, а скажем где то в середине.
К сообщению приложен файл: 6249388.xlsm(18.0 Kb)


Сообщение отредактировал Marr - Четверг, 16.04.2020, 22:13
 
Ответить
Сообщение
Без файла очень неудобно.
Примерно так можно

Здравствуйте. Немного поменял ваш файл. У меня вообщем выглядит примерно так.
Но почему то теперь выдаёт что "в строке 2 нет текущей даты"- то что вы запрограммировали. Можно уточнить как это работает и от чего?

По самому макросу- спасибо!- это примерно то что я хотел. В идеале надо чтобы не набирать значение в окне, а чтобы оно уже было прикреплено к кнопке; т.е. будет четыре кнопки. кнопка 1- это значение 1, кнопка 2-это значение 2, кнопка 3 -это значение 4, и четвёртая кнопка это "другое"- в этом случае уже нужный параметр набирается вводом в окне формы. Для создания таких кнопок функцию InputBox надо как то переписывать?

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

Автор - Marr
Дата добавления - 16.04.2020 в 22:04
_Boroda_ Дата: Четверг, 16.04.2020, 22:47 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15979
Репутация: 6209 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Все просто - я сделал даты и параметры наоборот, по столбцам и строкам. Невнимательно прочитал Ваш первый пост. Вот именно поэтому и нужно прикладывать файл :D

Если у Вас вставляются константы 1,2 или 4, то InputBox-то Вам зачем? Вам нужно только определить строку с текущей датой. Для 1 сделал Вам кнопку (если правильно понял про 4 кнопки)

Номер столбца - сделал комменты к макросу в файле
К сообщению приложен файл: 6249388_1.xlsm(21.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВсе просто - я сделал даты и параметры наоборот, по столбцам и строкам. Невнимательно прочитал Ваш первый пост. Вот именно поэтому и нужно прикладывать файл :D

Если у Вас вставляются константы 1,2 или 4, то InputBox-то Вам зачем? Вам нужно только определить строку с текущей датой. Для 1 сделал Вам кнопку (если правильно понял про 4 кнопки)

Номер столбца - сделал комменты к макросу в файле

Автор - _Boroda_
Дата добавления - 16.04.2020 в 22:47
Marr Дата: Четверг, 16.04.2020, 23:16 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Немного не то)
Ваш первый пример был как раз как надо. Необходимо чтобы при открытии книги появилось окно с 4 кнопками.
Значения 1,2,4 это не константы. Это наиболее часто используемые значения параметра ( из них вносится какой то один), поэтому нужны для них кнопки. Т.е если надо внести значение "1" то нажимается кнопка "1" , если 2 то 2, если 4 то кнопка "3", если значение другое (7, 8, 9 и т.д.) то нажимаем четвёртую кнопку " другое" и переходим в следующее окно где уже вбиваем нужное значение.
 
Ответить
Сообщение_Boroda_, Немного не то)
Ваш первый пример был как раз как надо. Необходимо чтобы при открытии книги появилось окно с 4 кнопками.
Значения 1,2,4 это не константы. Это наиболее часто используемые значения параметра ( из них вносится какой то один), поэтому нужны для них кнопки. Т.е если надо внести значение "1" то нажимается кнопка "1" , если 2 то 2, если 4 то кнопка "3", если значение другое (7, 8, 9 и т.д.) то нажимаем четвёртую кнопку " другое" и переходим в следующее окно где уже вбиваем нужное значение.

Автор - Marr
Дата добавления - 16.04.2020 в 23:16
_Boroda_ Дата: Четверг, 16.04.2020, 23:32 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15979
Репутация: 6209 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Тогда делаете форму с этими кнопками, на каждую из которых вешаете по макросу. Они есть в моем предыдущем файле.
Открытие формы вешаете на событие Workbook_Open


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда делаете форму с этими кнопками, на каждую из которых вешаете по макросу. Они есть в моем предыдущем файле.
Открытие формы вешаете на событие Workbook_Open

Автор - _Boroda_
Дата добавления - 16.04.2020 в 23:32
Marr Дата: Суббота, 18.04.2020, 22:00 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день. Сделал кое как некоторое подобие))

Но остался вопрос. Как при следующем открытии книги на следующий день изменить адрес внесения данных? ( т.е. надо уже в соответствующую дату)

С файлами в предыдущем посте, где адрес внесения связан с текущей датой, не смог разобраться, потому что там немого иначе вводятся данные.
К сообщению приложен файл: 1002071.xlsm(24.1 Kb)


Сообщение отредактировал Marr - Воскресенье, 19.04.2020, 21:32
 
Ответить
СообщениеДобрый день. Сделал кое как некоторое подобие))

Но остался вопрос. Как при следующем открытии книги на следующий день изменить адрес внесения данных? ( т.е. надо уже в соответствующую дату)

С файлами в предыдущем посте, где адрес внесения связан с текущей датой, не смог разобраться, потому что там немого иначе вводятся данные.

Автор - Marr
Дата добавления - 18.04.2020 в 22:00
_Boroda_ Дата: Воскресенье, 19.04.2020, 00:15 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15979
Репутация: 6209 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Как при следующем открытии книги на следующий день изменить адрес внесения данных? ( т.е. надо уже в соответствующую дату)

Вот так
[vba]
Код
    nr_ = Cells(Rows.Count, 1).End(3).Row - 1 'кол-во строк
    ar = Cells(2, 1).Resize(nr_).Value 'все из первого столбца (даты) суем в массив
    For i = 2 To nr_ 'цикл по массиву
        If ar(i, 1) = Date Then 'если i-й элемент массива равен текущей дате (Date)
            r_ = i + 1 'присваиваем переменной r значение i+1 - это и будет номер нужной строки
            Exit For 'выход из цикла
        End If '
    Next i
[/vba]
Это есть в макросах из сообщений 4 и 2 (там по столбцам, а не по строкам, но принципиальной разницы в этом нет)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Как при следующем открытии книги на следующий день изменить адрес внесения данных? ( т.е. надо уже в соответствующую дату)

Вот так
[vba]
Код
    nr_ = Cells(Rows.Count, 1).End(3).Row - 1 'кол-во строк
    ar = Cells(2, 1).Resize(nr_).Value 'все из первого столбца (даты) суем в массив
    For i = 2 To nr_ 'цикл по массиву
        If ar(i, 1) = Date Then 'если i-й элемент массива равен текущей дате (Date)
            r_ = i + 1 'присваиваем переменной r значение i+1 - это и будет номер нужной строки
            Exit For 'выход из цикла
        End If '
    Next i
[/vba]
Это есть в макросах из сообщений 4 и 2 (там по столбцам, а не по строкам, но принципиальной разницы в этом нет)

Автор - _Boroda_
Дата добавления - 19.04.2020 в 00:15
Marr Дата: Воскресенье, 19.04.2020, 21:32 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_,
Это будет работать так? ;

Сегодня, 19 апреля, я открываю таблицу-заполняю-сохраняю-закрываю. Всё, сегодня больше не пользуюсь.

Завтра, 20 апреля, я открывают таблицу- заполняю-данные вносятся уже в строку соответствующую завтрашней дате? (20.04) Обязательно предыдущая дата должна быть заполнена?-что то не работает (заполняет за 18,04 хотя сегодня 19,04)

Правильно понимаю, этот код, выше, вставлять в Лист1?


Сообщение отредактировал Marr - Воскресенье, 19.04.2020, 21:40
 
Ответить
Сообщение_Boroda_,
Это будет работать так? ;

Сегодня, 19 апреля, я открываю таблицу-заполняю-сохраняю-закрываю. Всё, сегодня больше не пользуюсь.

Завтра, 20 апреля, я открывают таблицу- заполняю-данные вносятся уже в строку соответствующую завтрашней дате? (20.04) Обязательно предыдущая дата должна быть заполнена?-что то не работает (заполняет за 18,04 хотя сегодня 19,04)

Правильно понимаю, этот код, выше, вставлять в Лист1?

Автор - Marr
Дата добавления - 19.04.2020 в 21:32
Marr Дата: Четверг, 07.05.2020, 21:44 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте!

Сложновато разобраться. Немного упрощу вопрос.

Итак, имеется первый столбец с датами. Имеется textbox.
Необходимо чтобы при заполнении textbox эти же значения попадали во второй столбец в сегодняшнею дату.
Пожалуйста подскажите методику такой задачи
 
Ответить
СообщениеЗдравствуйте!

Сложновато разобраться. Немного упрощу вопрос.

Итак, имеется первый столбец с датами. Имеется textbox.
Необходимо чтобы при заполнении textbox эти же значения попадали во второй столбец в сегодняшнею дату.
Пожалуйста подскажите методику такой задачи

Автор - Marr
Дата добавления - 07.05.2020 в 21:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных их формы ввода в определённую ячейку таблицы. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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