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

Вход

Регистрация

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

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Понедельник, 24.10.2016, 00:02 | Сообщение № 1261 | Тема: Отобразить таблицу с первой ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Так нужно?[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name <> "Лист1" Then
        Application.ScreenUpdating = False
        Select Case Sheets("Лист1").[a2]
            Case 1
                Columns("a:k").Hidden = False
                Columns("l:aa").Hidden = True
                Columns("ab:ak").Hidden = True
            Case 2
                Columns("a:k").Hidden = True
                Columns("l:aa").Hidden = False
                Columns("ab:ak").Hidden = True
            Case 3
                Columns("a:k").Hidden = True
                Columns("l:aa").Hidden = True
                Columns("ab:ak").Hidden = False
            Case Else
                Columns("a:k").Hidden = False
                Columns("l:aa").Hidden = False
                Columns("ab:ak").Hidden = False
        End Select
        Application.Goto Cells.SpecialCells(12).Areas(1).Cells(1, 1), 1
        Application.ScreenUpdating = True
    End If
End Sub
[/vba]


UPD Фигню спорол, исправил
К сообщению приложен файл: Tab1.xls (40.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 24.10.2016, 00:16
 
Ответить
СообщениеЗдравствуйте
Так нужно?[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name <> "Лист1" Then
        Application.ScreenUpdating = False
        Select Case Sheets("Лист1").[a2]
            Case 1
                Columns("a:k").Hidden = False
                Columns("l:aa").Hidden = True
                Columns("ab:ak").Hidden = True
            Case 2
                Columns("a:k").Hidden = True
                Columns("l:aa").Hidden = False
                Columns("ab:ak").Hidden = True
            Case 3
                Columns("a:k").Hidden = True
                Columns("l:aa").Hidden = True
                Columns("ab:ak").Hidden = False
            Case Else
                Columns("a:k").Hidden = False
                Columns("l:aa").Hidden = False
                Columns("ab:ak").Hidden = False
        End Select
        Application.Goto Cells.SpecialCells(12).Areas(1).Cells(1, 1), 1
        Application.ScreenUpdating = True
    End If
End Sub
[/vba]


UPD Фигню спорол, исправил

Автор - krosav4ig
Дата добавления - 24.10.2016 в 00:02
krosav4ig Дата: Вторник, 25.10.2016, 18:17 | Сообщение № 1262 | Тема: правильное копирование функции UDF в книгу макросов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
побочный эффект

он легко лечится
и, кстати, не обязательно сохранять как надстройку, достаточно установить свойство IsAddin при открытии PERSONAL.XLSB
в стандартный модуль личной книги макросов
[vba]
Код
Sub Auto_Open()
    ThisWorkbook.IsAddin = True
    Application.OnKey "%{F8}", "ShowMacro"
End Sub
Sub ShowMacro()
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    Application.ScreenUpdating = False
    With ThisWorkbook
        .IsAddin = False
        wb.Activate
        Application.CommandBars.ExecuteMso "PlayMacro"
        DoEvents
        .IsAddin = True
    End With
    Application.ScreenUpdating = True
End Sub
[/vba]и вместо тыканья по ленте жать Alt+F8


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 25.10.2016, 18:23
 
Ответить
Сообщение
побочный эффект

он легко лечится
и, кстати, не обязательно сохранять как надстройку, достаточно установить свойство IsAddin при открытии PERSONAL.XLSB
в стандартный модуль личной книги макросов
[vba]
Код
Sub Auto_Open()
    ThisWorkbook.IsAddin = True
    Application.OnKey "%{F8}", "ShowMacro"
End Sub
Sub ShowMacro()
    Dim wb As Workbook
    Set wb = ActiveWorkbook
    Application.ScreenUpdating = False
    With ThisWorkbook
        .IsAddin = False
        wb.Activate
        Application.CommandBars.ExecuteMso "PlayMacro"
        DoEvents
        .IsAddin = True
    End With
    Application.ScreenUpdating = True
End Sub
[/vba]и вместо тыканья по ленте жать Alt+F8

Автор - krosav4ig
Дата добавления - 25.10.2016 в 18:17
krosav4ig Дата: Среда, 26.10.2016, 15:36 | Сообщение № 1263 | Тема: правильное копирование функции UDF в книгу макросов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
и чем это проще?

А я и не говорил, что это проще :)
написали, что не отображаются макросы
при нажатии на кнопку "Макросы" на ленте
и я написал костыль для обхода этой проблемы
а если книга ужо была сохранена как надстройка, то можно убрать строку [vba]
Код
ThisWorkbook.IsAddin = True
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 26.10.2016, 15:36
 
Ответить
Сообщение
и чем это проще?

А я и не говорил, что это проще :)
написали, что не отображаются макросы
при нажатии на кнопку "Макросы" на ленте
и я написал костыль для обхода этой проблемы
а если книга ужо была сохранена как надстройка, то можно убрать строку [vba]
Код
ThisWorkbook.IsAddin = True
[/vba]

Автор - krosav4ig
Дата добавления - 26.10.2016 в 15:36
krosav4ig Дата: Четверг, 27.10.2016, 17:43 | Сообщение № 1264 | Тема: Удаление содержимого яч и умножение на число из содержимого
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
до кучи [vba]
Код
Sub dd()
    Dim arr As Variant, arr1 As Variant, i&, s$
    With [A1].CurrentRegion
        With Intersect(.Columns("D").Offset(3), .EntireRow)
            arr = .Value: arr1 = .Offset(, 1).Value
            With CreateObject("vbscript.regexp")
                .Pattern = "([0-99]+)?(\s?\S+).*"
                For i = 1 To UBound(arr)
                    s = "trim(""$2 ""& " & arr1(i, 1) & "*text(0$1,""0;;1""))"
                    arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
                Next
            End With
            Application.ScreenUpdating = False: Application.DisplayAlerts = False
            .Value = arr: .TextToColumns .Cells(1), 1, , , , , , 1
            Application.DisplayAlerts = True: Application.ScreenUpdating = True
        End With
    End With
End Sub
[/vba]
К сообщению приложен файл: 8633877.xlsm (20.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 27.10.2016, 17:48
 
Ответить
Сообщениедо кучи [vba]
Код
Sub dd()
    Dim arr As Variant, arr1 As Variant, i&, s$
    With [A1].CurrentRegion
        With Intersect(.Columns("D").Offset(3), .EntireRow)
            arr = .Value: arr1 = .Offset(, 1).Value
            With CreateObject("vbscript.regexp")
                .Pattern = "([0-99]+)?(\s?\S+).*"
                For i = 1 To UBound(arr)
                    s = "trim(""$2 ""& " & arr1(i, 1) & "*text(0$1,""0;;1""))"
                    arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
                Next
            End With
            Application.ScreenUpdating = False: Application.DisplayAlerts = False
            .Value = arr: .TextToColumns .Cells(1), 1, , , , , , 1
            Application.DisplayAlerts = True: Application.ScreenUpdating = True
        End With
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 27.10.2016 в 17:43
krosav4ig Дата: Пятница, 28.10.2016, 07:36 | Сообщение № 1265 | Тема: Расчет дат и времени окончания работ
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Решение монстроформулой "в лоб"
Код
=РАБДЕНЬ(B4;ОКРУГЛВВЕРХ((D4-K$3+C4+(C4<J$6)*(K$6-J$6))/K$3-J$3+J$6-K$6;0)*(D4>K$3-J$3+J$6-K$6);$G$3:$G$20)+J$3+ОСТАТ(D4-K$3+C4+(C4<J$6)*(K$6-J$6);K$3-J$3+J$6-K$6)+(K$3-C4-(C4<J$6)*(K$6-J$6))*(D4-K$3+C4+(C4<J$6)*(K$6-J$6)=0)+((J$3+ОСТАТ(D4-K$3+C4+(C4<J$6)*(K$6-J$6);K$3-J$3+J$6-K$6))>J$6)*(K$6-J$6)
К сообщению приложен файл: 6900936-1.xls (33.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеРешение монстроформулой "в лоб"
Код
=РАБДЕНЬ(B4;ОКРУГЛВВЕРХ((D4-K$3+C4+(C4<J$6)*(K$6-J$6))/K$3-J$3+J$6-K$6;0)*(D4>K$3-J$3+J$6-K$6);$G$3:$G$20)+J$3+ОСТАТ(D4-K$3+C4+(C4<J$6)*(K$6-J$6);K$3-J$3+J$6-K$6)+(K$3-C4-(C4<J$6)*(K$6-J$6))*(D4-K$3+C4+(C4<J$6)*(K$6-J$6)=0)+((J$3+ОСТАТ(D4-K$3+C4+(C4<J$6)*(K$6-J$6);K$3-J$3+J$6-K$6))>J$6)*(K$6-J$6)

Автор - krosav4ig
Дата добавления - 28.10.2016 в 07:36
krosav4ig Дата: Пятница, 28.10.2016, 19:47 | Сообщение № 1266 | Тема: Удаление содержимого яч и умножение на число из содержимого
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ругается на вот эту строку

arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))

попробуйте вот так погонять
[vba]
Код
Sub dd()
10  On Error GoTo Er
    Dim arr As Variant, arr1 As Variant, i&, s$
20  With [A1].CurrentRegion
30      With Intersect(.Columns("D").Offset(5), .EntireRow)
40          arr = .Value: arr1 = .Offset(, 1).Formula
50          With CreateObject("vbscript.regexp")
60              .Pattern = "([0-9]+)?(\s?\S+).*"
70              For i = 1 To UBound(arr)
80                  If .test(arr(i, 1)) Then
90                      s = "=trim(""$2 ""& 0" & arr1(i, 1) & "*text(0$1,""0;;1""))"
100                     arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
110                 End If
120             Next
130         End With
140         Parent.ScreenUpdating = False: Parent.DisplayAlerts = False
150         .Formula = Parent.Substitute(arr, ".", Parent.DecimalSeparator)
160         .TextToColumns .Cells(1), 1, , , , , , 1
170         Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
180     End With
190 End With
200 Exit Sub
Er:
210 Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
220 With Parent.VBE.MainWindow.LinkedWindows
230     .Add Parent.VBE.Windows("Immediate")
240     .Add Parent.VBE.Windows("Locals")
250 End With
    'Application.VBE.Windows("Immediate").Visible = True
    'Application.VBE.Windows("Locals").Visible = True
260 Debug.Print "Ошибка " & Err.Number & " (" & Err.Description & ") на строке " & Erl
270 Stop
280 Err.Clear
290 Resume Next
End Sub
[/vba]
и посмотреть, что в окошках Locals и Immediate при ошибке
К сообщению приложен файл: 5764018.xlsm (35.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 28.10.2016, 19:50
 
Ответить
Сообщение
ругается на вот эту строку

arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))

попробуйте вот так погонять
[vba]
Код
Sub dd()
10  On Error GoTo Er
    Dim arr As Variant, arr1 As Variant, i&, s$
20  With [A1].CurrentRegion
30      With Intersect(.Columns("D").Offset(5), .EntireRow)
40          arr = .Value: arr1 = .Offset(, 1).Formula
50          With CreateObject("vbscript.regexp")
60              .Pattern = "([0-9]+)?(\s?\S+).*"
70              For i = 1 To UBound(arr)
80                  If .test(arr(i, 1)) Then
90                      s = "=trim(""$2 ""& 0" & arr1(i, 1) & "*text(0$1,""0;;1""))"
100                     arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
110                 End If
120             Next
130         End With
140         Parent.ScreenUpdating = False: Parent.DisplayAlerts = False
150         .Formula = Parent.Substitute(arr, ".", Parent.DecimalSeparator)
160         .TextToColumns .Cells(1), 1, , , , , , 1
170         Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
180     End With
190 End With
200 Exit Sub
Er:
210 Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
220 With Parent.VBE.MainWindow.LinkedWindows
230     .Add Parent.VBE.Windows("Immediate")
240     .Add Parent.VBE.Windows("Locals")
250 End With
    'Application.VBE.Windows("Immediate").Visible = True
    'Application.VBE.Windows("Locals").Visible = True
260 Debug.Print "Ошибка " & Err.Number & " (" & Err.Description & ") на строке " & Erl
270 Stop
280 Err.Clear
290 Resume Next
End Sub
[/vba]
и посмотреть, что в окошках Locals и Immediate при ошибке

Автор - krosav4ig
Дата добавления - 28.10.2016 в 19:47
krosav4ig Дата: Пятница, 28.10.2016, 22:05 | Сообщение № 1267 | Тема: Как табелировать сотрудников автоматичкски
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
для вечерних часов (Z19) массивная формула
Код
=СУММ(ЕСЛИОШИБКА(--ПСТР(ПОДСТАВИТЬ(F18:T20;"/";"     ");ВЫБОР(ТЕКСТ(ПОИСК(1;ПОДСТАВИТЬ(F17:T19;"вч";1));"[>1]2;1");1;5);5);))
К сообщению приложен файл: 4371138.xls (73.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 28.10.2016, 22:41
 
Ответить
Сообщениедля вечерних часов (Z19) массивная формула
Код
=СУММ(ЕСЛИОШИБКА(--ПСТР(ПОДСТАВИТЬ(F18:T20;"/";"     ");ВЫБОР(ТЕКСТ(ПОИСК(1;ПОДСТАВИТЬ(F17:T19;"вч";1));"[>1]2;1");1;5);5);))

Автор - krosav4ig
Дата добавления - 28.10.2016 в 22:05
krosav4ig Дата: Пятница, 28.10.2016, 22:24 | Сообщение № 1268 | Тема: Вставка значений колонки из таблицы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а у нас нет ни таблицы А, ни таблицы Б, ни тем более колонок UchastokNumber
тык


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 28.10.2016, 22:25
 
Ответить
Сообщениеа у нас нет ни таблицы А, ни таблицы Б, ни тем более колонок UchastokNumber
тык

Автор - krosav4ig
Дата добавления - 28.10.2016 в 22:24
krosav4ig Дата: Суббота, 29.10.2016, 04:46 | Сообщение № 1269 | Тема: Текст в Base64 изображение
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Задачка непростая

ну даж ненаю...
с расшифровкой и записью в файл и получением base64 все просто
[vba]
Код
Sub Base64ToFile(Hash$, FilePath$) 'расшифровка base64 и запись в файл
    Dim ByteArr() As Byte
    With CreateObject("MSXML2.DOMDocument").createElement("b64")
        .DataType = "bin.base64"
        .Text = Hash
        ByteArr = .nodeTypedValue
    End With
    Open FilePath For Binary Access Write As #1
    Put #1, 1, ByteArr
    Close #1
End Sub
[/vba]
[vba]
Код
Function Base64FromFile$(FilePath$) 'получение base64 файла
    Dim ByteArr() As Byte
    Open FilePath For Binary Access Read As #1
    ReDim ByteArr(LOF(1))
    Get #1, 1, ByteArr
    Close #1
    With CreateObject("MSXML2.DOMDocument").createElement("b64")
        .DataType = "bin.base64"
        .nodeTypedValue = ByteArr
        Base64FromFile = .Text
    End With
End Function
[/vba]
а вот тут что-то непонятно
переводить текст в изображение


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 29.10.2016, 23:38
 
Ответить
СообщениеЗдравствуйте
Задачка непростая

ну даж ненаю...
с расшифровкой и записью в файл и получением base64 все просто
[vba]
Код
Sub Base64ToFile(Hash$, FilePath$) 'расшифровка base64 и запись в файл
    Dim ByteArr() As Byte
    With CreateObject("MSXML2.DOMDocument").createElement("b64")
        .DataType = "bin.base64"
        .Text = Hash
        ByteArr = .nodeTypedValue
    End With
    Open FilePath For Binary Access Write As #1
    Put #1, 1, ByteArr
    Close #1
End Sub
[/vba]
[vba]
Код
Function Base64FromFile$(FilePath$) 'получение base64 файла
    Dim ByteArr() As Byte
    Open FilePath For Binary Access Read As #1
    ReDim ByteArr(LOF(1))
    Get #1, 1, ByteArr
    Close #1
    With CreateObject("MSXML2.DOMDocument").createElement("b64")
        .DataType = "bin.base64"
        .nodeTypedValue = ByteArr
        Base64FromFile = .Text
    End With
End Function
[/vba]
а вот тут что-то непонятно
переводить текст в изображение

Автор - krosav4ig
Дата добавления - 29.10.2016 в 04:46
krosav4ig Дата: Суббота, 29.10.2016, 04:56 | Сообщение № 1270 | Тема: Указатель мыши в точку координат курсора
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
курсор

что конкретно понимаете под этим словом?
GetCursorPos определяет XY координаты указателя мыши относительно верхнего левого угла рабочего стола(экрана)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 29.10.2016, 04:59
 
Ответить
Сообщение
курсор

что конкретно понимаете под этим словом?
GetCursorPos определяет XY координаты указателя мыши относительно верхнего левого угла рабочего стола(экрана)

Автор - krosav4ig
Дата добавления - 29.10.2016 в 04:56
krosav4ig Дата: Суббота, 29.10.2016, 15:54 | Сообщение № 1271 | Тема: Можно ли в элемент надпись ввести несколько строк
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
В надписях работает Shift+Enter (не на numpad)
если макросом, перевод строки это chr(11)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеВ надписях работает Shift+Enter (не на numpad)
если макросом, перевод строки это chr(11)

Автор - krosav4ig
Дата добавления - 29.10.2016 в 15:54
krosav4ig Дата: Суббота, 29.10.2016, 21:58 | Сообщение № 1272 | Тема: Удаление содержимого яч и умножение на число из содержимого
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
объединенные ячейки

это зло
заменяет точки на запятые

а это ужо я немного накосячил, в строке[vba]
Код
.Formula = Parent.Substitute(arr, ".", Parent.DecimalSeparator)
[/vba] сделал замену на десятичный резделитель
[vba]
Код
Sub dd()
10  On Error GoTo Er
    Dim arr As Variant, arr1 As Variant, i&, s$
20  With [A1].CurrentRegion
30      With Intersect(.Columns("D").Offset(5), .EntireRow)
40          arr = .Value: arr1 = .Offset(, 1).Formula
50          With CreateObject("vbscript.regexp")
60              .Pattern = "([0-9]+)?(\s?\S+).*"
70              For i = 1 To UBound(arr)
80                  If .test(arr(i, 1)) Then
90                      s = "=trim(""$2 ""& 0" & arr1(i, 1) & "*text(0$1,""0;;1""))"
100                     arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
110                 Else: arr(i, 1) = " "
120                 End If
130             Next
140         End With
150         Parent.ScreenUpdating = False: Parent.DisplayAlerts = False
160         .Value = Parent.ReplaceB(arr, Parent.Search(" ", arr), 999, "")
170         .Offset(, 1).Formula = Parent.ReplaceB(arr, 1, Parent.Search(" ", arr), "")
180         Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
190     End With
200   End With
210 Exit Sub
Er:
220 Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
230 With Parent.VBE.MainWindow.LinkedWindows
240     .Add Parent.VBE.Windows("Immediate")
250     .Add Parent.VBE.Windows("Locals")
260 End With
    'Application.VBE.Windows("Immediate").Visible = True
    'Application.VBE.Windows("Locals").Visible = True
270 Debug.Print "Ошибка " & Err.Number & " (" & Err.Description & ") на строке " & Erl
280 Stop
290 Err.Clear
300 Resume Next
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 29.10.2016, 22:04
 
Ответить
Сообщение
объединенные ячейки

это зло
заменяет точки на запятые

а это ужо я немного накосячил, в строке[vba]
Код
.Formula = Parent.Substitute(arr, ".", Parent.DecimalSeparator)
[/vba] сделал замену на десятичный резделитель
[vba]
Код
Sub dd()
10  On Error GoTo Er
    Dim arr As Variant, arr1 As Variant, i&, s$
20  With [A1].CurrentRegion
30      With Intersect(.Columns("D").Offset(5), .EntireRow)
40          arr = .Value: arr1 = .Offset(, 1).Formula
50          With CreateObject("vbscript.regexp")
60              .Pattern = "([0-9]+)?(\s?\S+).*"
70              For i = 1 To UBound(arr)
80                  If .test(arr(i, 1)) Then
90                      s = "=trim(""$2 ""& 0" & arr1(i, 1) & "*text(0$1,""0;;1""))"
100                     arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
110                 Else: arr(i, 1) = " "
120                 End If
130             Next
140         End With
150         Parent.ScreenUpdating = False: Parent.DisplayAlerts = False
160         .Value = Parent.ReplaceB(arr, Parent.Search(" ", arr), 999, "")
170         .Offset(, 1).Formula = Parent.ReplaceB(arr, 1, Parent.Search(" ", arr), "")
180         Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
190     End With
200   End With
210 Exit Sub
Er:
220 Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
230 With Parent.VBE.MainWindow.LinkedWindows
240     .Add Parent.VBE.Windows("Immediate")
250     .Add Parent.VBE.Windows("Locals")
260 End With
    'Application.VBE.Windows("Immediate").Visible = True
    'Application.VBE.Windows("Locals").Visible = True
270 Debug.Print "Ошибка " & Err.Number & " (" & Err.Description & ") на строке " & Erl
280 Stop
290 Err.Clear
300 Resume Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 29.10.2016 в 21:58
krosav4ig Дата: Воскресенье, 30.10.2016, 18:39 | Сообщение № 1273 | Тема: Как табелировать сотрудников автоматичкски
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как работает функция ЕСЛИОШИБКА() в xls

AlexM, Нормально так себе работает, если xls открыт в excel 2007+


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
как работает функция ЕСЛИОШИБКА() в xls

AlexM, Нормально так себе работает, если xls открыт в excel 2007+

Автор - krosav4ig
Дата добавления - 30.10.2016 в 18:39
krosav4ig Дата: Понедельник, 31.10.2016, 19:32 | Сообщение № 1274 | Тема: Выполнение макроса после изменения листа
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
если правильно понял...
в модуль ЭтаКнига
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Dic As Object, K
    With Application: .ScreenUpdating = 0: .EnableEvents = 0
    With Sheets("Служебная записка")
        Set Dic = CreateObject("Scripting.Dictionary")
        Dic("начальнику ОРСА Сиротскому М.С.,") = "38:39"
        Dic("начальнику ОРПО Чекалину Л.В.,") = "42:43"
        Dic("начальнику КТО Лужецкому В.Н.,") = "46:47"
        Dic("начальнику ТО Смирнову М.Н.,") = "50:51"
        Dic("начальнику ЭТО Кондратьеву Л.В.,") = "54:55"
        Dic("начальнику ПНРиТО Хлынину М.В.,") = "58:59"
        .Range(Join(Dic.Items, ",")).EntireRow.Hidden = True
        For Each K In Dic.keys
            Select Case K
                Case .[D17], .[D18], .[D19], .[Q17], .[Q18], .[Q19]
                    .Rows(Dic(K)).Hidden = False
            End Select
        Next
        Set Dic = Nothing
    End With
    .ScreenUpdating = 1: .EnableEvents = 1: End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 31.10.2016, 20:54
 
Ответить
Сообщениеесли правильно понял...
в модуль ЭтаКнига
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Dic As Object, K
    With Application: .ScreenUpdating = 0: .EnableEvents = 0
    With Sheets("Служебная записка")
        Set Dic = CreateObject("Scripting.Dictionary")
        Dic("начальнику ОРСА Сиротскому М.С.,") = "38:39"
        Dic("начальнику ОРПО Чекалину Л.В.,") = "42:43"
        Dic("начальнику КТО Лужецкому В.Н.,") = "46:47"
        Dic("начальнику ТО Смирнову М.Н.,") = "50:51"
        Dic("начальнику ЭТО Кондратьеву Л.В.,") = "54:55"
        Dic("начальнику ПНРиТО Хлынину М.В.,") = "58:59"
        .Range(Join(Dic.Items, ",")).EntireRow.Hidden = True
        For Each K In Dic.keys
            Select Case K
                Case .[D17], .[D18], .[D19], .[Q17], .[Q18], .[Q19]
                    .Rows(Dic(K)).Hidden = False
            End Select
        Next
        Set Dic = Nothing
    End With
    .ScreenUpdating = 1: .EnableEvents = 1: End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 31.10.2016 в 19:32
krosav4ig Дата: Понедельник, 31.10.2016, 20:04 | Сообщение № 1275 | Тема: Как узнать кто работает с файлом с общим доступом?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
наверно как-то так
[vba]
Код
Sub dd()
    Dim wb As Workbook, uSt(), i&
    Set wb = Application.Workbooks("shared.xlsx")
    uSt = wb.UserStatus
    If UBound(uSt) < 2 Then Exit Sub
    For i = 1 To UBound(uSt)
        If uSt(i, 1) <> Application.UserName Then
            Debug.Print "пользователь " & uSt(i, 1) & " открыл книгу " & Format(uSt(i, 2), "dd.MM.yyyy hh:mm")
        End If
    Next
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдравствуйте
наверно как-то так
[vba]
Код
Sub dd()
    Dim wb As Workbook, uSt(), i&
    Set wb = Application.Workbooks("shared.xlsx")
    uSt = wb.UserStatus
    If UBound(uSt) < 2 Then Exit Sub
    For i = 1 To UBound(uSt)
        If uSt(i, 1) <> Application.UserName Then
            Debug.Print "пользователь " & uSt(i, 1) & " открыл книгу " & Format(uSt(i, 2), "dd.MM.yyyy hh:mm")
        End If
    Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 31.10.2016 в 20:04
krosav4ig Дата: Понедельник, 31.10.2016, 20:55 | Сообщение № 1276 | Тема: Выполнение макроса после изменения листа
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
упс :)
исправил


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеупс :)
исправил

Автор - krosav4ig
Дата добавления - 31.10.2016 в 20:55
krosav4ig Дата: Понедельник, 31.10.2016, 21:52 | Сообщение № 1277 | Тема: Как узнать кто работает с файлом с общим доступом?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
shared.xlsx - это что за книга

это имя открытой книги с общим доступом, для которой нужно получить список активных пользователей


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 31.10.2016, 21:53
 
Ответить
Сообщение
shared.xlsx - это что за книга

это имя открытой книги с общим доступом, для которой нужно получить список активных пользователей

Автор - krosav4ig
Дата добавления - 31.10.2016 в 21:52
krosav4ig Дата: Среда, 02.11.2016, 19:58 | Сообщение № 1278 | Тема: Подсчет уникальных значений по двум условиям
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а у мну немассивная получилась
Код
=СУММПРОИЗВ(АГРЕГАТ(15;6;1/СЧЁТЕСЛИМН(A$2:A$29;A$2:A$29;B$2:B$29;B$2:B$29;C$2:C$29;(C$2:C$29=C2)*C2);СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИМН(B$2:B$29;B2;C$2:C$29;C2)))))

тока для Excel 2010+


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 02.11.2016, 19:59
 
Ответить
Сообщениеа у мну немассивная получилась
Код
=СУММПРОИЗВ(АГРЕГАТ(15;6;1/СЧЁТЕСЛИМН(A$2:A$29;A$2:A$29;B$2:B$29;B$2:B$29;C$2:C$29;(C$2:C$29=C2)*C2);СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИМН(B$2:B$29;B2;C$2:C$29;C2)))))

тока для Excel 2010+

Автор - krosav4ig
Дата добавления - 02.11.2016 в 19:58
krosav4ig Дата: Четверг, 03.11.2016, 18:02 | Сообщение № 1279 | Тема: Формула расчета рабочего времени на складе (часы, минуты)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
здравствуйте
слепил монструозную формулу
проверяйте, вдруг правильно
Код
=МАКС(ЕСЛИ(ОТБР(E2)>ОТБР(C2);ВПР(ДЕНЬНЕД(C2;2);{1;20:6;18:7;0};2)/24;ТЕКСТ(E2;"чч:м"))+МИН(-ТЕКСТ(C2;"чч:м");-"9:");)*(ДЕНЬНЕД(C2)>1)+МАКС(СУММ(ЧИСТРАБДНИ.МЕЖД(C2+1;E2-1;{1;11;1};$J$2:$J$20)*{11;9;-9});)/24-(МИН(-ТЕКСТ(E2;"чч:мм");-"9:")+"9:")*(ДЕНЬНЕД(E2)>1)*(ОТБР(E2)>ОТБР(C2))
К сообщению приложен файл: 0765267.xls (61.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 04.11.2016, 02:32
 
Ответить
Сообщениездравствуйте
слепил монструозную формулу
проверяйте, вдруг правильно
Код
=МАКС(ЕСЛИ(ОТБР(E2)>ОТБР(C2);ВПР(ДЕНЬНЕД(C2;2);{1;20:6;18:7;0};2)/24;ТЕКСТ(E2;"чч:м"))+МИН(-ТЕКСТ(C2;"чч:м");-"9:");)*(ДЕНЬНЕД(C2)>1)+МАКС(СУММ(ЧИСТРАБДНИ.МЕЖД(C2+1;E2-1;{1;11;1};$J$2:$J$20)*{11;9;-9});)/24-(МИН(-ТЕКСТ(E2;"чч:мм");-"9:")+"9:")*(ДЕНЬНЕД(E2)>1)*(ОТБР(E2)>ОТБР(C2))

Автор - krosav4ig
Дата добавления - 03.11.2016 в 18:02
krosav4ig Дата: Четверг, 03.11.2016, 21:53 | Сообщение № 1280 | Тема: Формула расчета рабочего времени на складе (часы, минуты)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Посмотрел на свою формулу, увидел, что бред написал, исправил в предыдущем своем посте
вдруг сейчас правильно


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеПосмотрел на свою формулу, увидел, что бред написал, исправил в предыдущем своем посте
вдруг сейчас правильно

Автор - krosav4ig
Дата добавления - 03.11.2016 в 21:53
Поиск:

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