Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как автоматизировать форматирование для новых файлов - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как автоматизировать форматирование для новых файлов (Макросы/Sub)
Как автоматизировать форматирование для новых файлов
hugitto Дата: Среда, 09.03.2016, 19:57 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Мне нужно как-то автоматизировать следующий процесс для новых файлов. Т.е действия будут совершаться всегда в разных файлах.

Вот сама задача:
1. Нужно выделить определенный столбец с числами и заменить в них . точки на , запятые. Потому как файл изначально в таком формате.
2. Выделенные ячейки с числами переделать в формат Валюта, $.
3. Далее создать 3 правила для выделения другим цветом чисел
- до 10$ один цвет
- от 10$ до 15$ второй цвет
- от 15 и выше третий цвет

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

Вот сама задача:
1. Нужно выделить определенный столбец с числами и заменить в них . точки на , запятые. Потому как файл изначально в таком формате.
2. Выделенные ячейки с числами переделать в формат Валюта, $.
3. Далее создать 3 правила для выделения другим цветом чисел
- до 10$ один цвет
- от 10$ до 15$ второй цвет
- от 15 и выше третий цвет

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

Автор - hugitto
Дата добавления - 09.03.2016 в 19:57
al-Ex Дата: Среда, 09.03.2016, 20:10 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 53 ±
Замечаний: 20% ±

Excel 2010
Т.е действия будут совершаться всегда в разных файлах.
Есть ли вообще какой-нибудь способ это сделать?
Да есть. Макросы размещаются в специальной книге "Личная книга макросов"
Вызываются в любой книге с помощью пользовательских кнопок на панели быстрого доступа, или на ленте.
К вашему первому посту, надо приложить образцы файлов , обработку которых надо будет автоматизировать
с подробным описанием того что и где должно быть выполнено с помощью макроса.


Сообщение отредактировал al-Ex - Среда, 09.03.2016, 20:22
 
Ответить
Сообщение
Т.е действия будут совершаться всегда в разных файлах.
Есть ли вообще какой-нибудь способ это сделать?
Да есть. Макросы размещаются в специальной книге "Личная книга макросов"
Вызываются в любой книге с помощью пользовательских кнопок на панели быстрого доступа, или на ленте.
К вашему первому посту, надо приложить образцы файлов , обработку которых надо будет автоматизировать
с подробным описанием того что и где должно быть выполнено с помощью макроса.

Автор - al-Ex
Дата добавления - 09.03.2016 в 20:10
hugitto Дата: Среда, 09.03.2016, 20:47 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
К вашему первому посту, надо приложить образцы файлов , обработку которых надо будет автоматизировать
с подробным описанием того что и где должно быть выполнено с помощью макроса.

Файл прикрепил.

Отступление:
Шапка остается неизменной, а вниз строки могут добавляться в новых версиях файла (как я сказал файлы будут всегда разные, столбцы меняться не будут а вот строки скорей всего будут).

Вот что нужно сделать:

1. Нужно выделить ячейки в столбце D с числами и заменить в них . точки на , запятые.
2. Выделенные ячейки с числами переделать в формат Валюта, американский $, 1 знак после запятой.
3. Далее создать 3 правила для выделения другим цветом чисел в столбце D
- от 0,1$ до 10$ зеленый цвет
- от 10,1$ до 15$ оранжевый цвет
- от 15,1$ и выше красный цвет
4. Числа в столбце C сделать без точки, цельными. Можно использовать Поиск и замену (я делал так: в поле Найти писал .0, а в поле Заменить на удалял ВСЕ символы)
К сообщению приложен файл: 9722188.xlsx(9Kb)
 
Ответить
Сообщение
К вашему первому посту, надо приложить образцы файлов , обработку которых надо будет автоматизировать
с подробным описанием того что и где должно быть выполнено с помощью макроса.

Файл прикрепил.

Отступление:
Шапка остается неизменной, а вниз строки могут добавляться в новых версиях файла (как я сказал файлы будут всегда разные, столбцы меняться не будут а вот строки скорей всего будут).

Вот что нужно сделать:

1. Нужно выделить ячейки в столбце D с числами и заменить в них . точки на , запятые.
2. Выделенные ячейки с числами переделать в формат Валюта, американский $, 1 знак после запятой.
3. Далее создать 3 правила для выделения другим цветом чисел в столбце D
- от 0,1$ до 10$ зеленый цвет
- от 10,1$ до 15$ оранжевый цвет
- от 15,1$ и выше красный цвет
4. Числа в столбце C сделать без точки, цельными. Можно использовать Поиск и замену (я делал так: в поле Найти писал .0, а в поле Заменить на удалял ВСЕ символы)

Автор - hugitto
Дата добавления - 09.03.2016 в 20:47
МВТ Дата: Среда, 09.03.2016, 21:40 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 135 ±
Замечаний: 0% ±

Excel 2007
Исходя из форумского правила "одна тема - один вопрос", отвечу на первый (а так это похоже на ТЗ, а не на помощь)[vba]
Код
Sub tt()
    Dim arr(), I As Long
    With Range("D7:D" & Cells(Rows.Count, "D").End(xlUp).Row)
        .Replace what:=".", replacement:=","
        arr = .Value
        For I = 1 To UBound(arr)
            arr(I, 1) = Val(arr(I, 1))
        Next
        .NumberFormat = "[$$-409]#,##0.00"
        .Value = arr
    End With
End Sub
[/vba]
 
Ответить
СообщениеИсходя из форумского правила "одна тема - один вопрос", отвечу на первый (а так это похоже на ТЗ, а не на помощь)[vba]
Код
Sub tt()
    Dim arr(), I As Long
    With Range("D7:D" & Cells(Rows.Count, "D").End(xlUp).Row)
        .Replace what:=".", replacement:=","
        arr = .Value
        For I = 1 To UBound(arr)
            arr(I, 1) = Val(arr(I, 1))
        Next
        .NumberFormat = "[$$-409]#,##0.00"
        .Value = arr
    End With
End Sub
[/vba]

Автор - МВТ
Дата добавления - 09.03.2016 в 21:40
hugitto Дата: Среда, 09.03.2016, 22:29 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
отвечу на первый (а так это похоже на ТЗ, а не на помощь)

Спасибо! буду дальше изучать
 
Ответить
Сообщение
отвечу на первый (а так это похоже на ТЗ, а не на помощь)

Спасибо! буду дальше изучать

Автор - hugitto
Дата добавления - 09.03.2016 в 22:29
hugitto Дата: Четверг, 10.03.2016, 15:22 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Извиняюсь, но валюта некорректно обрабатывается. После запятой всегда оказывается 0, а как сделать чтобы показывались десятичные числа вида, 33,4; 12,5. Видимо округление идет в пользу целого числа, а нужно чтобы округлялись десятичные числа.
 
Ответить
СообщениеИзвиняюсь, но валюта некорректно обрабатывается. После запятой всегда оказывается 0, а как сделать чтобы показывались десятичные числа вида, 33,4; 12,5. Видимо округление идет в пользу целого числа, а нужно чтобы округлялись десятичные числа.

Автор - hugitto
Дата добавления - 10.03.2016 в 15:22
nilem Дата: Четверг, 10.03.2016, 17:32 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 1056
Репутация: 399 ±
Замечаний: 0% ±

Excel 2013
hugitto, попробуйте так:
[vba]
Код
Sub ttt()
With Range("D7", Cells(Rows.Count, 4).End(xlUp))
    .NumberFormat = "[$$-409]#,##0.0"
    .Value = Evaluate(.Address & "* 1")
End With
With Range("C7", Cells(Rows.Count, 3).End(xlUp))
    .NumberFormat = "0"
    .Value = Evaluate(.Address & "* 1")
End With

Cells.FormatConditions.Delete
With Range("D7", Cells(Rows.Count, 4).End(xlUp)).FormatConditions
    With .Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="=15,1")
        .Font.Color = vbRed
    End With
    With .Add(Type:=xlCellValue, Operator:=xlBetween, Formula1:="=0,1", Formula2:="=10")
        .Font.Color = vbGreen
    End With
    With .Add(Type:=xlCellValue, Operator:=xlBetween, Formula1:="=10,1", Formula2:="=15")
        .Font.Color = -16727809
    End With
End With
End Sub
[/vba]

[offtop]hugitto - это маленький Hugo? :)[/offtop]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеhugitto, попробуйте так:
[vba]
Код
Sub ttt()
With Range("D7", Cells(Rows.Count, 4).End(xlUp))
    .NumberFormat = "[$$-409]#,##0.0"
    .Value = Evaluate(.Address & "* 1")
End With
With Range("C7", Cells(Rows.Count, 3).End(xlUp))
    .NumberFormat = "0"
    .Value = Evaluate(.Address & "* 1")
End With

Cells.FormatConditions.Delete
With Range("D7", Cells(Rows.Count, 4).End(xlUp)).FormatConditions
    With .Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="=15,1")
        .Font.Color = vbRed
    End With
    With .Add(Type:=xlCellValue, Operator:=xlBetween, Formula1:="=0,1", Formula2:="=10")
        .Font.Color = vbGreen
    End With
    With .Add(Type:=xlCellValue, Operator:=xlBetween, Formula1:="=10,1", Formula2:="=15")
        .Font.Color = -16727809
    End With
End With
End Sub
[/vba]

[offtop]hugitto - это маленький Hugo? :)[/offtop]

Автор - nilem
Дата добавления - 10.03.2016 в 17:32
hugitto Дата: Четверг, 10.03.2016, 18:10 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
попробуйте так:

Супер, огромное спасибище!! Все заработало :) Вы Мастер!
[offtop] Да, он самый.
 
Ответить
Сообщение
попробуйте так:

Супер, огромное спасибище!! Все заработало :) Вы Мастер!
[offtop] Да, он самый.

Автор - hugitto
Дата добавления - 10.03.2016 в 18:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как автоматизировать форматирование для новых файлов (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!