Доброго времени суток всем. Есть файл печати накладных средствами ексель. Все отлично работает, но макрос не считает копейки - он округляет итоговую сумму до целого. Также макрос записывает полученную сумму прописью, но без учета копеек. Хотелось бы попросить помощи у понимающих код людей с форума в решении этих 2х проблем. То есть, научить макрос считать кроме рублей копейки и дописывать их прописью к уже написанной прописью суммы в рублях. Надеюсь, изложил понятно, файл прилагаю. Буду благодарен за помощь.
Доброго времени суток всем. Есть файл печати накладных средствами ексель. Все отлично работает, но макрос не считает копейки - он округляет итоговую сумму до целого. Также макрос записывает полученную сумму прописью, но без учета копеек. Хотелось бы попросить помощи у понимающих код людей с форума в решении этих 2х проблем. То есть, научить макрос считать кроме рублей копейки и дописывать их прописью к уже написанной прописью суммы в рублях. Надеюсь, изложил понятно, файл прилагаю. Буду благодарен за помощь.AlexSer
Nic70y, Добрый день. Был, конечно, но применить выложенные в той теме формулы в свой файл с макросом у меня не вышло. К тому же я не понимаю почему мой файл в итоговой сумме не считает копейки. Поэтому решил создать новую тему.
Nic70y, Добрый день. Был, конечно, но применить выложенные в той теме формулы в свой файл с макросом у меня не вышло. К тому же я не понимаю почему мой файл в итоговой сумме не считает копейки. Поэтому решил создать новую тему.AlexSer
Уважаемый RAN, я совсем не знаток VBA, то, что Вы написали мне мало о чем говорит. В тему "Вопросы по VBA" я написал, так как файл писал не я, а он создан на макросах, и хотелось в уже имеющемся варианте сделать соответствующие изменения, о которых и написано в первом сообщении. Я пытался заменить макрос подсчета итогов и прописывание их прописью на формулы из той темы, что указал Nic70y, но у меня переставал работать уже имеющийся функционал в файле (Печать/Сохранить + формула постоянно "улезала" из своей ячейки при нажатии Enter на строке для создания новой). Возможно, что я стирал что-либо лишнее в коде. Если изменить/дописать сам макрос сложно, то подскажите куда что вставить (формулу) с удалением предыдущего макроса, чтоб считалась сумма с копейками, и это число писалось прописью, но при этом оставшийся функционал файла работал.
Уважаемый RAN, я совсем не знаток VBA, то, что Вы написали мне мало о чем говорит. В тему "Вопросы по VBA" я написал, так как файл писал не я, а он создан на макросах, и хотелось в уже имеющемся варианте сделать соответствующие изменения, о которых и написано в первом сообщении. Я пытался заменить макрос подсчета итогов и прописывание их прописью на формулы из той темы, что указал Nic70y, но у меня переставал работать уже имеющийся функционал в файле (Печать/Сохранить + формула постоянно "улезала" из своей ячейки при нажатии Enter на строке для создания новой). Возможно, что я стирал что-либо лишнее в коде. Если изменить/дописать сам макрос сложно, то подскажите куда что вставить (формулу) с удалением предыдущего макроса, чтоб считалась сумма с копейками, и это число писалось прописью, но при этом оставшийся функционал файла работал.AlexSer
Тот, кто писал это макрос, не понятно для чего, написал его так, что вместо 2 (возможно 3-5) исправлений в действительно нужных местах, нужно внести исправления еще в 100500 мест. замените все total& на total. там , в первом коде есть комментарий, но немного дурной. замена Long на Double даст возможность считать копейки, а не работу с большими числами.
Тот, кто писал это макрос, не понятно для чего, написал его так, что вместо 2 (возможно 3-5) исправлений в действительно нужных местах, нужно внести исправления еще в 100500 мест. замените все total& на total. там , в первом коде есть комментарий, но немного дурной. замена Long на Double даст возможность считать копейки, а не работу с большими числами.RAN
В Sub SummaStringThree(Summa$, TempValue As Long в TempValue& передается total. и все они, по всему коду должны иметь один тип данных. возможно, что-то еще куда-то передается. отслеживать все это - задача совершенно не интересная.
В Sub SummaStringThree(Summa$, TempValue As Long в TempValue& передается total. и все они, по всему коду должны иметь один тип данных. возможно, что-то еще куда-то передается. отслеживать все это - задача совершенно не интересная.RAN
RAN, Если с макросом все сложно, то возможно ли удалить процедуру, считающую итоговую сумму (Итого на сумму:) и (Сумма прописью:), заменив ее на формулы Ексель в самом листе? Поедет ли оставшийся код?
RAN, Если с макросом все сложно, то возможно ли удалить процедуру, считающую итоговую сумму (Итого на сумму:) и (Сумма прописью:), заменив ее на формулы Ексель в самом листе? Поедет ли оставшийся код?AlexSer
Не понял как там всё вообще работает и где именно что нужно получить (ну недосуг так рыться), но ведь можно просто от итоговой суммы что идёт в пропись отнять сумму без копеек (ну или как угодно высчитать копейки) и добавить копейки к результату. P.S. Посмотрел чуть пристальнее - чтоб заработало можно так: 1. в коде убираете до конца процедуры всё что идёт после [vba]
Код
' updating receipt total cost
[/vba] 2. Сумму считаете обычной формулой типа
Код
=СУММ($F$8:$F$100)
3. Для суммы прописью используете любую другую UDF, я например так в ячейку забил:
Код
="( " & СуммаПрописью(B17) & " )"
Не понял как там всё вообще работает и где именно что нужно получить (ну недосуг так рыться), но ведь можно просто от итоговой суммы что идёт в пропись отнять сумму без копеек (ну или как угодно высчитать копейки) и добавить копейки к результату. P.S. Посмотрел чуть пристальнее - чтоб заработало можно так: 1. в коде убираете до конца процедуры всё что идёт после [vba]
Код
' updating receipt total cost
[/vba] 2. Сумму считаете обычной формулой типа
Код
=СУММ($F$8:$F$100)
3. Для суммы прописью используете любую другую UDF, я например так в ячейку забил:
Hugo, спасибо за Ваши решения. Сделал, как Вы сказали. Все теперь работает, как надо. http://prntscr.com/imdi59 А вот можно вопрос такой, сейчас, если удалить любое наименование из уже созданного списка (не строку целиком), то сумма итоговая не пересчитывается (видимо, после удаления оставшегося кода перестало проверяться это условие). Можно ли вернуть это как-то или нет?
Hugo, спасибо за Ваши решения. Сделал, как Вы сказали. Все теперь работает, как надо. http://prntscr.com/imdi59 А вот можно вопрос такой, сейчас, если удалить любое наименование из уже созданного списка (не строку целиком), то сумма итоговая не пересчитывается (видимо, после удаления оставшегося кода перестало проверяться это условие). Можно ли вернуть это как-то или нет?AlexSer
У меня пересчитывается. Ведь если удалить любое слагаемое - формула суммы пересчитается, а значит изменится и источник для суммы прописью. Ну а удаление наименования конечно не влияет, нужно сумму удалять.
У меня пересчитывается. Ведь если удалить любое слагаемое - формула суммы пересчитается, а значит изменится и источник для суммы прописью. Ну а удаление наименования конечно не влияет, нужно сумму удалять.Hugo
Да, я имел ввиду именно наименование. В изначальном варианте при его удалении сумма не удалялась, но из итоговой суммы вычиталась эта позиция. Ну да ладно, нужно просто строку удалять целиком и будет считаться правильно. ) Спасибо за помощь в решении предыдущих вопросов!
Да, я имел ввиду именно наименование. В изначальном варианте при его удалении сумма не удалялась, но из итоговой суммы вычиталась эта позиция. Ну да ладно, нужно просто строку удалять целиком и будет считаться правильно. ) Спасибо за помощь в решении предыдущих вопросов!AlexSer