Blog of Khlebalin Dmitriy

(Записки из мира IT…)

Фотоприколы (часть 154).

Традиционно по пятницам, подборка понравившихся мне фотографий, на безграничных просторах интернета, для поднятия настроения…

241

242

243

244

245

246

247

248

 

250

251

252

254

255

257

 

321

258

320

259

 

260

318

Всем хороших выходных !!!

 

31.10.2014 Posted by | фотоприколы... | Комментарии к записи Фотоприколы (часть 154). отключены

Новое время, траблы Windows XP.

В минувшие выходные мы снова стали жить по новому, перевели время на час назад. Все бы не плохо, но у нас в компании Windows XP+Office2010 (мы только в начале долгого пути по переходу на Windows8.1+Office365), компания Microsoft любезно сообщила, что так как Windows XP более не поддерживается, никаких патчей больше не будет (наверно это правильно, но на Upgrade всей компании требуется время, в текущих реалиях всесторонней экономии все происходит достаточно не быстро).

 

snap

В итоге понедельник выдался насыщенным и продуктивным 😦

Вариантов решения проблемы с Windows XP несколько (для версий Windows 7,8,8.1 достаточно просто скачать и установить обновления и все будет ГУД):

— Просто изменить часовой пояс, выбрав, например Найроби +03:00

— Править реестр

— Или «откатить» когда-то ранее установленное обновление KB2570791

Мы как обычно пошли по пути наименьшего сопротивления :  изменить часовой пояс, выбрав, например Найроби +03:00. Все неплохо время поменялось, все остались довольны, но возникла одна интересная коллизия:

На компьютере время правильное, но в аутлуке встречи в календаре стали приходить на час раньше, это стало большой проблемой для многих так как графики работы и встреч достаточно плотные.

Начали искать решение проблемы…

Большинство сайтов конечно же рекомендует обновить Windows XP до более свежих версий, соответственно Windows7,8,8.1, но сейчас это не наш путь.

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

Реестр править тоже не хотелось.

Здесь нам помогла интересная утилита: tzedit.exe.

Запускаем ее под админскими правами, выбираем часовой пояс +04:00 Moscow правим его Edit с +04:00 на +03:00

snap1

Сохраняем все, вновь открываем Outlook, присылаем в ящик пользователю Собрание и все корректно отображается.

Всем хорошей работы !!!

 

 

 

 

30.10.2014 Posted by | ms windows xp | 1 комментарий

Сумма прописью Excel.

Сегодня девушки из бухгалтерии попросили поправить екселевский файлик так, чтоб цифра в ячейке в ячейке прописывалась прописью…( 1С умеет это делать штатными средствами, а вот ёксель вероятно нет)

1 вариант

Встроенных функций я не обнаружил, как это сделать с помощью простой формулы, моего «скудного» ума тоже не хватило, пришлось использовать вариант на VBA.

  1. открываем ёксель
  2. нажмаем сочетание клавиш ALT+F11, чтобы открыть редактор Visual Basic
  3. добавляем новый пустой модуль через меню Insert — Module
  4. копируем и вставляем туда текст этой функции:
Function СУММАПРОПИСЬЮ(n As Double) As String
 
 Dim Nums1, Nums2, Nums3, Nums4 As Variant
 
 Nums1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 Nums2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", _
                        "восемьдесят ", "девяносто ")
 Nums3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", _
                        "восемьсот ", "девятьсот ")
 Nums4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 Nums5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", _
                        "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
 
 If n <= 0 Then
   СУММАПРОПИСЬЮ = "ноль"
   Exit Function
 End If
 'разделяем число на разряды, используя вспомогательную функцию Class
 ed = Class(n, 1)
 dec = Class(n, 2)
 sot = Class(n, 3)
 tys = Class(n, 4)
 dectys = Class(n, 5)
 sottys = Class(n, 6)
 mil = Class(n, 7)
 decmil = Class(n, 8)
 
 'проверяем миллионы
 Select Case decmil
   Case 1
     mil_txt = Nums5(mil) & "миллионов "
     GoTo www
   Case 2 To 9
     decmil_txt = Nums2(decmil)
 End Select
 Select Case mil
   Case 1
     mil_txt = Nums1(mil) & "миллион "
   Case 2, 3, 4
     mil_txt = Nums1(mil) & "миллиона "
   Case  5 To 20
     mil_txt = Nums1(mil) & "миллионов "
 End Select
 www:
 sottys_txt = Nums3(sottys)
 'проверяем тысячи
 Select Case dectys
   Case 1
     tys_txt = Nums5(tys) & "тысяч "
     GoTo eee
   Case 2 To 9
     dectys_txt = Nums2(dectys)
 End Select
 Select Case tys
   Case 0
     If dectys > 0 Then tys_txt = Nums4(tys) & "тысяч "
   Case 1
     tys_txt = Nums4(tys) & "тысяча "
   Case 2, 3, 4
     tys_txt = Nums4(tys) & "тысячи "
   Case 5 To 9
     tys_txt = Nums4(tys) & "тысяч "
 End Select
 If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тысяч "
 eee:
 sot_txt = Nums3(sot)
 'проверяем десятки
 Select Case dec
   Case 1
     ed_txt = Nums5(ed)
     GoTo rrr
   Case 2 To 9
     dec_txt = Nums2(dec)
 End Select
 
 ed_txt = Nums1(ed)
 rrr:
 'формируем итоговую строку
 СУММАПРОПИСЬЮ = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt
End Function
 
'вспомогательная функция для выделения из числа разрядов
Private Function Class(M, I)
  Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1))
End Function

 Сохраняем файл, не забывая при этом разрешить выполнение VBA:

snap

Теперь можно вставить созданную функцию в любую ячейку листа этой книги обычным способом — через мастер функций (кнопка fx в строке формул, категория Определенные пользователем) или просто набрав ее в ячейке вручную и указав в качестве аргумента ячейку с суммой:

snap2

Если вам необходимо добавить к полученному тексту копейки, то можно воспользоваться чуть более сложной конструкцией:

=СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»

=СУММАПРОПИСЬЮ(A3)&» руб. «&TEXT((A3-INT(A3))*100;»00″)&» коп.»

Тогда, например, для числа 40,11 результат функции будет выглядеть как «сорок руб. 11 коп.»

или 2 вариант

Для отображения прописью в Microsoft Excel 2010/2013/2016  необходимо скачать надстройку   NUM2TEXT , сохранить на компьютере в любую папку, и затем добавить в надстройки как показано ниже на картинках.

После выполнения указанных операций функция «Сумма_прописью» и «Пропись_суммой» будут доступны…

Или можно выбрать мышкой

Всем хорошей работы !!!

P.S. Если существует решение реализуемое простой формулой (без использования VBA), для общего кругозора, прошу написать варианты в комментариях…

29.10.2014 Posted by | ms office 2003/2007/2010/2013/365 | 2 комментария