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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    SERGE_BLIZNUK

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90
    что-то УЖАСНОЕ Вы сотворили...:-) сделайте табличку с тестовыми данными, где макрос, как Вы утверждаете - не работает, запакуйте её в архив на любой файлообменник, сюда ссылку, посмотрим, что у Вас там не работает...  

    Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 22:41 15-09-2008
    Pravoved90

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

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

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, господа. Вот, сделал маленький образец своей таблички
    http://rapidshare.com/files/145716209/__1054___1073___1088___1072___1079___1077___1094__pravoved90.xls.html
     
    Суть в ней такова: Есть таблицы ИТОГ, Условия, Событие1. В таблице событие1 проходят расчеты. В каждом событие есть несколько подсобытий(подсобытие1, подсобытие2 и тд.) со своим результатом. Все результаты автоматом копируются в в таблицу ИТОГ. В таблице ИТОГ списком идут Все события и как, подпункты - подсобытие с результатами напротив. В правой части этой таблицы есть 2 пункта: Событие и следующая строка - выпадающие подсобытия. При выборе значения из выпадающего списка в левой стороне таблицы на него реагирует макрос и  расчеты напротив соответствующей ячейки копируються в ячейки рядом. Таким образом я визуально выделяю необходимые мне расчеты.
    Делее, В таблице "Условия" также есть идентичные  выпадающие строки.
     
    Задача: При выборе значения из выпадающего списка в листе "Условия" данные копируються в идентичные данные в листе "ИТОГ", приводя в исполнение макросы, которые реагирует на изменения в этой ячейке в листе "ИТОГ".
     
    Проблема. При автоматическом копировании через макрос, использование формулы, Лист1=Лист2, макрос не видит изменений..
     
    ПС. Надеюсь, не сильно намудрил с описанием - думаю с образцом будет понятнее.  
    Очень надеюсь на вашу помощь. Спасибо.

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 14:34 16-09-2008 | Исправлено: Pravoved90, 14:39 16-09-2008
    Pravoved90

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

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90
     
    вставить в модуль:
    Sub Подсобытие1()
    Range("итог!H6:J9").Clear
    Range("итог!H6:J6").Value = Range("итог!e6:g6").Value
    End Sub
    Sub Подсобытие2()
    Range("итог!H6:J9").Clear
    Range("итог!H7:J7").Value = Range("итог!e7:g7").Value
    End Sub
    Sub Подсобытие3()
    Range("итог!H6:J9").Clear
    Range("итог!H8:J8").Value = Range("итог!e8:g8").Value
    End Sub
    Sub Подсобытие4()
    Range("итог!H6:J9").Clear
    Range("итог!H9:J9").Value = Range("итог!e9:g9").Value
    End Sub
     
    вставить в условия:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c2")) Is Nothing Then
    Application.EnableEvents = False
    'выравнивание1()
    Select Case Range("c2").Value
    Case "подсобытие1"
    Подсобытие1
    Case "подсобытие2"
    Подсобытие2
    Case "подсобытие3"
    Подсобытие3
    Case "подсобытие4"
    Подсобытие4
    End Select
    Application.EnableEvents = True
    End If
    End Sub
     
    вставить в ИТОГ:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("m6")) Is Nothing Then
    Application.EnableEvents = False
    'выравнивание2()
    Select Case Range("m6").Value
    Case "подсобытие1"
    Подсобытие1
    Case "подсобытие2"
    Подсобытие2
    Case "подсобытие3"
    Подсобытие3
    Case "подсобытие4"
    Подсобытие4
    End Select
    Application.EnableEvents = True
    End If
    End Sub
     
    еще считаю необходимым добавить две процедурки (в модули):
    Sub выравнивание1()
    Range("итог!m6").Value = Range("c2").Value
    End Sub
    Sub выравнивание2()
    Range("условия!c2").Value = Range("m6").Value
    End Sub
     
    PS все что у тебя там было (в макросах) удалить! =)
     
    Добавлено:
    ну и вместо  
    Range("итог!H6:J6").Value = Range("итог!e6:g6").Value  
     
    можешь использовать свой метод:
    Range("итог!E6:G6").Copy
    Range("итог!H6").PasteSpecial

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

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed
    ОГРОМНОЕ СПАСИБО за помощь. Начал копаться. Кстати, столкнулся с новой проблемой. Когда Хочу выполнить макрос из листа ИТОГ в листе Условия(без всяких прибамбасов - просто выполнить), вылетает ошибка: метод select из класса range завершен неверно. Так понимаю, макрос не хочет выполнять из другого листа..Может ли быть причина в месте записи макроса?(например, если он записан в листе1, он не запуститься из листа2?)

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pravoved90
    Заметил что бы макрос работал везде он должен в модулях находится, а записанный на листе вроде как не хочет на другом листе выполняться. А в макросе имеется select case?
    Код:
    Select Case Range("M6").Value
    Case "подсобытие1"
    Подсобытие1
    Case "подсобытие2"
    Подсобытие2
    Case "подсобытие3"
    Подсобытие3
    Case "подсобытие4"
    Подсобытие4
    End Select  
    тогда попробуй вот так изменить:
    Код:
    Select Case Range("M6").Value
    Case "подсобытие1"
    Подсобытие1
    Case "подсобытие2"
    Подсобытие2
    Case "подсобытие3"
    Подсобытие3
    Case "подсобытие4"
    Подсобытие4
    Case Else
    MsgBox ("нет такого")

    End Select  


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

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

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 18:17 17-09-2008 | Исправлено: Pravoved90, 18:18 17-09-2008
    Sergio Good

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток всем!
    Вопрос мой таков:
    Два раза в месяц мне приходится заполнять табель рабочего времени сотрудников отдела. Если человек был на работе, в этот день в соответствующей ячейке я ставлю цифру 8 (8 проработанных часов). В конце месяца в таблице с помощью функции в ячейке «Количество проработанных дней» у меня автоматически подсчитывается количество ячеек с числами.  
    Если человек в отпуске или на больничном, то я пишу соответственно «О» или «Б». Эти ячейки без числа и соответственно в счет проработанных дней их компьютер не берет.
    Но вот вопрос – А можно ли в отдельной ячейке просчитать количество ячеек с определенной буквой. Например с буквой «О». Тогда будет понятно, сколько дней человек был в отпуске и т.д.
    Заранее благодарен за ответ…

    Всего записей: 21 | Зарегистр. 09-11-2003 | Отправлено: 11:21 18-09-2008
    q1wed



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergio Good
    =СЧЁТЕСЛИ(A5:F5;"О")
    =СЧЁТЕСЛИ(A5:F5;"Б")

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

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

    Всего записей: 21 | Зарегистр. 09-11-2003 | Отправлено: 13:09 18-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, уважаемые специалисты. Подскажите, как прописать простую строку в макросе:
    В листе1 есть ряд столбиков с данными. Нужно, чтобы при добавлении еще одного идентичного столбика он сразу перемещался в правый край и становился за последним до него столбиком.  
    Заранее признателен за помощь.

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



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

    Всего записей: 208 | Зарегистр. 02-03-2007 | Отправлено: 13:42 18-09-2008
    AuthorR

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

    Всего записей: 164 | Зарегистр. 11-02-2007 | Отправлено: 13:43 18-09-2008
    Pravoved90

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed
    Допустим есть Лист1 и Лист2. Есть столбики одинаковых параметров и размеров, но с разными цифрами(хотя, думаю, это не суть важно). В листе2 эти столбики идут один за другим слева-направо. Хочу сделать так, чтобы при копировании Такого же столбика из листа1 в ячейку, к примеру А1 Листа2, столбик копировался дальше вправо и становился следом за последним столбиком Листа2. Потом следующий при копировании становился уже за новым последним и тд. Общая часть макроса понятна, а вот как написать саму функцию "вставить за последний столбик" за неимением опыта не в представляю...

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну алгоритм такой будет:
     
    1.скопировать вставленный столбец (через Change, потом copy)
    2.проверить диапазон A:A содержит данные? (Columns(i), i=1.)
    2.1 если нет - выполнить вставку и закончить (Paste, End Sub)
    2.2 если да перейти к диапазону B:B (Columns(i), i=i+1.)
    и тд пункт2 в цикле
     
    примечание если планируется столбцы вставлять всегда в столбец A тогда проверку следует начинать с B:B.
    саму команду которая проверяет есть ли что нибудь в ячейках я не помню

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

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    q1wed
    Спасибо за помощь, бум разбираться)))

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а еще же есть уловие на проверку идентичности столбцов - вот тут хз как их определять, то есть не понятно что нужно делать: сравнивать все данные в столбцах или проверять контрольные суммы?? CRC32, а может MD5

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

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

    Всего записей: 511 | Зарегистр. 08-02-2008 | Отправлено: 15:50 18-09-2008 | Исправлено: Pravoved90, 13:02 22-09-2008
    ghosty



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Простая, вроде, задача:
     
    Есть два листа. На каждом листе набор слов и неких численных значений для этих слов. Наборы слов одинаковы, но слова расположены в разном порядке:
     
    Лист1:
    Собака 1 2 4 2 6 7  
    Кошка   2 3 4 5 6 7  
    Корова 3 4 5 6 7 4  
    Белка   4 5 6 7 4 3  
    и т.п.  
     
    Лист2  
    Кошка 2 3 4 5 3 2  
    Белка 4 5 6 3 3 2  
    Корова 7 5 4 3 4 5  
    Собака 3 4 5 6 7 4
    и т.п.
     
    Задача: на третьем листе посчитать общее среднее для каждого слова (по двум листам сразу).
    Заранее премного благодарен за любую подсказку.

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 18:08 21-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