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

Вход

Регистрация

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

 

= Мир MS Excel/Получение денежного символа из ячейки с денежным форматом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение денежного символа из ячейки с денежным форматом (Макросы/Sub)
Получение денежного символа из ячейки с денежным форматом
Vagmat Дата: Суббота, 01.08.2020, 22:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Привет,
Необходимо сформировать строку, например: "Проезд 12.34 Р (документы прилагаются)."
Денежный символ постоянно меняется.
Ниже пример, как пробовал, но так форматируется только число без подставления денежного символа.

[vba]
Код
Sheets(2).Cells(Row, Coll) ="Проезд " & Format(Summ, Sheets(1).Cells(Row, Coll).NumberFormatLocal) & " (документы прилагаются)."
[/vba]

Как скопировать денежный символ из ячейки, имеющий денежный формат, и применить его к числу, которое уже вставить в строку?
По идее необходимо сделать аналог FormatCurrency, но только брать денежный формат с уже настроенной ранее ячейки.


Сообщение отредактировал Vagmat - Суббота, 01.08.2020, 23:24
 
Ответить
СообщениеПривет,
Необходимо сформировать строку, например: "Проезд 12.34 Р (документы прилагаются)."
Денежный символ постоянно меняется.
Ниже пример, как пробовал, но так форматируется только число без подставления денежного символа.

[vba]
Код
Sheets(2).Cells(Row, Coll) ="Проезд " & Format(Summ, Sheets(1).Cells(Row, Coll).NumberFormatLocal) & " (документы прилагаются)."
[/vba]

Как скопировать денежный символ из ячейки, имеющий денежный формат, и применить его к числу, которое уже вставить в строку?
По идее необходимо сделать аналог FormatCurrency, но только брать денежный формат с уже настроенной ранее ячейки.

Автор - Vagmat
Дата добавления - 01.08.2020 в 22:55
Hugo Дата: Суббота, 01.08.2020, 23:49 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Привет.
Помню делали как-то технично, но не помню как...
Решение в лоб:
[vba]
Код

Function nmbf(r As Range)
    nmbf = Split(Split(r.NumberFormat, "[$", 2)(1), "-", 2)(0)
End Function
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеПривет.
Помню делали как-то технично, но не помню как...
Решение в лоб:
[vba]
Код

Function nmbf(r As Range)
    nmbf = Split(Split(r.NumberFormat, "[$", 2)(1), "-", 2)(0)
End Function
[/vba]

Автор - Hugo
Дата добавления - 01.08.2020 в 23:49
Vagmat Дата: Вторник, 04.08.2020, 22:47 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Благодарю за подсказку.
Что бы не морочиться с перебором строк сделал следующим образом:
1 Беру интересующий формат из ячейки .NumberFormatLocal
2 Присваиваю его свободной ячейки
3 Вставляю в эту ячейку полученную сумму
4 Из ячейки получаю значение через .Text
5 Формирую необходимую строку из "бла бла" & ххх.Text и вставляю в необходимую ячейку
6 Очищаю ячейку из п.2
 
Ответить
СообщениеБлагодарю за подсказку.
Что бы не морочиться с перебором строк сделал следующим образом:
1 Беру интересующий формат из ячейки .NumberFormatLocal
2 Присваиваю его свободной ячейки
3 Вставляю в эту ячейку полученную сумму
4 Из ячейки получаю значение через .Text
5 Формирую необходимую строку из "бла бла" & ххх.Text и вставляю в необходимую ячейку
6 Очищаю ячейку из п.2

Автор - Vagmat
Дата добавления - 04.08.2020 в 22:47
Gustav Дата: Вторник, 04.08.2020, 23:50 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2697
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Application.International(xlCurrencyCode) - не оно?

В Окне отладки VBA выводится, правда, как знак вопроса:
[vba]
Код
? Application.International(xlCurrencyCode)
?
[/vba]
Но в ячейку загоняется нормально и потом в ней нормально отображается
[vba]
Код
Range("A1") = Application.International(xlCurrencyCode)
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 04.08.2020, 23:55
 
Ответить
СообщениеApplication.International(xlCurrencyCode) - не оно?

В Окне отладки VBA выводится, правда, как знак вопроса:
[vba]
Код
? Application.International(xlCurrencyCode)
?
[/vba]
Но в ячейку загоняется нормально и потом в ней нормально отображается
[vba]
Код
Range("A1") = Application.International(xlCurrencyCode)
[/vba]

Автор - Gustav
Дата добавления - 04.08.2020 в 23:50
Hugo Дата: Среда, 05.08.2020, 10:13 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Вот пример того как живёт тема без примера...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВот пример того как живёт тема без примера...

Автор - Hugo
Дата добавления - 05.08.2020 в 10:13
Vagmat Дата: Четверг, 06.08.2020, 20:51 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Была идея скопировать полностью формат, но что-то пошло не так, поэтому было решено получить знак. Но имея знак нужно понимать куда его поставить в начале или в конце, а это дополнительные действия.
Поэтому нашел выход разными копированиями, но тут важно, что бы в ячейку из которой берем .Text влазило значение иначе, если не влезет, то скопируется строка "" или "####".

Sheets(2).Cells(Row, Coll) = Sheets(2).Cells(Row, Coll) & StringCreation(Summ)

Function StringCreation(StrBegin As Variant) As String
Dim Str As String

Sheets(1).Cells(96, "CG").NumberFormatLocal = Sheets(1).Cells(96, "S").NumberFormatLocal
Sheets(1).Cells(96, "CG").Value = StrBegin
Str = Sheets(1).Cells(96, "CG").Text
Sheets(1).Cells(96, "CG").ClearContents
StringCreation = Str
End Function
 
Ответить
СообщениеБыла идея скопировать полностью формат, но что-то пошло не так, поэтому было решено получить знак. Но имея знак нужно понимать куда его поставить в начале или в конце, а это дополнительные действия.
Поэтому нашел выход разными копированиями, но тут важно, что бы в ячейку из которой берем .Text влазило значение иначе, если не влезет, то скопируется строка "" или "####".

Sheets(2).Cells(Row, Coll) = Sheets(2).Cells(Row, Coll) & StringCreation(Summ)

Function StringCreation(StrBegin As Variant) As String
Dim Str As String

Sheets(1).Cells(96, "CG").NumberFormatLocal = Sheets(1).Cells(96, "S").NumberFormatLocal
Sheets(1).Cells(96, "CG").Value = StrBegin
Str = Sheets(1).Cells(96, "CG").Text
Sheets(1).Cells(96, "CG").ClearContents
StringCreation = Str
End Function

Автор - Vagmat
Дата добавления - 06.08.2020 в 20:51
Pelena Дата: Четверг, 06.08.2020, 20:54 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Vagmat, оформите код тегами с помощью кнопки # в режиме правки поста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеVagmat, оформите код тегами с помощью кнопки # в режиме правки поста

Автор - Pelena
Дата добавления - 06.08.2020 в 20:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение денежного символа из ячейки с денежным форматом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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