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

Вход

Регистрация

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

 

= Мир MS Excel/Создание строки в умной таблице при нажатии на картинку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание строки в умной таблице при нажатии на картинку (Макросы/Sub)
Создание строки в умной таблице при нажатии на картинку
scryde2015 Дата: Среда, 01.02.2023, 12:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 40% ±

Excel 2016
Здравствуйте.
Помогите, пожалуйста, как сделать, чтобы при нажатии на картинку добавлялась строка в умной таблице, и в первый столбец (№) подставлялась цифра первого столбца (№) из другого листа (прайс), в зависимости от нажатой картинки. При нажатии нескольких раз на одну картинку - суммировать количество в строке, если таковая уже имеется
К сообщению приложен файл: 1145218.xlsx (162.8 Kb)
 
Ответить
СообщениеЗдравствуйте.
Помогите, пожалуйста, как сделать, чтобы при нажатии на картинку добавлялась строка в умной таблице, и в первый столбец (№) подставлялась цифра первого столбца (№) из другого листа (прайс), в зависимости от нажатой картинки. При нажатии нескольких раз на одну картинку - суммировать количество в строке, если таковая уже имеется

Автор - scryde2015
Дата добавления - 01.02.2023 в 12:48
jun Дата: Пятница, 10.02.2023, 10:16 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 42 ±
Замечаний: 0% ±

Можно например так. Но для каждой картинки нужно будет прописывать наименование в коде вручную для поиска на листе "Прайс". В коде выделил комментариями.
Код:
[vba]
Код
Sub find_beer_bottle_003()
Dim rng_beer As Range, main_beer As Range, objTable As ListObject
Dim InsertRow As Range

Set rng_beer = Worksheets("Прайс").Cells.Find("пиво баночное ""АСАХИ SUPER DRY"" ящик 350мл*") ' название поменять на нужное
With Worksheets("Заказ")
    Set main_beer = .Cells.Find("пиво баночное ""АСАХИ SUPER DRY"" ящик 350мл*") ' то же
    Set objTable = .ListObjects("Реестр_tb")
End With
If Not rng_beer Is Nothing Then
    If main_beer Is Nothing Then
        objTable.ListRows.Add
        With Worksheets("Заказ")
            Set InsertRow = .Cells(2, 1).End(xlDown).Offset(1, 0)
            Debug.Print InsertRow.Address
        End With
        With Worksheets("Прайс")
            .Range(.Cells(rng_beer.Row, 1), .Cells(rng_beer.Row, 3)).Copy InsertRow
            InsertRow.Offset(0, 3) = 1
        End With
    Else
        main_beer.Offset(0, 2) = main_beer.Offset(0, 2) + 1
    End If
Else
    MsgBox "Не удалось найти продукт по наименованию на листе Прайс!!!"
End If
End Sub
Sub find_beer_bottle_004()
Dim rng_beer As Range, main_beer As Range, objTable As ListObject
Dim InsertRow As Range

Set rng_beer = Worksheets("Прайс").Cells.Find("пиво бутылочное ""АСАХИ SUPER DRY"" ящик 633мл*") ' название поменять на нужное
With Worksheets("Заказ")
    Set main_beer = .Cells.Find("пиво бутылочное ""АСАХИ SUPER DRY"" ящик 633мл*") ' то же
    Set objTable = .ListObjects("Реестр_tb")
End With
If Not rng_beer Is Nothing Then
    If main_beer Is Nothing Then
        objTable.ListRows.Add
        With Worksheets("Заказ")
            Set InsertRow = .Cells(2, 1).End(xlDown).Offset(1, 0)
            Debug.Print InsertRow.Address
        End With
        With Worksheets("Прайс")
            .Range(.Cells(rng_beer.Row, 1), .Cells(rng_beer.Row, 3)).Copy InsertRow
            InsertRow.Offset(0, 3) = 1
        End With
    Else
        main_beer.Offset(0, 2) = main_beer.Offset(0, 2) + 1
    End If
Else
    MsgBox "Не удалось найти продукт по наименованию на листе Прайс!!!"
End If
End Sub
[/vba]
К сообщению приложен файл: picture_click.xlsb (166.4 Kb)
 
Ответить
СообщениеМожно например так. Но для каждой картинки нужно будет прописывать наименование в коде вручную для поиска на листе "Прайс". В коде выделил комментариями.
Код:
[vba]
Код
Sub find_beer_bottle_003()
Dim rng_beer As Range, main_beer As Range, objTable As ListObject
Dim InsertRow As Range

Set rng_beer = Worksheets("Прайс").Cells.Find("пиво баночное ""АСАХИ SUPER DRY"" ящик 350мл*") ' название поменять на нужное
With Worksheets("Заказ")
    Set main_beer = .Cells.Find("пиво баночное ""АСАХИ SUPER DRY"" ящик 350мл*") ' то же
    Set objTable = .ListObjects("Реестр_tb")
End With
If Not rng_beer Is Nothing Then
    If main_beer Is Nothing Then
        objTable.ListRows.Add
        With Worksheets("Заказ")
            Set InsertRow = .Cells(2, 1).End(xlDown).Offset(1, 0)
            Debug.Print InsertRow.Address
        End With
        With Worksheets("Прайс")
            .Range(.Cells(rng_beer.Row, 1), .Cells(rng_beer.Row, 3)).Copy InsertRow
            InsertRow.Offset(0, 3) = 1
        End With
    Else
        main_beer.Offset(0, 2) = main_beer.Offset(0, 2) + 1
    End If
Else
    MsgBox "Не удалось найти продукт по наименованию на листе Прайс!!!"
End If
End Sub
Sub find_beer_bottle_004()
Dim rng_beer As Range, main_beer As Range, objTable As ListObject
Dim InsertRow As Range

Set rng_beer = Worksheets("Прайс").Cells.Find("пиво бутылочное ""АСАХИ SUPER DRY"" ящик 633мл*") ' название поменять на нужное
With Worksheets("Заказ")
    Set main_beer = .Cells.Find("пиво бутылочное ""АСАХИ SUPER DRY"" ящик 633мл*") ' то же
    Set objTable = .ListObjects("Реестр_tb")
End With
If Not rng_beer Is Nothing Then
    If main_beer Is Nothing Then
        objTable.ListRows.Add
        With Worksheets("Заказ")
            Set InsertRow = .Cells(2, 1).End(xlDown).Offset(1, 0)
            Debug.Print InsertRow.Address
        End With
        With Worksheets("Прайс")
            .Range(.Cells(rng_beer.Row, 1), .Cells(rng_beer.Row, 3)).Copy InsertRow
            InsertRow.Offset(0, 3) = 1
        End With
    Else
        main_beer.Offset(0, 2) = main_beer.Offset(0, 2) + 1
    End If
Else
    MsgBox "Не удалось найти продукт по наименованию на листе Прайс!!!"
End If
End Sub
[/vba]

Автор - jun
Дата добавления - 10.02.2023 в 10:16
scryde2015 Дата: Воскресенье, 12.02.2023, 13:13 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 40% ±

Excel 2016
Можно например так. Но для каждой картинки нужно будет прописывать наименование в коде вручную для поиска на листе "Прайс". В коде выделил комментариями.
Код:

Что-то совсем сложно получается)
Получилось что-то такое сделать. Только не могу понять, как сделать так, чтобы была проверка, если позиция в списке уже имеется - добавлялось только количество к уже имеющийся строке, а если позиции нет - добавлять строку
Ввожу номер в форму, по номеру ищет совпадение в прайсе - поставляет в форму. А вот как сделать проверку в таблице заказа - немогу понять )
К сообщению приложен файл: 6650927.xlsm (77.7 Kb)


Сообщение отредактировал scryde2015 - Воскресенье, 12.02.2023, 13:28
 
Ответить
Сообщение
Можно например так. Но для каждой картинки нужно будет прописывать наименование в коде вручную для поиска на листе "Прайс". В коде выделил комментариями.
Код:

Что-то совсем сложно получается)
Получилось что-то такое сделать. Только не могу понять, как сделать так, чтобы была проверка, если позиция в списке уже имеется - добавлялось только количество к уже имеющийся строке, а если позиции нет - добавлять строку
Ввожу номер в форму, по номеру ищет совпадение в прайсе - поставляет в форму. А вот как сделать проверку в таблице заказа - немогу понять )

Автор - scryde2015
Дата добавления - 12.02.2023 в 13:13
jun Дата: Воскресенье, 12.02.2023, 13:51 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 42 ±
Замечаний: 0% ±

Может как-то так. См. файл
Обновил файл.
К сообщению приложен файл: 5665514.xlsm (81.7 Kb)


Сообщение отредактировал jun - Воскресенье, 12.02.2023, 13:54
 
Ответить
СообщениеМожет как-то так. См. файл
Обновил файл.

Автор - jun
Дата добавления - 12.02.2023 в 13:51
scryde2015 Дата: Воскресенье, 12.02.2023, 14:05 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 40% ±

Excel 2016
Спасибо большое ! То, что доктор прописал )


Сообщение отредактировал Serge_007 - Понедельник, 13.02.2023, 10:59
 
Ответить
СообщениеСпасибо большое ! То, что доктор прописал )

Автор - scryde2015
Дата добавления - 12.02.2023 в 14:05
scryde2015 Дата: Воскресенье, 12.02.2023, 14:11 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 40% ±

Excel 2016
А нет, не совсем все хорошо ) Он проверку то делает, вот только добавляет по 1, если в количестве указать больше 1 - в уже имеющуюся строку он добавляет все равно +1, а не то количество, которое указано в форме


Сообщение отредактировал Serge_007 - Понедельник, 13.02.2023, 10:59
 
Ответить
СообщениеА нет, не совсем все хорошо ) Он проверку то делает, вот только добавляет по 1, если в количестве указать больше 1 - в уже имеющуюся строку он добавляет все равно +1, а не то количество, которое указано в форме

Автор - scryde2015
Дата добавления - 12.02.2023 в 14:11
jun Дата: Воскресенье, 12.02.2023, 14:25 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 42 ±
Замечаний: 0% ±

Проверяйте. Исправил
К сообщению приложен файл: 6865279.xlsm (81.8 Kb)
 
Ответить
СообщениеПроверяйте. Исправил

Автор - jun
Дата добавления - 12.02.2023 в 14:25
scryde2015 Дата: Воскресенье, 12.02.2023, 14:26 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 40% ±

Excel 2016
Работает ! Спасибо еще раз.


Сообщение отредактировал Serge_007 - Понедельник, 13.02.2023, 11:00
 
Ответить
СообщениеРаботает ! Спасибо еще раз.

Автор - scryde2015
Дата добавления - 12.02.2023 в 14:26
jun Дата: Воскресенье, 12.02.2023, 14:34 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 42 ±
Замечаний: 0% ±

Пожалуйста! Успехов Вам! :)
 
Ответить
СообщениеПожалуйста! Успехов Вам! :)

Автор - jun
Дата добавления - 12.02.2023 в 14:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание строки в умной таблице при нажатии на картинку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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