Концепция программирования на VBA

excel VBA макросы

Подскажите пожалуйста свою концепцию на решение вопроса такого рода:

Имеется прайс лист в Excel. Необходимо сделать наценку на все товары. книга из нескольких листов.

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

Загвоздка в том что я не знаю как проверить какой тип данных содержит ячейка.

Может у кого то есть более простое решения буду рад выслушать.

Примечание:
Проделывать нужно будет достаточно часто т.к. у каждого клиента индивидуальная цена и чтобы выслать или распечатать прайс нужно будет каждый раз корректировать базовую цену, которая указана в прайсе.

Господину Quark.Fusion я бы посоветовал повнимательней читать вопрос, и обращать внинмание на заголовок

LeoCats подскажите пожалуйста какую функцию можно использовать для проверки типа данных в массиве, нужно выбрать только те которые содержат числовые значения, чтобы не заморачиваться на уточнение диапазона в процедуре а просто задать UsedRange. Надеюсь вы меня понимаете.
Спасибо.

Примечание:
Спасибо LeoCats помог мне.
Я немного усовершенствовал твой код оцени, может пригодиться

Sub Наценка()
Dim x As Currency
x = Val(InputBox("Введите коэфициэнт"))
For Each i In ActiveWorkbook.Worksheets
i.Select
For Each y In i.UsedRange.Columns(5).Cells
y.Select
If IsNumeric(y.Value) And Not IsEmpty(y.Value) Then y.Value = y.Value * x
Next
Next
End Sub
Ответы:
Имхо, если листов не более 10 и цены должны быть заданы числом, а не формулой — то быстрее руками добавить столбец с простенькой формулой (если число, то =число*%, иначе — то, что было), после чего скопировать столбец и вставить "только значения" в старый и удалить его, повторить для каждого листа (делов на 5 минут)


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.