Страницы: 1
RSS
Перенос автоматически значений с одного листа на дугой без кнопки и без формул (возможно макросом)
 
Здравствуйте.
Необходимо переносить значения автоматически с листа "ГРАДУИРОВКА" (F29:F42 и K29:K42) на лист "обр.стор_ГРАД" (B6:B19 и D6:D19) соответственно. Так же, если значения на листе "ГРАДУИРОВКА" меняются, то автоматически они должны поменяться на листе "обр.стор_ГРАД".
Формулой делал, через кнопку тоже получается (находил на форуме)... НО очень надо что бы автоматически переносилось. Как это реализовать, к сожалению не нашел сам. Если будет возможность и желание, помогите пожалуйста.
Всем спасибо.
Изменено: kusty - 08.02.2025 00:21:16
 
Цитата
kusty написал:
через кнопку тоже получается
Интересно было бы увидить код который у вас получается.
Доброго времени суток и Добро Пожаловать на данный форум.
И да,
Цитата
kusty написал:
Необходимо переносить значения автоматически с листа "ГРАДУИРОВКА" (F29:F42 и K29:K42) на лист "обр.стор_ГРАД" (B6:B19 и D6:D19) соответственно.
и по какому признаку вы хотите это сделать, полностью заполненная строка данными или ещё что?
Изменено: MikeVol - 08.02.2025 00:55:03 (Дополнил ответ)
 
Цитата
kusty написал:
если значения на листе "ГРАДУИРОВКА" меняются
- вот этот момент нужно сразу описывать подробно. Потому что данные могут меняться как минимум тремя разными способами (даже больше, но важны три).
P.S. посмотрел файл - что сейчас не устраивает? То что не переносит, а только копирует?
Изменено: Hugo - 08.02.2025 01:04:47
 
Цитата
MikeVol написал:
Интересно было бы увидить код который у вас получается. Доброго времени суток и Добро Пожаловать на данный форум.
Выглядело всё вот так. Но нужно, что бы внося значение ручками в лист "ГРАДУИРОВКА" они переносились на другой лист без нажатия кнопки. Так же, могут в конце таблицы оставаться пустые ячейки. Тогда и на втором листе должно быть пусто.
Изменено: kusty - 08.02.2025 12:02:55
 
Цитата
Hugo написал:
P.S. посмотрел файл - что сейчас не устраивает? То что не переносит, а только копирует?
Да, всё верно. Нужно что бы при внесении изменений РУЧКАМИ  в листе "ГРАДУИРОВКА" в выделенных ячейках цветом, автоматически с помощью возможно макроса они изменялись и на втором листе. Данные заносятся сверху вниз и если в конце таблицы остаются пустые ячейки, то и на втором листе они должны быть пустыми. Ну, как-то так.  
Изменено: kusty - 08.02.2025 12:03:27
 
Цитата
MikeVol написал:
и по какому признаку вы хотите это сделать, полностью заполненная строка данными или ещё что?
Нет, признак один... конкретно введенное значение МНОЮ РУЧКАМИ в конкретной ячейке листа "ГРАДУИРОВКА" (из залитых цветом) переносились бы в конкретную ячейку листа обр.стор_ГРАД.
Вроде должно быть просто, но тут я не силен как-то. На форуме было что-то подобно реализовано макросом в строчку, но у меня не получилось изменить это под себя. С макросами я как-то.... не силен.
Изменено: kusty - 08.02.2025 12:04:17
 
kusty, Следуйщий код вставьте в модуль листа
Цитата
kusty написал:
"ГРАДУИРОВКА"
]
Так как у вас в
Цитата
kusty написал:
F29:F42 и K29:K42
имеются формулы то необходимо использовать событие Worksheet_Calculate. И да, вы соврали что
Цитата
kusty написал:
конкретно введенное значение МНОЮ РУЧКАМИ в конкретной ячейке листа "ГРАДУИРОВКА" (из залитых цветом)
Код
Option Explicit

Private Sub Worksheet_Calculate()
    Application.EnableEvents = False
    
    ThisWorkbook.Worksheets("обр.стор_ГРАД").Range("B6:B19").Value = Me.Range("F29:F42").Value
    ThisWorkbook.Worksheets("обр.стор_ГРАД").Range("D6:D19").Value = Me.Range("K29:K42").Value
    
    Application.EnableEvents = True
End Sub
Удачи.
Изменено: MikeVol - 08.02.2025 23:39:28 (Отредактировал пост удалив одну процедуру)
 
MikeVol,
Цитата
MikeVol написал:
И да, вы соврали
Простите, врать и обманывать не собирался, не в моих правилах. Просто пятница была, поздно вечером и по запаре так получилось. Ещё раз извините. Ввел в заблуждение, ошибся, но ВРАТЬ не хотел.
Дело в том, что не хотел сильно напрягать форумчан и думал что помогут создать если код, то с остальным сам постараюсь разобраться.  :oops:  

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

1. Там значится из листа "ОБРАЗЦОВКА" ячейки выделены зеленым и тут уж точно их РУЧКАМИ ввожу ))) - переноситься должны в лист "обр.стор_ОБРАЗЦОВ" в желтые ячейки автоматически по изменению зеленых ячеек в листе "ОБРАЗЦОВКА".

2. А вот в лист "ГРАДУИРОВКА" ручками ввожу значения в синие ячейки, потом формула их пересчитывает в зеленых ячейках как правильно ранее заметили Вы (теперь без обмана пишу  ;) ).  Ячейки ЗАЛИТЫЕ ЗЕЛЕНЫМ цветом должны (без формул) автоматом переноситься в лист "обр.стор_ГРАД" в ячейки залитые желтым цветом.
Вот такая была идея изначально. НО... вчера писал видимо сильно уставшим, не внимательно объяснил всю суть и всё перепутал

НО ВАМ ОГРОМНОЕ СПАСИБО!!!! Сейчас разобрался со всем и всё получилось вроде бы как надо!!! Оба кода получается пригодились!
P.S. Вдруг кому ещё нужно будет что-то подобное. Выкладываю рабочий уже файл.
Изменено: kusty - 08.02.2025 22:47:53
 
MikeVol,

Проверил как работает код в моем основном файле для работы и... для листа "ГРАДУИРОВКА" всё отлично работает и переносится без нареканий, а вот вставил в лист "ОБРАЗЦОВКА" и выдает потом ошибку. Я так понимаю, что "ругается" на то, что у меня такая строчка (Private Sub Worksheet_Change(ByVal Target As Range)) -  уже есть. Как это можно исправить? Файл с ошибкой прикрепил.
Изменено: kusty - 08.02.2025 23:41:17
 
kusty, для
Цитата
kusty написал:
листа "ГРАДУИРОВКА"
используйте процедуру Worksheet_Calculate(). И если лист
Цитата
kusty написал:
"ОБРАЗЦОВКА"
по структуре такой же (формулы в тех же колонках тоже используйте ту же процедуру Worksheet_Calculate(). Файл ваш второй не смотрел, нет возможности скачать.
 
MikeVol, Всё ЗА-РА-БО-ТА-ЛО как надобно. Моя благодарность и огромное спасибо. Буду тестировать и что-то новое выдумывать ))) для облегчения работы.
С такими добрыми людьми как Вы, нам становится легче в своих рабочих процессах. И очень приятно, что есть отзывчивые люди.
Страницы: 1
Наверх