Добрый день уважаемые гуру Екселя. У меня такая проблемка. На событиях в листах настроены активации нескольких макросов, они так сказать связаны в одну цепочку. Так вот вроде все правильно прописал, но почему то последние два макроса не срабатывают, хотя я точно так же с другими макросами делал и все нормально было. Посмотрите пожалуйста пример и подскажите, что я не так сделал.. я уже не знаю, что там не так.
последние два макроса не запускаются по событию в листе, в А3 на листе "Мясорубка" вставляются макросом фразы из другого листа, далее после этого должны запустится последовательно два других макроса, но они не срабатывают, только если я сделаю изменения вручную.
Таких листов с десяток в оригинале, мне так нужно. Для примера так и поставил как в оригинале идет.. по событию в одном листе, копирует данные из того листа в другой, в котором срабатывают другие события.
По событию в первом листе запускаете CopyFraze_CCM_M9so. Так кто мешает этим же событием (или вызванным макросом) запустить другие макросы? Да и запускаются макросы...
Попутно
Код
If Not Intersect(Range("A3:A100000,B2:K100000"), Target) Is Nothing Then
...
If Not Intersect(Range("A2:A100000"), Target) Is Nothing Then CopyFraze_CCM_M9so
vikttur написал: По событию в первом листе запускаете CopyFraze_CCM_M9so. Так кто мешает этим же событием (или вызванным макросом) запустить другие макросы?
Пробовал, результат такой же. Ощущение будто они срабатывают раньше чем вставляется текст или не успевают срабатывать. По этому попробовал разделить на события в листах По вашему примеру пока не очень понял.
Запускает макрос события второго листа. Там даных еще нет. Естественно, ничего не разделяется. Отрабатывает макрос события второго листа, переход к строке в CopyFraze_CCM_M9so
Sanja, Ну сама задача описана в описании. По событиям в листе (и даже если уже вызванным макросом вызывать остальные) то остальные два макроса не срабатывают.
Цитата
vikttur написал: Строка опять запускает макрос события второго листа. Даные вставляются в первый столбец.Конец работы макросов.
Да действительно, я на это тоже подумал. НО я поставил в самом конце этого кода вызов двух макросов которые не срабатывали, и картина такая же.. Я поставил вызов в самом конце, получается на срабатывание после того как данные уже будут находится в столбце.. но все равно та же картина.
Решение Вашего пути и вопроса этой темы - подставить костыли в виде отключения/включения событий при очистке диапазона. При этом второй лист не среагирует на событие изменения данных в первом столбце. В макрос CopyFraze_CCM_M9so
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A2:A100000"), Target) Is Nothing Then CopyFraze_CCM_M9so
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A3:A100000"), Target) Is Nothing Then
Application.EnableEvents = False
Call Разделение_Текст_по_Столбцам
Call Копирование_Данных_в_один_Столбец
Application.EnableEvents = True
End If
End Sub
А я так и не понял, зачем задействовать события второго листа. Но - в путь! С костылями...
Говорю же пробовал в одном листе все задействовать, у меня не получилось, наверное что то не так сделал. Поэтому разделил на два листа события. Но безрезультатно. Как правильно в одном листе все записать фиг знает.
Попробовал ваш пример. Вставил в макрос исправление. В листы закинул ваши события. Ничего не работает, еще и ошибку выбивает первом макросе который не срабатывал и теперь все макросы в файле не работают.
В этой строке ошибка:
Код
Sub Разделение_Текст_по_Столбцам()
' Разделение_Текста_по_Столбцам Макрос
Sheets("Мясорубка").Range("A3:A100000").Select '<-------туть
Gagarin13 написал: господин vikttur вроде понял суть задачи.
Я думаю, не он один. Вместо того, чтобы решать задачу, как из "рыбы" сделать макрос, вы упорно решаете задачу, какие, и куда, приставить костыли, чтобы "рыба" стала хотя-бы хромать.
Если бы вы внимательнее читали все сообщения, заметили бы, что я о подобном вообще не писал. Мне не нужны костыли, у меня так сделано в меру моих познаний. Я ранее написал, что не знаю как это лучше сделать. И здесь ждал, что подскажут как сделать лучше. Я пробовал делать по другому и у меня не получалось.. об этом я писал ранее. Я и пытаюсь получить ответ на решение этой задачи.. Получил один ответ от Виктура, но у меня он не срабатывает. Хотя по идее он должен работать. Я нечто подобно писал. Но у меня выбивает ошибки.
RAN, Я описал свой метод решения так как я делаю... но я нигде не писал что нужно именно так же все решить что бы хоть как то работало.. мне нужно что бы работало хорошо.. повторюсь, просто описал свой метод решения..
Gagarin13 написал: повторюсь, просто описал свой метод решения
и я повторюсь
Цитата
Sanja написал: А можно озвучить саму задачу, а не способ, которым Вы пытаетесь ее решить?
Не думаю, что ЗАДАЧА - это запуск абы каких макросов. ЧТО должны делать Ваши макросы? Что должно получиться на выходе? Напишите просто, по-русски, без привязки к VBA. В качестве файла примера приложите файл с двумя листами. На первом Как есть, на втором Как надо. Без макросов вообще
Согласие есть продукт при полном непротивлении сторон
Gagarin13, о чем была речь в первых ответах (удалены)? Не Вас ли просили дать теме название по задаче? После этого я два раза! переименовывал, чтобы хоть как-то приблизить к решаемой проблеме. А проблема - не Ваша задача, а неработоспособность при событиях листов. Вы же упорно на этом настаивали.
По этой теме причина освещена, решение предложено. То, что не работает что-то еще - так это в криво написанном макросе разделения по столбцам, к этой теме отношения не имеет. Пройдите в пошаговом режиме и увидите.
И замените аватарку, негоже с такими знаниями прикрываться таким человеком.
vikttur, Зато младенцем куда лучше. Уже писал. Что я не против новых решений.. я ни в одном сообщении не написал что нужно упороться и делать моим способом... Написано было. Что я сделал в меру своих познаний, если есть варианты по лучше, то буду рад рассмотреть. Пример вашего решения так же попробовал но он не сработал.
Слушайте, в отличии от вас, я не цепляюсь за дурацкие мелочи, вроде аватарки, лишь бы оскорбить кого то. Если так хочется, то делайте это более адекватно. Я конечно извиняюсь. Но вы слишком зациклились и придрались к словам не беря в расчет остальные вводные данные.
1. Я описал как я решил свою задачу, но она не совсем работает. 2. Написал что нужно решить эту задачу, а каким способом я вообще нигде не указывал.
Sanja написал: Вы бы хоть в одном сообщении написали, ЧТО нужно сделать. Не КАК, а ЧТО? ЧТОООО, Карл!!!
ЧТО сделать было несколько раз описано... здесь только вам похоже не понятна суть дела. Вот вкратце суть всего описания. Задача была сделать так и так... работает так и так. В конце не работает так и так.. Нужно сделать что бы работало (НЕ обязательно делать как я сделал.. если есть варианты сделать лучше то пожалуйста)
Вот что было написано.. что вам не понятно, я вообще без понятия. Написал, что сделать и как это было сделано.. указания что нужно сделать так же лишь бы работало.. нигде небыло написано.. если вы найдете такое заявление от моего лица, то вы великий магистр.
vikttur написал: Не работает Ваш макрос разеления, к событиям он отношения не имеет. Gagarin13, Вы людей слышите?Название темы должно отражать суть задачи. Эта тема - о событиях листа. Хотите помощи по другой проблеме - создайте тему.
Я как на тот момент понимал в чем проблема.. так тему и назвал.. иногда ощущение, что вы читаете тему вместо описания.