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

Вход

Регистрация

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

 

= Мир MS Excel/Дизайн постов - Страница 9 - Мир MS Excel

Старая форма входа
Дизайн постов
Serge_007 Дата: Среда, 08.02.2012, 12:34 | Сообщение № 161
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[vba]
Code
=ЕСЛИ(И(РАЗНДАТ(B1;A1;"y")>10;РАЗНДАТ(B1;A1;"y")<15);РАЗНДАТ(B1;A1;"y")&"    

лет";ЕСЛИ(ИЛИ(И(ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)>"4";ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)<="9");;

ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)="0");РАЗНДАТ(B1;A1;"y")&" лет";ЕСЛИ(ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)="1";

РАЗНДАТ(B1;A1;"y")&" год";РАЗНДАТ(B1;A1;"y")&"    

года")))&","&ЕСЛИ(РАЗНДАТ(B1;A1;"m")>0;РАЗНДАТ(B1;A1;"m")-РАЗНДАТ(B1;A1;"y")*12;РАЗНДАТ(B1;A1;"m"))&

ПРОСМОТР(ЕСЛИ(РАЗНДАТ(B1;A1;"m")>0;РАЗНДАТ(B1;A1;"m")-РАЗНДАТ(B1;A1;"y")*12;РАЗНДАТ(B1;A1;"m"));

{0:1:2:5};{" месяцев":" месяц":" месяца":" месяцев"})&","&ЕСЛИ((36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+ДЕНЬ(A1)-

ДЕНЬ(B1)>=36-ДЕНЬ(A1+36-ДЕНЬ(A1));ДЕНЬ(A1)-ДЕНЬ(B1);(36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+(ДЕНЬ(A1)-ДЕНЬ(B1)))&"    

"&ПРОСМОТР(ЕСЛИ((36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+ДЕНЬ(A1)-ДЕНЬ(B1)>=36-ДЕНЬ(A1+36-ДЕНЬ(A1));ДЕНЬ(A1)-ДЕНЬ(B1);

(36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+(ДЕНЬ(A1)-ДЕНЬ(B1)));{0:1:2:5:21:22:25:31};

{"дней":"день":"дня":"дней":"день":"дня":"дней":"день"})
[/vba]

Что-то цветом выделяется.
В любом случае, для формул я другое оформление хочу.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[vba]
Code
=ЕСЛИ(И(РАЗНДАТ(B1;A1;"y")>10;РАЗНДАТ(B1;A1;"y")<15);РАЗНДАТ(B1;A1;"y")&"    

лет";ЕСЛИ(ИЛИ(И(ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)>"4";ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)<="9");;

ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)="0");РАЗНДАТ(B1;A1;"y")&" лет";ЕСЛИ(ПРАВСИМВ(РАЗНДАТ(B1;A1;"y");1)="1";

РАЗНДАТ(B1;A1;"y")&" год";РАЗНДАТ(B1;A1;"y")&"    

года")))&","&ЕСЛИ(РАЗНДАТ(B1;A1;"m")>0;РАЗНДАТ(B1;A1;"m")-РАЗНДАТ(B1;A1;"y")*12;РАЗНДАТ(B1;A1;"m"))&

ПРОСМОТР(ЕСЛИ(РАЗНДАТ(B1;A1;"m")>0;РАЗНДАТ(B1;A1;"m")-РАЗНДАТ(B1;A1;"y")*12;РАЗНДАТ(B1;A1;"m"));

{0:1:2:5};{" месяцев":" месяц":" месяца":" месяцев"})&","&ЕСЛИ((36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+ДЕНЬ(A1)-

ДЕНЬ(B1)>=36-ДЕНЬ(A1+36-ДЕНЬ(A1));ДЕНЬ(A1)-ДЕНЬ(B1);(36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+(ДЕНЬ(A1)-ДЕНЬ(B1)))&"    

"&ПРОСМОТР(ЕСЛИ((36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+ДЕНЬ(A1)-ДЕНЬ(B1)>=36-ДЕНЬ(A1+36-ДЕНЬ(A1));ДЕНЬ(A1)-ДЕНЬ(B1);

(36-ДЕНЬ(A1+36-ДЕНЬ(A1)))+(ДЕНЬ(A1)-ДЕНЬ(B1)));{0:1:2:5:21:22:25:31};

{"дней":"день":"дня":"дней":"день":"дня":"дней":"день"})
[/vba]

Что-то цветом выделяется.
В любом случае, для формул я другое оформление хочу.

Автор - Serge_007
Дата добавления - 08.02.2012 в 12:34
Alex_ST Дата: Среда, 08.02.2012, 12:53 | Сообщение № 162
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Да... Корявенько получается.
Не думал, что там всё так запутано...
А почему цифры то синие, то красные?
Да и с распознаванием стрингов по кавычкам и "обсериванию" ( shy ) текста внутри них - тоже как-то глючно: то серит, то не серит, то кавычки захватит, то нет...
А для того, чтобы удобно было юзать (когда всё отладится), нужно будет на панели ввода ответа сделать отдельные кнопки обрамления тэгами: "Monotype" ( {code}...{/code} ), "VBA code" ( {vba}{code}...{/code}{/vba} ), "Formula" ( {frm}{code}...{/code}{/frm} )



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеДа... Корявенько получается.
Не думал, что там всё так запутано...
А почему цифры то синие, то красные?
Да и с распознаванием стрингов по кавычкам и "обсериванию" ( shy ) текста внутри них - тоже как-то глючно: то серит, то не серит, то кавычки захватит, то нет...
А для того, чтобы удобно было юзать (когда всё отладится), нужно будет на панели ввода ответа сделать отдельные кнопки обрамления тэгами: "Monotype" ( {code}...{/code} ), "VBA code" ( {vba}{code}...{/code}{/vba} ), "Formula" ( {frm}{code}...{/code}{/frm} )

Автор - Alex_ST
Дата добавления - 08.02.2012 в 12:53
Serge_007 Дата: Среда, 08.02.2012, 13:41 | Сообщение № 163
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Alex_ST)
нужно будет на панели ввода ответа сделать отдельные кнопки обрамления тэгами

Две уже есть smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Alex_ST)
нужно будет на панели ввода ответа сделать отдельные кнопки обрамления тэгами

Две уже есть smile

Автор - Serge_007
Дата добавления - 08.02.2012 в 13:41
nerv Дата: Среда, 08.02.2012, 22:44 | Сообщение № 164
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (Alex_ST)
Только не понятно, почему код обрамляется в двойные тэги {vba}{code}...{/code}{/vba}

На то есть причина: тег [code]...[\code] обрабатывается Ucoz'ом как содержащий код. Если его не будет, то все отступы в начале строк будут съедены. Стоит отметить, что Ucoz довольно странно расставляет отступы. Если в оригинале 4-е пробела, то укоз скорее всего покажет 5, 6 или хз знает сколько) Пришлось за ним подчищать.
[vba]...[/vba] необходим для парсинга. Работает как идентификатор.
Quote (Alex_ST)
Вопрос к тому, что все ранее выложенные на форуме коды оформлены простыми тэгами {code}...{/code} и, естественно, новая фича на них никак не повлияла.

Тут соглашусь с Сергеем, лучше формулы и код разделить. Хотя, можно попытаться обработать формулы, при условии, что они не содержат перевода строк (т.к. код парсится построчно). При таком подходе будут выделены строки и числовые литералы.
Quote (Alex_ST)
К стати, а какой там внутри шрифт теперь?

Courier New
Quote (Alex_ST)
А почему цифры то синие, то красные?

Потому, что парсинг такого рода задача нетривиальная) Я допустил ошибку [и не одну] в реге. Если будет время, исправлю, плюс постараюсь увеличить скорость обработки.
Quote (Alex_ST)
распознаванием стрингов по кавычкам и "обсериванию"

Алекс, ты мне всегда нравился за то, что умел подбирать слова))) Такая ерунда из-за переводов строк. Повторюсь, парсинг производится построчно.


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Среда, 08.02.2012, 22:47
 
Ответить
Сообщение
Quote (Alex_ST)
Только не понятно, почему код обрамляется в двойные тэги {vba}{code}...{/code}{/vba}

На то есть причина: тег [code]...[\code] обрабатывается Ucoz'ом как содержащий код. Если его не будет, то все отступы в начале строк будут съедены. Стоит отметить, что Ucoz довольно странно расставляет отступы. Если в оригинале 4-е пробела, то укоз скорее всего покажет 5, 6 или хз знает сколько) Пришлось за ним подчищать.
[vba]...[/vba] необходим для парсинга. Работает как идентификатор.
Quote (Alex_ST)
Вопрос к тому, что все ранее выложенные на форуме коды оформлены простыми тэгами {code}...{/code} и, естественно, новая фича на них никак не повлияла.

Тут соглашусь с Сергеем, лучше формулы и код разделить. Хотя, можно попытаться обработать формулы, при условии, что они не содержат перевода строк (т.к. код парсится построчно). При таком подходе будут выделены строки и числовые литералы.
Quote (Alex_ST)
К стати, а какой там внутри шрифт теперь?

Courier New
Quote (Alex_ST)
А почему цифры то синие, то красные?

Потому, что парсинг такого рода задача нетривиальная) Я допустил ошибку [и не одну] в реге. Если будет время, исправлю, плюс постараюсь увеличить скорость обработки.
Quote (Alex_ST)
распознаванием стрингов по кавычкам и "обсериванию"

Алекс, ты мне всегда нравился за то, что умел подбирать слова))) Такая ерунда из-за переводов строк. Повторюсь, парсинг производится построчно.

Автор - nerv
Дата добавления - 08.02.2012 в 22:44
Гость Дата: Среда, 08.02.2012, 22:56 | Сообщение № 165
Группа: Гости
Quote (nerv)
Алекс, ты мне всегда нравился за то, что умел подбирать слова)))

Я честно старался! Изначально написал "засеривание", но потом решил смягчить до "обсеривания" smile

Лень логиниться...
Это я, Alex_St
 
Ответить
Сообщение
Quote (nerv)
Алекс, ты мне всегда нравился за то, что умел подбирать слова)))

Я честно старался! Изначально написал "засеривание", но потом решил смягчить до "обсеривания" smile

Лень логиниться...
Это я, Alex_St

Автор - Гость
Дата добавления - 08.02.2012 в 22:56
Alex_ST Дата: Пятница, 10.02.2012, 12:32 | Сообщение № 166
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Да... При длинных комментариях в коде получается не очень: экран расширяется
[vba]
Code
Sub Save_Copy_As()
'---------------------------------------------------------------------------------------
' Procedure    : Save_Copy_As
' Author       : Alex_ST
' DateTime     : 07.02.2012, 17:05
' URL          : http://www.excelworld.ru/forum/3-1293-14737-16-1328619875
' Purpose      : Сохранение копии активного файла
' Notes        : Путь сохранения копий хранится в  коллекции .Names книги (в именованном диапазоне)
'---------------------------------------------------------------------------------------
       Const sPath_in_Names = "Path4SaveCopyAs"   ' имя элемента коллекции .Names, в котором должен храниться путь для сохранения копий файла
       Dim sSuff$: sSuff = " [" & Format(Now, "yyyy/mm/dd hh-mm'ss''") & "]"    ' суффикс к имени файла копии - дата и время сохренения копии файла
       Dim FileName, sExp$, sDirPath$, sFullFilePath$, sNewPath$
       Dim bReadOnlyRecommended As Boolean
       With ActiveWorkbook
          FileName = .Name   ' например, "Книга1.xls"
          sExp = Right(FileName, Len(FileName) - InStrRev(FileName, ".") + 1)   ' расширение файла вместе с точкой (например, ".xls")
          FileName = Left(FileName, Len(FileName) - Len(sExp)) & sSuff & sExp   ' например, "Книга1 [2012.02.06 15-24'39''].xls"
          On Error Resume Next
          sDirPath = .Names(sPath_in_Names).Value   ' считать из коллекции .Names значение, ранее сохраненное под именем sPath_in_Names
          If Err Then .Names.Add sPath_in_Names, .Path & "\": sDirPath = .Names(sPath_in_Names).Value   ' если считать не удалось, значит путь ранее не задавался и он для первого раза задаётся равным ActiveWorkbook.Path
          sDirPath = Mid(sDirPath, 3, Len(sDirPath) - 3)   ' убрать из считанного значения в начале "= и в конце "
          sDirPath = sDirPath & IIf(Right(sDirPath, 1) = "\", "", "\")  ' на всякий случай (если имя было задано в ручную и при этом не верно - без слэша)
          .Names(sPath_in_Names).Value = sDirPath   ' запомнить путь сохранения копий в коллекции .Names под именем sPath_in_Names
          sFullFilePath = sDirPath & FileName   ' полный путь сохранения вместе с полным именем копии
REPEAT_:
          FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath, _
                       FileFilter:="Excel Files (*" & sExp & "), *" & sExp & ", All Files (*.*),*.*", _
                       Title:="Сохранение копии файла")   'задать путь сохранения и имя копии файла в окне выбора
          If VarType(FileName) = vbBoolean Then Exit Sub   ' если нажали "Отмена", то FileName = False, если "Сохранить" - полный путь к файлу вместе с его именем
          If FileName = .FullName Then MsgBox "Здесь нельзя сохранить файл под таким именем!", 16, "Ошибка": GoTo REPEAT_
          sDirPath = Left(FileName, InStrRev(FileName, "\"))   ' путь к папке сохранения копий без имени файла
          .Names(sPath_in_Names).Value = sDirPath   ' запомнить выбранный в диалоге путь в коллекции .Names под именем sPath_in_Names
          bReadOnlyRecommended = .ReadOnlyRecommended   ' запомнить параметры исходного файла
          .ReadOnlyRecommended = --(MsgBox("Рекомендовать открывать файл только для чтения?", 36) - 7)   ' MsgBox Argument 4==vbYesNo 32==vbQuestion, MsgBox Return Values: vbYes=6, vbNo=7
          .SaveCopyAs FileName
          .ReadOnlyRecommended = bReadOnlyRecommended   ' восстановить параметры исходного файла
       End With
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 10.02.2012, 12:34
 
Ответить
СообщениеДа... При длинных комментариях в коде получается не очень: экран расширяется
[vba]
Code
Sub Save_Copy_As()
'---------------------------------------------------------------------------------------
' Procedure    : Save_Copy_As
' Author       : Alex_ST
' DateTime     : 07.02.2012, 17:05
' URL          : http://www.excelworld.ru/forum/3-1293-14737-16-1328619875
' Purpose      : Сохранение копии активного файла
' Notes        : Путь сохранения копий хранится в  коллекции .Names книги (в именованном диапазоне)
'---------------------------------------------------------------------------------------
       Const sPath_in_Names = "Path4SaveCopyAs"   ' имя элемента коллекции .Names, в котором должен храниться путь для сохранения копий файла
       Dim sSuff$: sSuff = " [" & Format(Now, "yyyy/mm/dd hh-mm'ss''") & "]"    ' суффикс к имени файла копии - дата и время сохренения копии файла
       Dim FileName, sExp$, sDirPath$, sFullFilePath$, sNewPath$
       Dim bReadOnlyRecommended As Boolean
       With ActiveWorkbook
          FileName = .Name   ' например, "Книга1.xls"
          sExp = Right(FileName, Len(FileName) - InStrRev(FileName, ".") + 1)   ' расширение файла вместе с точкой (например, ".xls")
          FileName = Left(FileName, Len(FileName) - Len(sExp)) & sSuff & sExp   ' например, "Книга1 [2012.02.06 15-24'39''].xls"
          On Error Resume Next
          sDirPath = .Names(sPath_in_Names).Value   ' считать из коллекции .Names значение, ранее сохраненное под именем sPath_in_Names
          If Err Then .Names.Add sPath_in_Names, .Path & "\": sDirPath = .Names(sPath_in_Names).Value   ' если считать не удалось, значит путь ранее не задавался и он для первого раза задаётся равным ActiveWorkbook.Path
          sDirPath = Mid(sDirPath, 3, Len(sDirPath) - 3)   ' убрать из считанного значения в начале "= и в конце "
          sDirPath = sDirPath & IIf(Right(sDirPath, 1) = "\", "", "\")  ' на всякий случай (если имя было задано в ручную и при этом не верно - без слэша)
          .Names(sPath_in_Names).Value = sDirPath   ' запомнить путь сохранения копий в коллекции .Names под именем sPath_in_Names
          sFullFilePath = sDirPath & FileName   ' полный путь сохранения вместе с полным именем копии
REPEAT_:
          FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath, _
                       FileFilter:="Excel Files (*" & sExp & "), *" & sExp & ", All Files (*.*),*.*", _
                       Title:="Сохранение копии файла")   'задать путь сохранения и имя копии файла в окне выбора
          If VarType(FileName) = vbBoolean Then Exit Sub   ' если нажали "Отмена", то FileName = False, если "Сохранить" - полный путь к файлу вместе с его именем
          If FileName = .FullName Then MsgBox "Здесь нельзя сохранить файл под таким именем!", 16, "Ошибка": GoTo REPEAT_
          sDirPath = Left(FileName, InStrRev(FileName, "\"))   ' путь к папке сохранения копий без имени файла
          .Names(sPath_in_Names).Value = sDirPath   ' запомнить выбранный в диалоге путь в коллекции .Names под именем sPath_in_Names
          bReadOnlyRecommended = .ReadOnlyRecommended   ' запомнить параметры исходного файла
          .ReadOnlyRecommended = --(MsgBox("Рекомендовать открывать файл только для чтения?", 36) - 7)   ' MsgBox Argument 4==vbYesNo 32==vbQuestion, MsgBox Return Values: vbYes=6, vbNo=7
          .SaveCopyAs FileName
          .ReadOnlyRecommended = bReadOnlyRecommended   ' восстановить параметры исходного файла
       End With
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 10.02.2012 в 12:32
nerv Дата: Пятница, 10.02.2012, 13:26 | Сообщение № 167
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Надо, чтобы Серега в css файле закомментировал строку
white-space: nowrap;

т.е. она будет иметь вид
/* white-space: nowrap; */


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Пятница, 10.02.2012, 13:27
 
Ответить
СообщениеНадо, чтобы Серега в css файле закомментировал строку
white-space: nowrap;

т.е. она будет иметь вид
/* white-space: nowrap; */

Автор - nerv
Дата добавления - 10.02.2012 в 13:26
Serge_007 Дата: Пятница, 10.02.2012, 13:57 | Сообщение № 168
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Закомментил

[vba]
Code
Sub Save_Copy_As()
'---------------------------------------------------------------------------------------
' Procedure    : Save_Copy_As
' Author       : Alex_ST
' DateTime     : 07.02.2012, 17:05
' URL          : http://www.excelworld.ru/forum/3-1293-14737-16-1328619875
' Purpose      : Сохранение копии активного файла
' Notes        : Путь сохранения копий хранится в  коллекции .Names книги (в именованном диапазоне)
'---------------------------------------------------------------------------------------
     Const sPath_in_Names = "Path4SaveCopyAs"   ' имя элемента коллекции .Names, в котором должен храниться путь для сохранения копий файла
     Dim sSuff$: sSuff = " [" & Format(Now, "yyyy/mm/dd hh-mm'ss''") & "]"    ' суффикс к имени файла копии - дата и время сохренения копии файла
     Dim FileName, sExp$, sDirPath$, sFullFilePath$, sNewPath$
     Dim bReadOnlyRecommended As Boolean
     With ActiveWorkbook
         FileName = .Name   ' например, "Книга1.xls"
         sExp = Right(FileName, Len(FileName) - InStrRev(FileName, ".") + 1)   ' расширение файла вместе с точкой (например, ".xls")
         FileName = Left(FileName, Len(FileName) - Len(sExp)) & sSuff & sExp   ' например, "Книга1 [2012.02.06 15-24'39''].xls"
         On Error Resume Next
         sDirPath = .Names(sPath_in_Names).Value   ' считать из коллекции .Names значение, ранее сохраненное под именем sPath_in_Names
         If Err Then .Names.Add sPath_in_Names, .Path & "\": sDirPath = .Names(sPath_in_Names).Value   ' если считать не удалось, значит путь ранее не задавался и он для первого раза задаётся равным ActiveWorkbook.Path
         sDirPath = Mid(sDirPath, 3, Len(sDirPath) - 3)   ' убрать из считанного значения в начале "= и в конце "
         sDirPath = sDirPath & IIf(Right(sDirPath, 1) = "\", "", "\")  ' на всякий случай (если имя было задано в ручную и при этом не верно - без слэша)
         .Names(sPath_in_Names).Value = sDirPath   ' запомнить путь сохранения копий в коллекции .Names под именем sPath_in_Names
         sFullFilePath = sDirPath & FileName   ' полный путь сохранения вместе с полным именем копии
REPEAT_:
         FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath, _
                     FileFilter:="Excel Files (*" & sExp & "), *" & sExp & ", All Files (*.*),*.*", _
                     Title:="Сохранение копии файла")   'задать путь сохранения и имя копии файла в окне выбора
         If VarType(FileName) = vbBoolean Then Exit Sub   ' если нажали "Отмена", то FileName = False, если "Сохранить" - полный путь к файлу вместе с его именем
         If FileName = .FullName Then MsgBox "Здесь нельзя сохранить файл под таким именем!", 16, "Ошибка": GoTo REPEAT_
         sDirPath = Left(FileName, InStrRev(FileName, "\"))   ' путь к папке сохранения копий без имени файла
         .Names(sPath_in_Names).Value = sDirPath   ' запомнить выбранный в диалоге путь в коллекции .Names под именем sPath_in_Names
         bReadOnlyRecommended = .ReadOnlyRecommended   ' запомнить параметры исходного файла
         .ReadOnlyRecommended = --(MsgBox("Рекомендовать открывать файл только для чтения?", 36) - 7)   ' MsgBox Argument 4==vbYesNo 32==vbQuestion, MsgBox Return Values: vbYes=6, vbNo=7
         .SaveCopyAs FileName
         .ReadOnlyRecommended = bReadOnlyRecommended   ' восстановить параметры исходного файла
     End With
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗакомментил

[vba]
Code
Sub Save_Copy_As()
'---------------------------------------------------------------------------------------
' Procedure    : Save_Copy_As
' Author       : Alex_ST
' DateTime     : 07.02.2012, 17:05
' URL          : http://www.excelworld.ru/forum/3-1293-14737-16-1328619875
' Purpose      : Сохранение копии активного файла
' Notes        : Путь сохранения копий хранится в  коллекции .Names книги (в именованном диапазоне)
'---------------------------------------------------------------------------------------
     Const sPath_in_Names = "Path4SaveCopyAs"   ' имя элемента коллекции .Names, в котором должен храниться путь для сохранения копий файла
     Dim sSuff$: sSuff = " [" & Format(Now, "yyyy/mm/dd hh-mm'ss''") & "]"    ' суффикс к имени файла копии - дата и время сохренения копии файла
     Dim FileName, sExp$, sDirPath$, sFullFilePath$, sNewPath$
     Dim bReadOnlyRecommended As Boolean
     With ActiveWorkbook
         FileName = .Name   ' например, "Книга1.xls"
         sExp = Right(FileName, Len(FileName) - InStrRev(FileName, ".") + 1)   ' расширение файла вместе с точкой (например, ".xls")
         FileName = Left(FileName, Len(FileName) - Len(sExp)) & sSuff & sExp   ' например, "Книга1 [2012.02.06 15-24'39''].xls"
         On Error Resume Next
         sDirPath = .Names(sPath_in_Names).Value   ' считать из коллекции .Names значение, ранее сохраненное под именем sPath_in_Names
         If Err Then .Names.Add sPath_in_Names, .Path & "\": sDirPath = .Names(sPath_in_Names).Value   ' если считать не удалось, значит путь ранее не задавался и он для первого раза задаётся равным ActiveWorkbook.Path
         sDirPath = Mid(sDirPath, 3, Len(sDirPath) - 3)   ' убрать из считанного значения в начале "= и в конце "
         sDirPath = sDirPath & IIf(Right(sDirPath, 1) = "\", "", "\")  ' на всякий случай (если имя было задано в ручную и при этом не верно - без слэша)
         .Names(sPath_in_Names).Value = sDirPath   ' запомнить путь сохранения копий в коллекции .Names под именем sPath_in_Names
         sFullFilePath = sDirPath & FileName   ' полный путь сохранения вместе с полным именем копии
REPEAT_:
         FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath, _
                     FileFilter:="Excel Files (*" & sExp & "), *" & sExp & ", All Files (*.*),*.*", _
                     Title:="Сохранение копии файла")   'задать путь сохранения и имя копии файла в окне выбора
         If VarType(FileName) = vbBoolean Then Exit Sub   ' если нажали "Отмена", то FileName = False, если "Сохранить" - полный путь к файлу вместе с его именем
         If FileName = .FullName Then MsgBox "Здесь нельзя сохранить файл под таким именем!", 16, "Ошибка": GoTo REPEAT_
         sDirPath = Left(FileName, InStrRev(FileName, "\"))   ' путь к папке сохранения копий без имени файла
         .Names(sPath_in_Names).Value = sDirPath   ' запомнить выбранный в диалоге путь в коллекции .Names под именем sPath_in_Names
         bReadOnlyRecommended = .ReadOnlyRecommended   ' запомнить параметры исходного файла
         .ReadOnlyRecommended = --(MsgBox("Рекомендовать открывать файл только для чтения?", 36) - 7)   ' MsgBox Argument 4==vbYesNo 32==vbQuestion, MsgBox Return Values: vbYes=6, vbNo=7
         .SaveCopyAs FileName
         .ReadOnlyRecommended = bReadOnlyRecommended   ' восстановить параметры исходного файла
     End With
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 10.02.2012 в 13:57
Alex_ST Дата: Пятница, 10.02.2012, 14:54 | Сообщение № 169
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (Serge_007)
Закомментил

Ну, вы, блин, ващще!
Всё поломали cry



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (Serge_007)
Закомментил

Ну, вы, блин, ващще!
Всё поломали cry

Автор - Alex_ST
Дата добавления - 10.02.2012 в 14:54
RAN Дата: Пятница, 10.02.2012, 19:28 | Сообщение № 170
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (Alex_ST)
Ну, вы, блин, ващще!
Всё поломали Alex_ST

А что, отличия появились?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (Alex_ST)
Ну, вы, блин, ващще!
Всё поломали Alex_ST

А что, отличия появились?

Автор - RAN
Дата добавления - 10.02.2012 в 19:28
Alex_ST Дата: Пятница, 10.02.2012, 21:24 | Сообщение № 171
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (RAN)
А что, отличия появились?

А что, это только у меня на Мозилле и на работе и дома это так выглядит?
К сообщению приложен файл: 4768063.jpg (28.3 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (RAN)
А что, отличия появились?

А что, это только у меня на Мозилле и на работе и дома это так выглядит?

Автор - Alex_ST
Дата добавления - 10.02.2012 в 21:24
Serge_007 Дата: Пятница, 10.02.2012, 22:12 | Сообщение № 172
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
У меня дома так же


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеУ меня дома так же

Автор - Serge_007
Дата добавления - 10.02.2012 в 22:12
Hugo Дата: Пятница, 10.02.2012, 23:05 | Сообщение № 173
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
У меня и на работе на Эксплорере и дома на хроме код ничем от простого текста не отличается. Точно поломали - ведь раньше очень хорошо было - на сереньком фоне...
[vba]
Code
вот где текст, а где код?
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеУ меня и на работе на Эксплорере и дома на хроме код ничем от простого текста не отличается. Точно поломали - ведь раньше очень хорошо было - на сереньком фоне...
[vba]
Code
вот где текст, а где код?
[/vba]

Автор - Hugo
Дата добавления - 10.02.2012 в 23:05
Serge_007 Дата: Пятница, 10.02.2012, 23:14 | Сообщение № 174
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Hugo)
раньше очень хорошо было - на сереньком фоне

Это и сейчас можно сделать если в теги [cоde][/cоde] макрос заключать, а не в [vbа][cоde][/cоde][/vbа]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Hugo)
раньше очень хорошо было - на сереньком фоне

Это и сейчас можно сделать если в теги [cоde][/cоde] макрос заключать, а не в [vbа][cоde][/cоde][/vbа]

Автор - Serge_007
Дата добавления - 10.02.2012 в 23:14
nerv Дата: Пятница, 10.02.2012, 23:15 | Сообщение № 175
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±



Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщениекачай, заменяй)

http://nepiu.narod.ru/links/vba/style_vbastyle.zip

Автор - nerv
Дата добавления - 10.02.2012 в 23:15
Serge_007 Дата: Пятница, 10.02.2012, 23:18 | Сообщение № 176
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Заменил


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗаменил

Автор - Serge_007
Дата добавления - 10.02.2012 в 23:18
RAN Дата: Суббота, 11.02.2012, 14:29 | Сообщение № 177
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А у меня всегда так выглядело.
К сообщению приложен файл: 2112565.jpg (37.0 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА у меня всегда так выглядело.

Автор - RAN
Дата добавления - 11.02.2012 в 14:29
nerv Дата: Понедельник, 13.02.2012, 14:57 | Сообщение № 178
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Мы тут с Серегой совместными усилиями вроде как заставили скрипт работать чуть быстрее + немного умнее (в рамках возможного) стал парсить.


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
СообщениеМы тут с Серегой совместными усилиями вроде как заставили скрипт работать чуть быстрее + немного умнее (в рамках возможного) стал парсить.

Автор - nerv
Дата добавления - 13.02.2012 в 14:57
Serge_007 Дата: Понедельник, 13.02.2012, 15:05 | Сообщение № 179
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (nerv)
Мы тут с Серегой...
Не скромничай smile
Усилиями Александра, на нашем форуме появилась возможность красиво и читабельно оформлять коды VBA.
Спасибо тебе!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (nerv)
Мы тут с Серегой...
Не скромничай smile
Усилиями Александра, на нашем форуме появилась возможность красиво и читабельно оформлять коды VBA.
Спасибо тебе!

Автор - Serge_007
Дата добавления - 13.02.2012 в 15:05
Alex_ST Дата: Понедельник, 13.02.2012, 17:19 | Сообщение № 180
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Мне нравится. Спасибо, мужики!
Поюзаем, посмотрим.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеМне нравится. Спасибо, мужики!
Поюзаем, посмотрим.

Автор - Alex_ST
Дата добавления - 13.02.2012 в 17:19
Поиск:

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