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

Вход

Регистрация

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

 

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

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

Excel 2007,2010,2013
Код
=G3-F3-ОТБР((G3-ОКРВНИЗ(F3-8;7)-8)/7)


and_evg, ваша формула будет выдавать ошибочный результат, если начальная и конечная даты в разных годах


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Код
=G3-F3-ОТБР((G3-ОКРВНИЗ(F3-8;7)-8)/7)


and_evg, ваша формула будет выдавать ошибочный результат, если начальная и конечная даты в разных годах

Автор - krosav4ig
Дата добавления - 16.02.2018 в 15:53
krosav4ig Дата: Пятница, 16.02.2018, 02:41 | Сообщение № 782 | Тема: Удаление двух строк через интервал в большом массиве
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
до кучи Sub [vba]
Код
dd()
    With ActiveSheet.UsedRange
        With Intersect(.SpecialCells(xlCellTypeConstants, 23).EntireRow, .Columns)
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C1"
        End With
        .Formula = .Value
        .Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        .Cut [A1]
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедо кучи Sub [vba]
Код
dd()
    With ActiveSheet.UsedRange
        With Intersect(.SpecialCells(xlCellTypeConstants, 23).EntireRow, .Columns)
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C1"
        End With
        .Formula = .Value
        .Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        .Cut [A1]
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 16.02.2018 в 02:41
krosav4ig Дата: Четверг, 15.02.2018, 20:05 | Сообщение № 783 | Тема: Простановка времени только на измененные ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Как-то так

Нужно условие добавить
[vba]
Код
Sub ss()

Sheets("Лист2").Select
lr = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
lr2 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr2
On Error Resume Next
V = Sheets("Лист2").Cells(i, 1).Value
m = Application.WorksheetFunction.VLookup(V, Sheets("Лист1").Range("A1:B" & lr2), 2, False)

If Not IsEmpty(m) Then Cells(i, 2).Value = Cells(i, 2).Value - m

Next i

End Sub
[/vba]
и еще вариант до кучи
[vba]
Код
Sub ss()
    Dim i&, m As Variant
    With Sheets("Лист2")
        For Each v In .[A1].CurrentRegion.Columns(1).Value
            i = i + 1
            m = Application.VLookup(v, Sheets("Лист1").[A1].CurrentRegion, 2, False)
            With .Cells(i, 2)
            If Not IsEmpty(m) Then .Value = .Value - m
            End With
        Next
    End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Четверг, 15.02.2018, 20:08
 
Ответить
СообщениеКак-то так

Нужно условие добавить
[vba]
Код
Sub ss()

Sheets("Лист2").Select
lr = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
lr2 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr2
On Error Resume Next
V = Sheets("Лист2").Cells(i, 1).Value
m = Application.WorksheetFunction.VLookup(V, Sheets("Лист1").Range("A1:B" & lr2), 2, False)

If Not IsEmpty(m) Then Cells(i, 2).Value = Cells(i, 2).Value - m

Next i

End Sub
[/vba]
и еще вариант до кучи
[vba]
Код
Sub ss()
    Dim i&, m As Variant
    With Sheets("Лист2")
        For Each v In .[A1].CurrentRegion.Columns(1).Value
            i = i + 1
            m = Application.VLookup(v, Sheets("Лист1").[A1].CurrentRegion, 2, False)
            With .Cells(i, 2)
            If Not IsEmpty(m) Then .Value = .Value - m
            End With
        Next
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 15.02.2018 в 20:05
krosav4ig Дата: Четверг, 15.02.2018, 02:25 | Сообщение № 784 | Тема: Сумма в формуле с динамическим диапазоном
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
"=Sum(G8:G5000)"

"G8:G" & lr

Ни на какие мысли не наталкивает?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
"=Sum(G8:G5000)"

"G8:G" & lr

Ни на какие мысли не наталкивает?

Автор - krosav4ig
Дата добавления - 15.02.2018 в 02:25
krosav4ig Дата: Вторник, 13.02.2018, 20:34 | Сообщение № 785 | Тема: Конкатенация и суммирование ячеек по циклу
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте
Как-то так
[vba]
Код
Sub sdf()
    Dim Dic As Object
    Dim sh As Worksheet
    Dim r As Range, w As Range, c As Range
    Dim arr() As Variant, arr1 As Variant
    Dim i, j, k, l, m, n, o
    
    Set Dic = CreateObject("scripting.dictionary")
    For Each w In Sheets("Criteria").Cells.SpecialCells(xlCellTypeConstants, 1).Areas
        With w.Offset(-1, -1).Resize(1, 1)
            n = Abs(Mid(.Value, InStrRev(.Value, "(")))
        End With
        For Each c In w.Offset(, -1)
            Dic(n & "_" & c) = c.Offset(, 1)
        Next
    Next
    With Sheets("Result(было)")
        m = .UsedRange.Columns.Count
        n = .Columns(1).SpecialCells(xlCellTypeConstants, 23).Areas.Count
        Set r = .[A1].CurrentRegion
        ReDim arr(1 To n * m, 1 To 6)
        For i = 1 To n
            For j = 1 To m
                o = (i - 1) * m + j
                If Not IsEmpty(r(1, j)) Then
                    For k = 1 To 3
                       arr(o, k) = r(k, j)
                    Next
                    l = 0
                    For k = 4 To r.Rows.Count
                        l = l + Dic(arr(o, 2) & "_" & r(k, j))
                    Next
                    If l Then arr(o, 5) = l
                    s = ""
                    On Error Resume Next
                    With r.Columns(j)
                        arr1 = Intersect(.Offset(3), .Cells).SpecialCells(xlCellTypeConstants, 23)
                        If IsArray(arr1) Then
                            s = Join(Application.Transpose(arr1), "_")
                        ElseIf Not IsEmpty(arr1) Then
                            s = arr1
                        End If
                        Erase arr1
                    End With
                    arr(o, 6) = s
                End If
            Next
            Set r = r.End(xlDown).End(xlDown).CurrentRegion
            n = n + 1
        Next
    End With
    Application.ScreenUpdating = 0: Application.EnableEvents = 0
    With Sheets("+++++").UsedRange
        Intersect(.Offset(1), .Cells).Clear
        .Cells(4, 1).Resize(o, 6).Value = arr
    End With
    Application.ScreenUpdating = 1: Application.EnableEvents = 1
    Set Dic = Nothing
    Set r = Nothing
    Set w = Nothing
    Set c = Nothing
    Erase arr
End Sub
[/vba]
К сообщению приложен файл: 9251001.xlsm (29.0 Kb)


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

Сообщение отредактировал krosav4ig - Вторник, 13.02.2018, 20:34
 
Ответить
СообщениеЗдравствуйте
Как-то так
[vba]
Код
Sub sdf()
    Dim Dic As Object
    Dim sh As Worksheet
    Dim r As Range, w As Range, c As Range
    Dim arr() As Variant, arr1 As Variant
    Dim i, j, k, l, m, n, o
    
    Set Dic = CreateObject("scripting.dictionary")
    For Each w In Sheets("Criteria").Cells.SpecialCells(xlCellTypeConstants, 1).Areas
        With w.Offset(-1, -1).Resize(1, 1)
            n = Abs(Mid(.Value, InStrRev(.Value, "(")))
        End With
        For Each c In w.Offset(, -1)
            Dic(n & "_" & c) = c.Offset(, 1)
        Next
    Next
    With Sheets("Result(было)")
        m = .UsedRange.Columns.Count
        n = .Columns(1).SpecialCells(xlCellTypeConstants, 23).Areas.Count
        Set r = .[A1].CurrentRegion
        ReDim arr(1 To n * m, 1 To 6)
        For i = 1 To n
            For j = 1 To m
                o = (i - 1) * m + j
                If Not IsEmpty(r(1, j)) Then
                    For k = 1 To 3
                       arr(o, k) = r(k, j)
                    Next
                    l = 0
                    For k = 4 To r.Rows.Count
                        l = l + Dic(arr(o, 2) & "_" & r(k, j))
                    Next
                    If l Then arr(o, 5) = l
                    s = ""
                    On Error Resume Next
                    With r.Columns(j)
                        arr1 = Intersect(.Offset(3), .Cells).SpecialCells(xlCellTypeConstants, 23)
                        If IsArray(arr1) Then
                            s = Join(Application.Transpose(arr1), "_")
                        ElseIf Not IsEmpty(arr1) Then
                            s = arr1
                        End If
                        Erase arr1
                    End With
                    arr(o, 6) = s
                End If
            Next
            Set r = r.End(xlDown).End(xlDown).CurrentRegion
            n = n + 1
        Next
    End With
    Application.ScreenUpdating = 0: Application.EnableEvents = 0
    With Sheets("+++++").UsedRange
        Intersect(.Offset(1), .Cells).Clear
        .Cells(4, 1).Resize(o, 6).Value = arr
    End With
    Application.ScreenUpdating = 1: Application.EnableEvents = 1
    Set Dic = Nothing
    Set r = Nothing
    Set w = Nothing
    Set c = Nothing
    Erase arr
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 13.02.2018 в 20:34
krosav4ig Дата: Вторник, 13.02.2018, 18:45 | Сообщение № 786 | Тема: Как сделать автоматическую нумерацию таблицы?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
kvest, а если потом нужно таблицу скопировать, например, в другую книгу на Лист2 в С7? deal
[vba]
Код
=СТРОКА()-СТРОКА([#Заголовки])
[/vba]


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

Сообщение отредактировал krosav4ig - Вторник, 13.02.2018, 18:45
 
Ответить
Сообщениеkvest, а если потом нужно таблицу скопировать, например, в другую книгу на Лист2 в С7? deal
[vba]
Код
=СТРОКА()-СТРОКА([#Заголовки])
[/vba]

Автор - krosav4ig
Дата добавления - 13.02.2018 в 18:45
krosav4ig Дата: Вторник, 13.02.2018, 17:40 | Сообщение № 787 | Тема: Выборка повторяющихся значений из базы данных Эксель
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сводная, построенная через мастер сводных таблиц и диаграмм
К сообщению приложен файл: _TEST_EW-3-.zip (98.7 Kb)


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

Автор - krosav4ig
Дата добавления - 13.02.2018 в 17:40
krosav4ig Дата: Воскресенье, 11.02.2018, 06:11 | Сообщение № 788 | Тема: Расчет остатков жидкости в цистерне
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
если цистерну можно представить, как пересечение нескольких фигур (цилиндр и сфера, например), то можно и вот так поизвращаться


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеесли цистерну можно представить, как пересечение нескольких фигур (цилиндр и сфера, например), то можно и вот так поизвращаться

Автор - krosav4ig
Дата добавления - 11.02.2018 в 06:11
krosav4ig Дата: Пятница, 09.02.2018, 13:56 | Сообщение № 789 | Тема: EAN 8 в excel
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
формула из фала EAN_8_with_chart.xlsx по ссылке из моего поста
Код
=ОСТАТ(10-ОСТАТ(СУММ(--ПСТР(A1;{2;4;6};1);ПСТР(A1;{1;3;5;7};1)*3);10);10)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеформула из фала EAN_8_with_chart.xlsx по ссылке из моего поста
Код
=ОСТАТ(10-ОСТАТ(СУММ(--ПСТР(A1;{2;4;6};1);ПСТР(A1;{1;3;5;7};1)*3);10);10)

Автор - krosav4ig
Дата добавления - 09.02.2018 в 13:56
krosav4ig Дата: Среда, 07.02.2018, 16:59 | Сообщение № 790 | Тема: Экспорт XML в кодировке windows-1251
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Добрый день. Можно попробовать такой костыль.
[vba]
Код
Sub ExportToXML()
    Dim strPath As String, sTmp As String
    strPath = ThisWorkbook.Path & "\счет.xml"
    ThisWorkbook.XmlMaps("Файл_карта").Export URL:=strPath
    DoEvents
    With CreateObject("ADODB.Stream")
        .Type = 2: .Charset = "utf-8"
        .Open: .LoadFromFile strPath: sTmp = .ReadText: .Close
        .Charset = "windows-1251": sTmp = Replace(sTmp, "UTF-8", "windows-1251")
        .Open: .WriteText sTmp: .SaveToFile strPath, 2: .Close
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеДобрый день. Можно попробовать такой костыль.
[vba]
Код
Sub ExportToXML()
    Dim strPath As String, sTmp As String
    strPath = ThisWorkbook.Path & "\счет.xml"
    ThisWorkbook.XmlMaps("Файл_карта").Export URL:=strPath
    DoEvents
    With CreateObject("ADODB.Stream")
        .Type = 2: .Charset = "utf-8"
        .Open: .LoadFromFile strPath: sTmp = .ReadText: .Close
        .Charset = "windows-1251": sTmp = Replace(sTmp, "UTF-8", "windows-1251")
        .Open: .WriteText sTmp: .SaveToFile strPath, 2: .Close
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 07.02.2018 в 16:59
krosav4ig Дата: Вторник, 06.02.2018, 18:10 | Сообщение № 791 | Тема: Расчет рабочего времени(режим 12х7) между двумя датами
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте.
Проверяйте.
Код
=(МУМНОЖ(ОТБР(A2:B2);{-1:1})*12-МУМНОЖ(-ТЕКСТ(ТЕКСТ(ОСТАТ(A2:B2;1)*24;"[>20]2\0");"[<8]8");{-1:1}))/24

или с массивным вводом формулы (Ctrl+Shift+Enter)
Код
=((ОТБР(B2)-ОТБР(A2))*12-СУММ(ТЕКСТ(ТЕКСТ(ОСТАТ(A2:B2;1)*24;"[>20]2\0");"[<8]8")*{1;-1}))/24
К сообщению приложен файл: 8522951.xlsx (9.6 Kb)


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

Сообщение отредактировал krosav4ig - Среда, 07.02.2018, 17:12
 
Ответить
СообщениеЗдравствуйте.
Проверяйте.
Код
=(МУМНОЖ(ОТБР(A2:B2);{-1:1})*12-МУМНОЖ(-ТЕКСТ(ТЕКСТ(ОСТАТ(A2:B2;1)*24;"[>20]2\0");"[<8]8");{-1:1}))/24

или с массивным вводом формулы (Ctrl+Shift+Enter)
Код
=((ОТБР(B2)-ОТБР(A2))*12-СУММ(ТЕКСТ(ТЕКСТ(ОСТАТ(A2:B2;1)*24;"[>20]2\0");"[<8]8")*{1;-1}))/24

Автор - krosav4ig
Дата добавления - 06.02.2018 в 18:10
krosav4ig Дата: Понедельник, 05.02.2018, 13:11 | Сообщение № 792 | Тема: как правильно отсортировать товар по дате поступления??
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Option Explicit

Sub ertert()
Dim wsh As Worksheet, dt As Date, x, y(), i&, k&
dt = Range("A1").Value
Intersect(ActiveSheet.UsedRange.Offset(1), [B:F]).ClearContents

For Each wsh In ThisWorkbook.Sheets
    If Not wsh Is ActiveSheet Then
        x = wsh.Range("I1").CurrentRegion.Value
        If Not IsEmpty(x) Then
            k = 0
            ReDim y(1 To UBound(x), 1 To 5)
            For i = 1 To UBound(x) Step 2
                If x(i, 1) = dt Then
                    k = k + 1
                    y(k, 1) = dt
                    y(k, 2) = x(i + 1, 1)
                    y(k, 3) = x(i, 2)
                    y(k, 4) = x(i + 1, 2)
                    y(k, 5) = wsh.Name
                End If
            Next i
            If k > 0 Then Cells(Rows.Count, 2).End(xlUp)(2, 1).Resize(k, 5).Value = y()
        End If
    End If
Next wsh

With Range("B1:F" & Cells(Rows.Count, 2).End(xlUp).Row)
    .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
        Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes
End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
Option Explicit

Sub ertert()
Dim wsh As Worksheet, dt As Date, x, y(), i&, k&
dt = Range("A1").Value
Intersect(ActiveSheet.UsedRange.Offset(1), [B:F]).ClearContents

For Each wsh In ThisWorkbook.Sheets
    If Not wsh Is ActiveSheet Then
        x = wsh.Range("I1").CurrentRegion.Value
        If Not IsEmpty(x) Then
            k = 0
            ReDim y(1 To UBound(x), 1 To 5)
            For i = 1 To UBound(x) Step 2
                If x(i, 1) = dt Then
                    k = k + 1
                    y(k, 1) = dt
                    y(k, 2) = x(i + 1, 1)
                    y(k, 3) = x(i, 2)
                    y(k, 4) = x(i + 1, 2)
                    y(k, 5) = wsh.Name
                End If
            Next i
            If k > 0 Then Cells(Rows.Count, 2).End(xlUp)(2, 1).Resize(k, 5).Value = y()
        End If
    End If
Next wsh

With Range("B1:F" & Cells(Rows.Count, 2).End(xlUp).Row)
    .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
        Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes
End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 05.02.2018 в 13:11
krosav4ig Дата: Пятница, 02.02.2018, 15:33 | Сообщение № 793 | Тема: как правильно отсортировать товар по дате поступления??
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Упс, одна строчка не туда затесалась
[vba]
Код
Sub ertert()
Dim wsh As Worksheet, dt As Date, x, y(), i&, k&
dt = Range("A1").Value
Range("A1").CurrentRegion.Offset(1).ClearContents

For Each wsh In ThisWorkbook.Sheets
    If Not wsh Is ActiveSheet Then
        x = wsh.Range("I1").CurrentRegion.Value
        If Not IsEmpty(x) Then
            k = 0
            ReDim y(1 To UBound(x), 1 To 5)
            For i = 1 To UBound(x) Step 2
                If x(i, 1) = dt Then
                    k = k + 1
                    y(k, 1) = dt
                    y(k, 2) = x(i + 1, 1)
                    y(k, 3) = x(i, 2)
                    y(k, 4) = x(i + 1, 2)
                    y(k, 5) = wsh.Name
                End If
            Next i
            If k > 0 Then Cells(Rows.Count, 2).End(xlUp)(2, 1).Resize(k, 5).Value = y()
        End If
    End If
Next wsh

With Range("B1:F" & Cells(Rows.Count, 2).End(xlUp).Row)
    .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
          Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes
End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеУпс, одна строчка не туда затесалась
[vba]
Код
Sub ertert()
Dim wsh As Worksheet, dt As Date, x, y(), i&, k&
dt = Range("A1").Value
Range("A1").CurrentRegion.Offset(1).ClearContents

For Each wsh In ThisWorkbook.Sheets
    If Not wsh Is ActiveSheet Then
        x = wsh.Range("I1").CurrentRegion.Value
        If Not IsEmpty(x) Then
            k = 0
            ReDim y(1 To UBound(x), 1 To 5)
            For i = 1 To UBound(x) Step 2
                If x(i, 1) = dt Then
                    k = k + 1
                    y(k, 1) = dt
                    y(k, 2) = x(i + 1, 1)
                    y(k, 3) = x(i, 2)
                    y(k, 4) = x(i + 1, 2)
                    y(k, 5) = wsh.Name
                End If
            Next i
            If k > 0 Then Cells(Rows.Count, 2).End(xlUp)(2, 1).Resize(k, 5).Value = y()
        End If
    End If
Next wsh

With Range("B1:F" & Cells(Rows.Count, 2).End(xlUp).Row)
    .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
          Key2:=.Cells(1, 2), Order2:=xlAscending, Header:=xlYes
End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 02.02.2018 в 15:33
krosav4ig Дата: Пятница, 02.02.2018, 15:03 | Сообщение № 794 | Тема: Перенос значения ячейки с изменением формата и коррект.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Вариант с UDF
[vba]
Код
Function Перенос$(s$)
    With CreateObject("vbscript.regexp")
        .Pattern = "(\d{1,3}(?=\d{4}))|\d+"
        .Global = True
        s = .Replace(StrReverse(s), "$1 ")
    End With
    Перенос = StrReverse(Application.Trim(s))
End Function
[/vba]
К сообщению приложен файл: 7236614.xls (36.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеВариант с UDF
[vba]
Код
Function Перенос$(s$)
    With CreateObject("vbscript.regexp")
        .Pattern = "(\d{1,3}(?=\d{4}))|\d+"
        .Global = True
        s = .Replace(StrReverse(s), "$1 ")
    End With
    Перенос = StrReverse(Application.Trim(s))
End Function
[/vba]

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

Excel 2007,2010,2013
на всякий случай
[vba]
Код
Option Explicit

Private LO As ListObject
Private index%

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Set LO = Nothing
End Sub

Private Sub ИмяПациента_Change()

End Sub

Private Sub ИмяТовара_Change()

End Sub

Private Sub КачествоТовара_Change()

End Sub

Private Sub КоличествоТовара_Change()

End Sub

Private Sub UserForm_Initialize()
    Set LO = [Таблица2].ListObject
    With LO
        If Intersect(.DataBodyRange, Selection) Is Nothing Then
            Set LO = Nothing
            Exit Sub
        End If
        index = Selection.Row - .HeaderRowRange.Row
        With .ListColumns
            Me.ИмяПациента = .Item("Имя").DataBodyRange(index)
            Me.ИмяТовара = .Item("Товар").DataBodyRange(index)
            Me.КоличествоТовара = .Item("Количество").DataBodyRange(index)
            Me.КачествоТовара = .Item("Качество").DataBodyRange(index)
        End With
    End With
End Sub

Private Sub Редактура_Click()
    LO.ListRows(index).Range = Array(ИмяПациента, ИмяТовара, КоличествоТовара, КачествоТовара)
End Sub

Private Sub ОчисткаФормы_Click()
    Me.ИмяПациента = Empty
    Me.ИмяТовара = Empty
    Me.КоличествоТовара = Empty
    Me.КачествоТовара = Empty
End Sub

Private Sub СозданиеНового_Click()
    LO.ListRows.Add.Range = Array(ИмяПациента, ИмяТовара, КоличествоТовара, КачествоТовара)
End Sub

Private Sub Выход_Click()
    Unload Me
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениена всякий случай
[vba]
Код
Option Explicit

Private LO As ListObject
Private index%

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Set LO = Nothing
End Sub

Private Sub ИмяПациента_Change()

End Sub

Private Sub ИмяТовара_Change()

End Sub

Private Sub КачествоТовара_Change()

End Sub

Private Sub КоличествоТовара_Change()

End Sub

Private Sub UserForm_Initialize()
    Set LO = [Таблица2].ListObject
    With LO
        If Intersect(.DataBodyRange, Selection) Is Nothing Then
            Set LO = Nothing
            Exit Sub
        End If
        index = Selection.Row - .HeaderRowRange.Row
        With .ListColumns
            Me.ИмяПациента = .Item("Имя").DataBodyRange(index)
            Me.ИмяТовара = .Item("Товар").DataBodyRange(index)
            Me.КоличествоТовара = .Item("Количество").DataBodyRange(index)
            Me.КачествоТовара = .Item("Качество").DataBodyRange(index)
        End With
    End With
End Sub

Private Sub Редактура_Click()
    LO.ListRows(index).Range = Array(ИмяПациента, ИмяТовара, КоличествоТовара, КачествоТовара)
End Sub

Private Sub ОчисткаФормы_Click()
    Me.ИмяПациента = Empty
    Me.ИмяТовара = Empty
    Me.КоличествоТовара = Empty
    Me.КачествоТовара = Empty
End Sub

Private Sub СозданиеНового_Click()
    LO.ListRows.Add.Range = Array(ИмяПациента, ИмяТовара, КоличествоТовара, КачествоТовара)
End Sub

Private Sub Выход_Click()
    Unload Me
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 02.02.2018 в 05:58
krosav4ig Дата: Четверг, 01.02.2018, 22:38 | Сообщение № 796 | Тема: перенос текста по строкам вверх, при выборе приоритетности
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Исправил


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

Автор - krosav4ig
Дата добавления - 01.02.2018 в 22:38
krosav4ig Дата: Четверг, 01.02.2018, 21:48 | Сообщение № 797 | Тема: перенос текста по строкам вверх, при выборе приоритетности
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013


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

Сообщение отредактировал krosav4ig - Четверг, 01.02.2018, 22:37
 
Ответить
СообщениеЗдрасте.
Сортировка данных в диапазоне или таблице

Автор - krosav4ig
Дата добавления - 01.02.2018 в 21:48
krosav4ig Дата: Четверг, 01.02.2018, 17:25 | Сообщение № 798 | Тема: Автопродление отдельных столбцов умной таблицы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
можно еще реестр проверить
Цитата
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options]
"autoexpandlistrange"=dword:00000001
К сообщению приложен файл: key.reg (0.1 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеможно еще реестр проверить
Цитата
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options]
"autoexpandlistrange"=dword:00000001

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

Excel 2007,2010,2013
Добрый день
В Excel 2007 было как-то так
открыть Параметры автозамены, на вкладке "Автоформат при вводе" поставить галочку "Включать в таблицу новые строки"


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

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

Excel 2007,2010,2013
Код
=C2=КОНМЕСЯЦА(B2;0)+1
К сообщению приложен файл: 3561139.xls (19.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Код
=C2=КОНМЕСЯЦА(B2;0)+1

Автор - krosav4ig
Дата добавления - 01.02.2018 в 14:46
Поиск:

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