Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 4)

Модерирует : gyra, Maz

Widok (09-03-2010 13:14): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Просьба к посетителям топика дополнять шапку наиболее часто задаваемыми вопросами со ссылками на ответы
в обязательном порядке

 
  • Смена представления имен столбцов с буквенного на цифровое и обратно


    Сумма прописью
  • Надстройка "PROP" (сумма прописью)
  • надстройка Excellerator (c) Michael Zemlanukha & Maxim Shemanarev
  • макрос Num2String


  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format (eng.)
  • Горячие клавиши в Excel (табличка)
     
    Предыдущие ветки топика: Часть 1 | Часть 2 | Часть 3
     
    Все вопросы по программированию (макросы, скрипты, пользовательские функции и т.п.) обсуждаются в теме Excel VBA в разделе Прикладное программирование.
     
    При необходимости выложить скриншот, пользуйтесь сервисом ImageShack® (ограничение на размер файла <1.5 Mb)
     
    Книга Джон Уокенбах "Подробное руководство по созданию формул в Microsoft Office Excel 2002" PDF 34МБ Файлы к книге

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:12 29-08-2008 | Исправлено: Maz, 22:45 24-02-2017
    DrMihalich

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SERGE_BLIZNUK
    Оргомное спасибо! То, что нужно.

    Всего записей: 20 | Зарегистр. 20-06-2005 | Отправлено: 20:52 14-09-2008
    haruspik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed

    Цитата:
    Ну тогда, если хочешь помощи, максимально подробно описывай свою ситуацию, что пробовал и что не подходит.

    Описываю ситуацию: раз в две недели собирается примерно 120  одинаковых по структуре отчетов, необходимо их собрать в единое целое, проанализировать  информацию, внести корректировку и разослать обратно. Проблема в том что, сейчас приходиться вносить изменения в исходных файлах, а при таком их количестве - сущее наказание, я ищу решение как все объединить, изменить прямо в общей таблице, снова разобрать на составляющие, но со сделанными изменениями.  Заранее море благодарности))

    Всего записей: 4 | Зарегистр. 13-09-2008 | Отправлено: 22:27 14-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    haruspik
    Думаю, без конкретики тут не обойтись...

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 22:47 14-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    haruspik
    делай раз: открываешь исходный файл, Ctrl+A, затем Ctrl+C
    делай два: переходишь в общий файл, Ctrl+V
    Цикл повторить n раз, где n - количество файлов с данными.
    На выходе получишь один общий файл, в котором сможешь спокойно работать.)))))
    Ну разве не ответ? По твоему рассказу ответ получается исключительный!
     
     

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 08:39 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, Господа..Я правильно понял, что выпадающий список в ячейке может ссылаться только на значения в пределе одного листа? Если нет, то как сделать правильно ссылку? Спасибо
     
    Добавлено:
    В общем можно, если у ссылаемых списков есть название. Тем не менее - можно ли сделать путем простого копирования данных со списком в другой лист?

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 10:46 15-09-2008
    DrMihalich

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня все работает на разных листах: справочники на одном листе, а сами списки на другом.

    Всего записей: 20 | Зарегистр. 20-06-2005 | Отправлено: 11:01 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90? можно http://www.planetaexcel.ru/tip.php?aid=34 способ2 - твой
     
    Добавлено:
    между прочим эту ссылку я тебе уже второй раз даю - посмотри первую страницу этой ветки

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 11:02 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    способ2 - твой
    - спасибо, ссылочкой твоей пользуюсь. Я немного не по ней делал - не назначал имя выделенной группе, а сразу выделял диапазон вставляемых в список ячеек в меню "проверка" - оттого и не копировалось..
     
    Помогите встать на верный путь: В разных листах есть такие столбики с идентичными значениями и выпадающими списками. Задача состоит следующем: При выборе конкретного значения из выпадающего списка в Листе1, такое же действо должно произойти в идентичной таблице в Листе2.  
    Вариант сделать "значение в Листе1 = значение Листе2" не подходит, поскольку на слово в Листе2 ссылается исполнение макроса - не будет работать.
     
    Помогите написать условие, типа: если в листе1 выбрать из выпадающего списка слово "добро", то в листе2 тоже выбрать из выпадающего списка слово "добро". Спасибо.

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 11:39 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90

    Цитата:
    не назначал имя

    а я так и понял что сразу диапазон пытаешся назначить

    Цитата:
    макроса - не будет работать.  

    почему не будет? если ты не изменил свой макрос, то условие у тебя такое стоит: If Range("M7").Value = "слово" условие идет именно на значение ячейки, а не на формулу
    так что ставь
    Цитата:
    "значение в Листе1 = значение Листе2"


    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 12:06 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    почему не будет?

    В том и дело что не работает. Точнее макрос на слово срабатвыает только при первом изменении. Также срабатывает, если сделать по ячейке двойной клик(как для ввода слова).
    По логике вещей я понимаю процесс так: Макрос срабатывает, если происходит непосредственное взаимодействие с ячейкой(или есть соотвествующий процесс в коде ).
    В этом же случае значение меняется без непосредственного взаимодействия с ячейкой => макрос не видит изменения.
    Вывод:
    a) что-то прописать в макрос, чтобы менялся при любых изменениях
    б) написать макрос на автоматическое действие по изменению ячейки под нужные условия.
    Вот...

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 12:27 15-09-2008 | Исправлено: Pravoved90, 12:32 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90 предлагаю вставить на лист2 макрос с листа1 переделав его так чтоб он на первый лист все равно сслылался и на первом же листе его действия отражались. то есть по сути только дописать в адреса Лист1!
     
    Добавлено:
    а почему ты кста изменил в своем макросе
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    на
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    по выделению не правильно работало?

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 12:48 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    а почему ты кста изменил в своем макросе  

    SelectionChange реагирует на нажатие на ячейку
    Change - реагирует на изменение в ячейке
     
    Добавлено:

    Цитата:
    вставить на лист2 макрос с листа1

    Это конечно вариант для идентичных ячеек, но как быть в случае просто связанных ячеек? Например в Листе1, ячейка a1 = 2. В листе2 в a1  надписи "от 2 до 5", от "5 до 10" и тд. и формула, при каком значении Лист1a1 что выдавать. Непонятно - куда ссылаться. В итоге все равно надо, чтобы макрос реагировал на автоматическое изменение имя ячейки...
    Может, конечно, я чтото упустил?...

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 12:59 15-09-2008 | Исправлено: Pravoved90, 13:35 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90

    Цитата:
    Может, конечно, я чтото упустил?...

    а может и я что-то упустил, но смотри:
    1. В ячейке Лист1А1 стоит значение - в зависимости от него красятся ячейки на Листе1. Красятся в тот момент когда происходит изменение в определенных ячейках на Листе1.
    2. На Листе2 есть ячейка, в зависимости от которой принимает значение ячейка Лист1А1
    Задача: заставить окрашивтаься ячейки с Листа1 когда происходит изменение в ячейках на Листе2
     
    Для решения предлагаю сделать макрос который запускался бы на выполнение от изменения в ячейках на Листе2, причем результам выполнения было бы закрашивание ячеек на Листе1 в зависимости от значения ячейки Лист1А1.
     
    Надеюсь не сильно намудрил %)))))))
     
    еще как вариант можно ведь сделать макрос и навесить его на кнопку "Типа расчитать лист". То есть ты делаешь всякие действия над файлом, а когда усе готово жмешь на кнопку и файл окрашивается.
     
    Добавлено:
    а еще можно сделать пользовательскую функцию которая бы красила ячейки в зависимости от значений других ячеек. Хотя мы тут опять приходим к тому что пытаемся оказать воздействие на ячейку функцией которая стоит в другой ячейке - SERGE_BLIZNUK говорил что так нельзя сделать стандартными функциями,  может быть пользовательскими можно......

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 14:01 15-09-2008 | Исправлено: q1wed, 14:02 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Надеюсь не сильно намудрил %)))))))

    Не совсем понял о чем идет речь)).. Как изменить цвет в одном листе заменой значений в другом, вроде прошли уже, и даже без макросов..
    У меня чуйство, что надо всего-то заменить пару слов в макросе, чтоб реагировала не на взаимодествие а на любое изменение...

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 14:48 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    тебе надо чтобы значение в лист1а1 было равно лист2а2?
     
    Добавлено:
    предлагаю макрос твой вот так изменить:
    ....
    If Range("Лист1!M7").Value = "слово" Then  
      Range("Лист1!E60:Лист1!G60").Copy  
      Range("Лист1!H60:Лист1!J60").PasteSpecial  
    End If  
    .....
    и вставить на Лист2

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 15:08 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    тебе надо чтобы значение в лист1а1 было равно лист2а2?  

    не хочет, зараза, работать и все...Значение копируется - макрос не реагирует..Опять таки - если клацнуть дважды на ячейку - срабатывает...
    УЖОС

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 15:58 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не срабатывает то что я предложил и твой старый вариант?

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 16:43 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет((( Чего уже не перепробовал..А выход, наверняка, очень простой..Вобщем суть получается такова, что как не пытаешься воздействовать на ячейку автоматом - макрос на ней не срабатывает.Только вручную..

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 16:51 15-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    попробуй в "моем" варианте убрать ограничения которые SERGE_BLIZNUK рекоменедовал поставить на Worksheet_Change(ByVal Target As Range).

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 16:56 15-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed
    Нет. Просто копируется и все..А если убрать варианты SERGE_BLIZNUK - и вручную мрачно работает...
     
    Добавлено:
    Как выяснилось, макрос не срабатывает и в случае ручного копирования необходимого слова в нужную ячейку. Таким образом можно констатировать, что он срабатывает только в случае РУЧНОГО ввода данных\выбора из раскрывающегося списка..Стало быть точно нужно чтото дописать..

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 17:22 15-09-2008
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

    Компьютерный форум Ru.Board » Компьютеры » Программы » Microsoft Excel FAQ (часть 4)
    Widok (09-03-2010 13:14): Лимит страниц. Продолжаем здесь.


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru