Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как перенести данные из ячеек при выборе того или иного значения из выпадающего списка?
 
Всем привет. Нужен совет и помощь знающих .Ситуация состоит в следующем:

Есть Листы
1.Общий 2. Отчет склад 3. Отчет магазин

На листе есть список товара Наименование,цена и Кто продал, также есть допустим выпадающий список
Нет(значение по умолчанию в ячейке
Склад
Магазин

Необходимо что бы при выборе на листе "Общий" в колонке "Кто продал" Допустим магазин линия удалялась где был выбран тот кто продал,а наименование и цена записывалось с сегодняшней датой В нужный нам лист

Пример:
Если из общих остатков бананы цена которых 300 руб продал магазин мы в ячейки С3 из выпадающего списка выбираем магазин и сразу при выборе слова магазин линия 3 удаляеться а на Листе Отчет магазин появляется запись

сегоднящняя дата ,Наименование товара цена
 
Цитата
Юрий М написал: Про какие линии Вы говорите?
В которой находиться наименование цена ,кто продал,товара
Изменено: pasha2298 - 10 Апр 2018 22:52:54
 
Никаких ЛИНИЙ в файле не вижу. Линии - это прямые, кривые, ломанные... Вы что подразумеваете под линиями?
 
Извинюсь, что не корректно описал, при выборе в ячейке С3 из выпадающего списка слово "Магазин" происходит удаление ячеек А3,B3,С3 а данные Наименование:банан Цена 300 руб записываються в Лист "отчет магазина" с присвоением им сегодняшней даты
 
pasha2298, вот я пишу Вам сообщение без цитирования - понятно, к кому я обращаюсь? А Вы не можете без цитирования обойтись? Цитата разве для этого предназначена?
Запомните - кнопка цитирования не для ответа!
По  вопросу: я бы написал макрос для этих целей.
P.S. Название темы поменял. Сами не могли что-нибудь подобное сформулировать?
 
Извините, с формулами немного разбираюсь а с макросами слобовато
Изменено: pasha2298 - 10 Апр 2018 22:53:57
 
См. вариант.
 
Юрий М,Спасибо вам огромное то что нужно)))
 
pasha2298, только больше не расстраивайте меня "линиями", названиями тем... ))
 
Юрий М,Хорошо, еще раз спасибо,для примера то что нужно,буду по немногу разбираться и переделывать под себя)))
 
Код был бы немного короче, если бы названия листов совпадали с элементами выпадающего списка.
 
Юрий М,Ну можно и так,я просто попытался все немного разграничить, что бы когда задавал вопрос в 1ом посте, не запутать тем что я именно хочу добиться
 
Юрий М,Еще раз доброго времени суток, помогите еще раз если вам не сложно.Пытаюсь переделать макрос под свою таблицу, что вы дали, но увы ничего не выходит.Если вам будет не сложно не могли бы вы написать комментарии по принципу работы данного макроса.
Скрытый текст
 
Юрий М,изменяюсь может немного не правильно написал,русский текст комментарии именно в теле самого макроса,или может кому будет не сложно немного разживать само действие,просто плохо ещё могу понять порядок действия из за не достатка знаний
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FreeRow As Long 'Переменная - номер первой свободной строки
    If Not Intersect(Target, Range("C3:C5")) Is Nothing Then 'Если контролируемая ячейка находится в указанном диапазоне, то
        Application.EnableEvents = False 'Отключили отслеживание событий
        Select Case Target 'Проверяем выбранное значение
            Case Is = "Магазин" 'Если это "Магазин", то
                With Sheets("Отчет магазин") 'Применительно к листу "Отчет магазин"
                    FreeRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'Нашли номер первой свободной строки
                    Range(Target.Offset(0, -2), Target.Offset(0, -1)).Cut .Cells(FreeRow, 1) 'Вырезали указанный диапазон в ячейку А первой свободной строки
                    .Cells(FreeRow, 3) = Date 'Вставили дату в столбец С
                End With
            Case Is = "Склад" 'Аналогично для значения "Склад"
                With Sheets("Отчет склад")
                    FreeRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                    Range(Target.Offset(0, -2), Target.Offset(0, -1)).Cut .Cells(FreeRow, 1)
                    .Cells(FreeRow, 3) = Date
                End With
        End Select
    End If
    Application.EnableEvents = True 'Включили отслеживание событий
End Sub




 
Юрий М,Спасибо еще раз вам большое за помощь)))
Страницы: 1
Читают тему (гостей: 1)
Наверх