Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений - VBA

Узнай цену своей работы

Формулировка задачи:

Люди добрые, приветствую вас!))) Мне нужна ваша помощь в решении одной проблемки! С макросами столкнулся первый раз и наверно единственный. Для работы нужно создать файл, для ведения причин поломок насосов и в какие годы был больший процент поломок. Файл примерно составить получилось. Вот только не могу заставить макрос вписывать определенные значения по критериям в нужные ячейки на определенных листах в таблицы. Есть файл "Статистика", в нем уже начал делать макрос, но основной файл, где необходимо организовать работу макроса, называется "статистика малыш()", в нем есть кнопка "заполнить", она находится на 1-ом листе. При заполнении сотрудником, он выбирает из выпадающего списка. combobox1 - год изготовления, combobox2 - месяц изготовления, combobox3 - причина поломки. Суть этого макроса: в зависимости от выбранных строк заносить информацию таблицу в виде цифры введенную в (TextBox1) соответствующую ячейку. Пример: Есть на заводе слесарь, он ремонтирует насосы. После каждого дня он заполняет таблицу с данными (год выпуска, месяц выпуска и причина поломки насоса). Чтобы упростить заполнение файла сотруднику ОТК, я пытаюсь сделать макрос (в файле "статистика малыш ()", реализована кнопка "заполнить" и основное окно для внесения данных), но не могу настроить макрос чтобы он вносил информацию в определенную ячейку (хочу сделать, чтобы макрос в ячейке просто суммировал данные введенные в TextBox1). Допустим сегодня слесарь сделал два насоса изготовленные 01.2016 - причина поломки "Сгорел магнит (нет соударения)", пять насосов изготовленные 05.2016 - причина поломки "Обрыв винтов". При заполнении таблицы на соответствующем листе "2016" (лист называется 2016), в столбце месяц и в строке причина поломки - ставиться цифра равная количеству отремонтированных насосов (2 насоса изг 01.2016 - 2 и 5 насосов изг 05.2016 - 5). Завтра сотрудник отк опять вносит отремонтированные насосы. 1 насос изг 01,2016 и 3 насоса 05.2016. В таблице в ячейках ставиться уже за место 2 насосов, 3 насоса 01.2016 и 8 насосов 05.2016. Прилаживаю файлы с таблицей и макросом, плюс скрины.

Решение задачи: «Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений»

textual
Листинг программы
Private Sub CommandButton1_Click()
Dim FR As Range, cl%, rw%
With Sheets(ComboBox1.Text)
Set FR = .Range("A1:CC1000").Find(ComboBox2.Text)
If FR Is Nothing Then MsgBox "месяц не найден": Exit Sub
cl = FR.Column
Set FR = .Range("A1:CC1000").Find(ComboBox3.Text)
If FR Is Nothing Then MsgBox "причина поломки не найдена": Exit Sub
rw = FR.Row
.Cells(rw, cl) = .Cells(rw, cl) + TextBox1.Value
End With
   Unload UserForm1
   MsgBox "Информация добавлена!", vbInformation, "База"
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы