Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помощь в написании макроса, поиск и отбор нужных ячеек 
:(
    Опции темы
Mrak
Дата 8.11.2004, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 16.10.2004

Репутация: нет
Всего: 5



Для начала - здравствуйте!
У меня вот такой вопрос.
Допустим у нас есть столбец под названием "Платеж". Т.е. поступающие в различной валюте платежи расположены в одном столбце. Для примера - две валюты ($ и Руб). Рядом есть два столбца (Рублевые платежи и долларовые платежи). Надо написать макрос, чтобы платежи из общего списка раскидывались по соответствующим своей валюте и считалась общая сумма платежа в каждой валюте.
Поможете?


--------------------
Смерть - не противоположность жизни, а лишь ее часть. (Х. Мураками)
PM MAIL   Вверх
Cashey
Дата 8.11.2004, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



А как идентифицируется валюта с столбце "Платеж"? Указание типа валюты должно присутствовать в той же колонке или в соседней. А иначе как понять в какой валюте указана сумма?


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Mrak
Дата 9.11.2004, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 16.10.2004

Репутация: нет
Всего: 5



Рубли - р.
Доллары - знак $ в конце суммы платежа. И эти суммы расположены друг под другом в разном порядке.



--------------------
Смерть - не противоположность жизни, а лишь ее часть. (Х. Мураками)
PM MAIL   Вверх
Cashey
Дата 9.11.2004, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



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


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Mrak
Дата 10.11.2004, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 16.10.2004

Репутация: нет
Всего: 5



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


--------------------
Смерть - не противоположность жизни, а лишь ее часть. (Х. Мураками)
PM MAIL   Вверх
Guest
Дата 10.11.2004, 12:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А что если для расчетов параллельно сделать скрытые столбцы.
  Вверх
Guest
Дата 10.11.2004, 12:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Старуха
  Вверх
Mrak
Дата 11.11.2004, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 16.10.2004

Репутация: нет
Всего: 5



Цитата(Guest @ 10.11.2004, 12:34)
А что если для расчетов параллельно сделать скрытые столбцы.

Было бы отлично, если бы знать как? Я не знаю, где это установить.


--------------------
Смерть - не противоположность жизни, а лишь ее часть. (Х. Мураками)
PM MAIL   Вверх
Гость_Старуха
Дата 11.11.2004, 13:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А таблица в какой -то программе (может в xl)?
  Вверх
Гость_Старуха
Дата 11.11.2004, 15:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
ПСТР и Значен
-Похоже ты в xl.
Формат-Столбец-Скрыть
И еще
=C1&"$" может пригодиться.(к значению в С1 прицепить знак доллара)

  Вверх
Mrak
Дата 12.11.2004, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 16.10.2004

Репутация: нет
Всего: 5



А с кодом на VBA не поможете? С помощью автофильтра и промежуточных значений, скрывая столбцы где они расположены - работает, но когда второй раз запускаешь комп надолго задумывается, так что без кода на VBA не обойтись. Не поможете хотя бы примерно с кодом?


--------------------
Смерть - не противоположность жизни, а лишь ее часть. (Х. Мураками)
PM MAIL   Вверх
Гость_Старуха
Дата 12.11.2004, 09:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я сделаю сегодня.Может отправить не получится с работы .Тогда вечером из дома отправлю.
  Вверх
Гость_Старуха
Дата 12.11.2004, 14:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Это если на одном листе делать
Код

Private Sub CommandButton1_Click()
Dim a As String
d = Лист1.UsedRange.Rows.Count
For rwIndex = 1 To d '2 - начальная строчка, d - конечная
Range("C" & rwIndex).Value = Mid((Range("A" & rwIndex).Text), (Len(Range("A" & rwIndex).Text) - 2), 3)
'отсекаем Руб(У тебя так написано)
If Range("C" & rwIndex).Value = "Руб" Then
'если ячейка в D равна Руб
Range("D" & rwIndex).Value = Left((Range("A" & rwIndex).Text), (Len(Range("A" & rwIndex).Text) - 2) - 1)
'будет число
Range("E" & rwIndex).Value = 0
'будет ноль
Else
'если ячейка в D не равна Руб
Range("E" & rwIndex).Value = Left((Range("A" & rwIndex).Text), (Len(Range("A" & rwIndex).Text)) - 1)
Range("D" & rwIndex).Value = 0
End If
Next
End Sub

  Вверх
Staruha
Дата 14.11.2004, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Запрос на выборку.Исполняется впервые.
Вобщем этот код рааскидывает по листам
Код

Private Sub CommandButton1_Click()

Лист2.Columns("A:B").ClearContents 'Очищаем листы
Лист3.Columns("A:C").ClearContents

d = Лист1.UsedRange.Rows.Count

For rwIndex = 1 To d


Range("D" & rwIndex).Value = Mid((Range("A" & rwIndex).Text), (Len(Range("A" & rwIndex).Text) - 2), 3)
'Отсекаем руб
If Range("D" & rwIndex).Value = "Руб" Then
Range("B" & rwIndex).Value = Left((Range("A" & rwIndex).Text), (Len(Range("A" & rwIndex).Text) - 2) - 1)
Range("C" & rwIndex).Value = 0
Лист2.Range("A2", "B2").Value = Range("A" & rwIndex, "B" & rwIndex).Value
Лист2.Rows("2").Insert Shift:=xlDown

Else
Range("C" & rwIndex).Value = Left((Range("A" & rwIndex).Text), (Len(Range("A" & rwIndex).Text)) - 1)
Range("B" & rwIndex).Value = 0
Лист3.Range("A2", "C2").Value = Range("A" & rwIndex, "C" & rwIndex).Value
Лист3.Rows("2").Insert Shift:=xlDown
End If
Next
  Лист3.Columns("B").Delete Shift:=xlToLeft 'Удаляем столбец
'Лист3.Columns("B").Hidden = True 'Так потом скроешь столбцы
End Sub



--------------------
Возмездие настигнет
PM MAIL   Вверх
Mrak
Дата 14.11.2004, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 16.10.2004

Репутация: нет
Всего: 5



Огромное спасибо!! smile . Все работает отлично. Эх, жаль что нельзя поднять репутацию. Значит еще раз спасибоsmile)

Это сообщение отредактировал(а) Mrak - 14.11.2004, 12:34


--------------------
Смерть - не противоположность жизни, а лишь ее часть. (Х. Мураками)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.