» Казахстанский Бухгалтерский форум www.balans.kz

Использование формул и макросов в Excel

 
Показать сообщения:
Начиная со старых .::. Начиная с новых


Автор: Алекс Мневис
Добавлено: #1  Сб Окт 24, 2009 13:27:43
Заголовок сообщения: Использование формул и макросов в Excel

Добрый день! Поделитесь опытом работы в Excel, думаю в нем работают большинство пользователей.

Вопрос: как все значения выбранного массива ячеек умножить или разделить на одно и то же число?

Есть такой способ, минус - слетают формулы, для чего необходимо: допустим таблица в тенге - нужно быстро перевести в тыс.тенге (*0,001 или /1000)

Sub MultAllCells()
Dim dblMult As Double
Dim cell As Range
' Ввод коэффициента для умножения
dblMult = InputBox("Введите коэффициент, на который следует умножать")
' Умножение содержимого на введенный коэффициент
For Each cell In Selection
If IsNumeric(cell.Value) And cell.Value <> " " Then
' Умножаются только ячейки, содержащие числовые данные
cell.Value = cell.Value * dblMult
Else
MsgBox "В ячейке " & cell.Address & " нечисловое значение"
End If
Next
End Sub

Добавлено спустя 4 минуты 8 секунд:

Пример

Переименовано и перенесено в другой подфорум = Elis

Добавлено спустя 18 минут 33 секунды:

Я был бы рад, чтобы это сделалось и без макросов, а штатными возможностями Excel :oops:



Автор: Технический
Добавлено: #2  Сб Окт 24, 2009 14:04:10
Заголовок сообщения:

Алекс Мневис говорит:
Вопрос: как все значения выбранного массива ячеек умножить или разделить на одно и то же число?

штатными возможностями Excel A1/$B$1 это значит ячейку A1 делить на постоянную величину ячейки B1



Автор: Elis
Добавлено: #3  Сб Окт 24, 2009 14:55:49
Заголовок сообщения:

Если бы все было так просто.
Ему надо, чтобы значение изменилось в той же же ячейке, а не в другие ячейки записать сумму не в "тенге", а в "тыс.тенге".
А в той же ячейке это будут циклические ссылки. К тому же у него в массиве (в таблице) есть и значения, которые нужно умножать, а есть и формулы. А их нужно оставить. Я знаю, с чем это он там мучается. Так что без макросов я выхода не вижу. Самый красивый "однокнопочный" выход поставленной задачи.

Ну не будете же вы, Алекс Мневис, это записывать на другой лист Excel, а потом вручную копировать значения отдельных колонок нового массива поверх тех же колонок старого?
Алекс Мневис, я бы помогла, но у меня сейчас, правда, времени нет.
Я не ас в макросах, мне на это день убить надо.
Пусть спецы быстренько напишут.



Автор: Алекс Мневис
Добавлено: #4  Пн Окт 26, 2009 06:50:43
Заголовок сообщения:

Спасибо, Elis

Вы правильно меня поняли...



Автор: Алекс Мневис
Добавлено: #5  Вт Окт 27, 2009 19:42:16
Заголовок сообщения:

Если кому интересно, нашел более простое решение:

Если вопрос в том, как умножить числа во множестве ячеек на листе, то решение в использовании Специальной вставки
- вводим в свободной ячейке 1.20 (т.е.120%)
- копируем эту ячейку
- выделяем всю область (все области) ячеек с числами, которые нужно увеличить
- правая клавиша мыши
- контектное меню - специальная вставка - операция - умножить - ОК.



Автор: Алекс Мневис
Добавлено: #6  Вт Апр 19, 2011 21:33:57
Заголовок сообщения:

Может кому пригодится - как преобразовать число в Excel в пропись
1. Excel - Севис - Надстройки - Обзор - указываем путь к сохраненному файлу - ОК
2. В нужной ячейке - Вставка - Функция - Категория - Определенный пользователем - Указываем ячейку с числом, которое нужно преобразовать

Добавлено спустя 1 минуту 14 секунд:

Файл надстройки



Автор: Рита
Добавлено: #7  Вт Апр 19, 2011 23:03:00
Заголовок сообщения:

Алекс Мневис, спасибо!
Только в Офисе-2007 немного по-другому.

1. Кнопка "Qffice" (цветная круглая в левом верхнем углу) - Параметры Excel - Надстройки - Перейти - Обзор - указываем путь к сохраненному файлу - ОК

А вот пункт 2 не могу выполнить, на вкладке Вставка не нахожу Функция. Может в офисе-2007 как-то по-другому надо, а как - не могу сообразить.



Автор: Алекс Мневис
Добавлено: #8  Ср Апр 20, 2011 06:20:54
Заголовок сообщения:

Рита,
Рита говорит:
А вот пункт 2 не могу выполнить, на вкладке Вставка не нахожу Функция. Может в офисе-2007 как-то по-другому надо, а как - не могу сообразить.

я здесь не смогу подсказать - не работал в 2007



Автор: Рита
Добавлено: #9  Ср Апр 20, 2011 10:15:35
Заголовок сообщения:

Разобралась. Не дошло сразу, что надо вставлять как обычную функцию, думала, что через специальную вставку.
Итак, для Офис-2007:

2. Формулы - Вставить функцию -Категория - Определенные пользователем - Указываем ячейку с числом, которое нужно преобразовать



Автор: Мэс
Добавлено: #10  Ср Апр 20, 2011 11:12:18
Заголовок сообщения:

О, любимая тема. Чем помочь?


Автор: Рита
Добавлено: #11  Ср Апр 20, 2011 11:21:13
Заголовок сообщения:

Спасибо, разобрались уже :)


Автор: павлин1980
Добавлено: #12  Ср Апр 20, 2011 11:38:25
Заголовок сообщения:

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



Автор: Мэс
Добавлено: #13  Ср Апр 20, 2011 12:20:18
Заголовок сообщения:

павлин1980 говорит:
Мэс, если есть желание и время хотелось бы знать как вообще задать формулу , в екселе знаю только элементарные математические действия(+, -,) функции это темный лес для меня. Так и не поняла как
Алекс Мневис говорит:
преобразовать число в Excel в пропись

Желание есть, со временем не все так радужно. Но.
Попробую рассказать касательно преобразования числа в пропись в Excel.

В программе MS Excel уже есть огромное количество встроенных функций, многие из них очень полезны, особенно логические, текстовые, математические, финансовые. Этих функций достаточно, чтобы решить почти любую задачу как финансового так и не финансового характера. Бухгалтеру очень полезно ими пользоваться. Например, у одного моего клиента пошла разница по НДС. За весь 2010 год. С помощью встроенных отчетов в 1С ошибку найти невозможно. А Excel помог в кратчайшие сроки выяснить, где пошла разница.

Но бывает так, что встроенных функций недостаточно. И Excel был бы просто таблицей, если бы не было поддержки макросов. А с помощью макросов (написанных на языке VBA - Visual Basic for Applications) можно творить настоящие чудеса.

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

Если у функции указано, что она PUBLIC (это по русски - параметр видимости: если PUBLIC - то функция видна прямо в книге Excel), то ее можно вызывать, набирая в ячейке название функции, в нашем случае называется она СУММ_ПРОП_ТЕНГЕ(). То есть так и пишем в ячейке "=СУММ_ПРОП_ТЕНГЕ(Ячейка_с_числовым_значением)".

Теперь, как сделать, чтобы это функция работала всегда, а не приходилось каждый раз запускать файл Тенге_прописью.xla. XLA - это файл-шаблон. Когда вы его запускаете, в книгах Excel становятся доступны макросы, которые есть в этом шаблоне. Но так работать неудобно.

Лучше файл прописью.xla разместить там, где лежат другие шаблоны (например: для MS Office 2010 c:\Program Files\Microsoft Office\Office14\Library\), далее заходим в Надстройки (для MS Office 2010 - Файл -> Параметры -> Надстройки. Управление "Надстройки Excel" -> Перейти. Нажимаем "Обзор", ищем наш файл. Он появится в списке надстроек. Ставим галочку и Ok). Теперь в любой книге будет работать этот макрос.

PS: Для старых версий Ms Office, ниже версии 2007, уже не помню как найти управление надстройками.



  

Служба поддержки WWW.BALANS.KZ