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

Вход

Регистрация

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

 

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

Результаты поиска
krosav4ig Дата: Воскресенье, 08.02.2015, 20:49 | Сообщение № 1801 | Тема: Отобразить столбцы соответственно отфильтрованным строкам.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Leanna, 23 это сумма xlErrors (16), xlLogical (4), xlNumbers (1), xlTextValues(2), т.е. если нужны только числа и текст то будет 3, цикл с r.Areas я просто пропустил, хотел его убрать, сначала чего-то в голову ударило, потом одумался, исправил свой пост


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

Сообщение отредактировал krosav4ig - Воскресенье, 08.02.2015, 20:50
 
Ответить
СообщениеLeanna, 23 это сумма xlErrors (16), xlLogical (4), xlNumbers (1), xlTextValues(2), т.е. если нужны только числа и текст то будет 3, цикл с r.Areas я просто пропустил, хотел его убрать, сначала чего-то в голову ударило, потом одумался, исправил свой пост

Автор - krosav4ig
Дата добавления - 08.02.2015 в 20:49
krosav4ig Дата: Воскресенье, 08.02.2015, 19:44 | Сообщение № 1802 | Тема: Открытие excel с расширением xlsm в ОС Android
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
открыть-то можно, но макросы работать не будут


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеоткрыть-то можно, но макросы работать не будут

Автор - krosav4ig
Дата добавления - 08.02.2015 в 19:44
krosav4ig Дата: Воскресенье, 08.02.2015, 18:54 | Сообщение № 1803 | Тема: Отобразить столбцы соответственно отфильтрованным строкам.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Вдруг правильно?
[vba]
Код
Sub qwe()
      Dim r As Range, c As Range
      Set r = [E:E].SpecialCells(2, 23).SpecialCells(12)
      Application.ScreenUpdating = 0
      [I:P].EntireColumn.Hidden = True
      For Each c In [I2:P2]
          If Not r.Find(c, , xlValues, xlWhole) Is Nothing Then c.EntireColumn.Hidden = 0
      Next
End Sub
[/vba]
К сообщению приложен файл: 2098343.xlsm (24.4 Kb)


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

Сообщение отредактировал krosav4ig - Воскресенье, 08.02.2015, 21:18
 
Ответить
СообщениеВдруг правильно?
[vba]
Код
Sub qwe()
      Dim r As Range, c As Range
      Set r = [E:E].SpecialCells(2, 23).SpecialCells(12)
      Application.ScreenUpdating = 0
      [I:P].EntireColumn.Hidden = True
      For Each c In [I2:P2]
          If Not r.Find(c, , xlValues, xlWhole) Is Nothing Then c.EntireColumn.Hidden = 0
      Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 08.02.2015 в 18:54
krosav4ig Дата: Пятница, 06.02.2015, 19:55 | Сообщение № 1804 | Тема: cделать схему раскрашивала в разные цвета
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Как понял...
[p.s.]т.к. замечаний по поводу названия темы не было, сделаю вид, что оно нормальное <_<
К сообщению приложен файл: post_289568.xlsm (30.0 Kb)


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

Сообщение отредактировал krosav4ig - Пятница, 06.02.2015, 20:54
 
Ответить
СообщениеКак понял...
[p.s.]т.к. замечаний по поводу названия темы не было, сделаю вид, что оно нормальное <_<

Автор - krosav4ig
Дата добавления - 06.02.2015 в 19:55
krosav4ig Дата: Четверг, 05.02.2015, 02:29 | Сообщение № 1805 | Тема: cделать схему раскрашивала в разные цвета
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
А у мну все получилось :p


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

Автор - krosav4ig
Дата добавления - 05.02.2015 в 02:29
krosav4ig Дата: Среда, 04.02.2015, 11:48 | Сообщение № 1806 | Тема: Подстановка Имени Диапазона через переменную
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще 1 альтернативный вариант
[vba]
Код
.SetSourceData Source:=Evaluate("offset(" & xBufferName(1) & ",,,,2)")
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениееще 1 альтернативный вариант
[vba]
Код
.SetSourceData Source:=Evaluate("offset(" & xBufferName(1) & ",,,,2)")
[/vba]

Автор - krosav4ig
Дата добавления - 04.02.2015 в 11:48
krosav4ig Дата: Вторник, 03.02.2015, 17:54 | Сообщение № 1807 | Тема: Массив. Параллельное выполнение условий.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
до кучи, массивная формула
Код
=ЕСЛИ(И(ЕЧЁТН(МУМНОЖ(ЗНАК(ABS(A4:B11));ТРАНСП(ЗНАК(ABS(A4:B11))))));"ошибка";"нет ошибки")


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениедо кучи, массивная формула
Код
=ЕСЛИ(И(ЕЧЁТН(МУМНОЖ(ЗНАК(ABS(A4:B11));ТРАНСП(ЗНАК(ABS(A4:B11))))));"ошибка";"нет ошибки")

Автор - krosav4ig
Дата добавления - 03.02.2015 в 17:54
krosav4ig Дата: Понедельник, 02.02.2015, 23:46 | Сообщение № 1808 | Тема: сделать выборку по таблице
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Osa, ну дык какие у вас в первом файле, такие и возникают.


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

Автор - krosav4ig
Дата добавления - 02.02.2015 в 23:46
krosav4ig Дата: Понедельник, 02.02.2015, 21:49 | Сообщение № 1809 | Тема: Преобразование таблицы к плоскому виду
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
В excel 2010-13 можно это сделать еще и с помощью Power Query
video


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеВ excel 2010-13 можно это сделать еще и с помощью Power Query
video

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

Excel 2007,2010,2013
[vba]
Код
Sub qwe()
      With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
          With ActiveWorkbook.Worksheets("Лист1").Sort
              With .SortFields
                  .Clear
                  .Add Intersect([A1].CurrentRegion, [E:E]), 0, 1, 0
                  .Add Intersect([A1].CurrentRegion, [F:F]), 0, 1, 0
                  .Add Intersect([A1].CurrentRegion, [D:D]), 0, 1, 0
              End With
              .SetRange [A1].CurrentRegion
              .Header = xlYes
              .MatchCase = False
              .Orientation = xlTopToBottom
              .SortMethod = xlPinYin
              .Apply
          End With
          Dim col As Range, rcnt&, rnum&: rnum = 2
          With Intersect([A2].CurrentRegion, [E:G], ActiveSheet.UsedRange.Offset(1))
              .Select
              Do
                  On Error Resume Next
                  Selection.ColumnDifferences(ActiveCell).Select
                  rcnt = Selection.Row - rnum: rnum = Selection.Row
                  If rcnt > 1 Then
                      For Each col In .Rows(rnum).Offset(-rcnt - 1).Resize(rcnt).Columns
                          col.Merge
                      Next
                  End If
              Loop Until Err.Number
              If Selection.Rows.Count > 1 Then
                  For Each col In Selection.Columns
                      col.Merge
                  Next
              End If
          End With
          Intersect([A1].CurrentRegion, [D:D]).Cut
          Intersect([A1].CurrentRegion.EntireRow, [H:H]).Insert Shift:=xlToRight
          Intersect([A1].CurrentRegion, [D:G]).Cut
          Intersect([A1].CurrentRegion, [A:A]).Insert Shift:=xlToRight
      .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
End Sub
[/vba]
К сообщению приложен файл: 0430357.xlsm (17.6 Kb)


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

Сообщение отредактировал krosav4ig - Понедельник, 02.02.2015, 19:13
 
Ответить
Сообщение[vba]
Код
Sub qwe()
      With Application: .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = 0
          With ActiveWorkbook.Worksheets("Лист1").Sort
              With .SortFields
                  .Clear
                  .Add Intersect([A1].CurrentRegion, [E:E]), 0, 1, 0
                  .Add Intersect([A1].CurrentRegion, [F:F]), 0, 1, 0
                  .Add Intersect([A1].CurrentRegion, [D:D]), 0, 1, 0
              End With
              .SetRange [A1].CurrentRegion
              .Header = xlYes
              .MatchCase = False
              .Orientation = xlTopToBottom
              .SortMethod = xlPinYin
              .Apply
          End With
          Dim col As Range, rcnt&, rnum&: rnum = 2
          With Intersect([A2].CurrentRegion, [E:G], ActiveSheet.UsedRange.Offset(1))
              .Select
              Do
                  On Error Resume Next
                  Selection.ColumnDifferences(ActiveCell).Select
                  rcnt = Selection.Row - rnum: rnum = Selection.Row
                  If rcnt > 1 Then
                      For Each col In .Rows(rnum).Offset(-rcnt - 1).Resize(rcnt).Columns
                          col.Merge
                      Next
                  End If
              Loop Until Err.Number
              If Selection.Rows.Count > 1 Then
                  For Each col In Selection.Columns
                      col.Merge
                  Next
              End If
          End With
          Intersect([A1].CurrentRegion, [D:D]).Cut
          Intersect([A1].CurrentRegion.EntireRow, [H:H]).Insert Shift:=xlToRight
          Intersect([A1].CurrentRegion, [D:G]).Cut
          Intersect([A1].CurrentRegion, [A:A]).Insert Shift:=xlToRight
      .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With
End Sub
[/vba]

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

Excel 2007,2010,2013
[vba]
Код
Sub Макрос()
      Dim arr As Variant
      Application.ScreenUpdating = 0: Application.EnableEvents = 0
      With Intersect(ActiveSheet.UsedRange, [A:G])
          .Copy .Offset(, .Columns.Count + 1)
          With .Offset(, .Columns.Count + 1)
              .UnMerge: .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
              .Copy: .PasteSpecial Paste:=xlPasteValues: .ClearFormats
              arr = .Resize(, 1): .Resize(, 1).Value = .Offset(, 4).Resize(, 1).Value
              .Offset(, 4).Resize(, 1).Value = arr: arr = .Offset(, 1).Resize(, 1)
              .Offset(, 1).Resize(, 1).Value = .Offset(, 5).Resize(, 1).Value
              .Offset(, 5).Resize(, 1).Value = arr: arr = .Offset(, 6).Resize(, 1).Value
              .Offset(, 6).Resize(, 1).Value = .Offset(, 2).Resize(, 1).Value
              With .Offset(, 2).Resize(, 1)
                  .Formula = arr: .NumberFormat = "dd.mm.yy hh:mm"
              End With
              .Columns.AutoFit
          End With
      End With
      Application.CutCopyMode = False
      Application.ScreenUpdating = 1: Application.EnableEvents = 1
End Sub
[/vba]
К сообщению приложен файл: 4323833.xlsm (29.6 Kb)


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

Сообщение отредактировал krosav4ig - Понедельник, 02.02.2015, 04:22
 
Ответить
Сообщение[vba]
Код
Sub Макрос()
      Dim arr As Variant
      Application.ScreenUpdating = 0: Application.EnableEvents = 0
      With Intersect(ActiveSheet.UsedRange, [A:G])
          .Copy .Offset(, .Columns.Count + 1)
          With .Offset(, .Columns.Count + 1)
              .UnMerge: .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
              .Copy: .PasteSpecial Paste:=xlPasteValues: .ClearFormats
              arr = .Resize(, 1): .Resize(, 1).Value = .Offset(, 4).Resize(, 1).Value
              .Offset(, 4).Resize(, 1).Value = arr: arr = .Offset(, 1).Resize(, 1)
              .Offset(, 1).Resize(, 1).Value = .Offset(, 5).Resize(, 1).Value
              .Offset(, 5).Resize(, 1).Value = arr: arr = .Offset(, 6).Resize(, 1).Value
              .Offset(, 6).Resize(, 1).Value = .Offset(, 2).Resize(, 1).Value
              With .Offset(, 2).Resize(, 1)
                  .Formula = arr: .NumberFormat = "dd.mm.yy hh:mm"
              End With
              .Columns.AutoFit
          End With
      End With
      Application.CutCopyMode = False
      Application.ScreenUpdating = 1: Application.EnableEvents = 1
End Sub
[/vba]

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

Excel 2007,2010,2013
В модуль ЭтаКнига
[vba]
Код
Private Function GetPrinter$(PrinterName$)
       Dim StrKey$: StrKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices\"
       With CreateObject("WScript.Shell")
           GetPrinter = PrinterName & " (" & Split(.RegRead(StrKey & PrinterName), ",")(1) & ")"
       End With
End Function
Sub DefinePrinters()
       On Error Resume Next
       Me.CustomDocumentProperties.Add "книга", 0, 4, "Принтер" 'задаем принтер для этой книги
       CustomDocumentProperties("книга") = "Принтер" 'если принтер для этой книги был задан раньше
       Me.CustomDocumentProperties.Add "Лист1", 0, 4, "Canon Inkjet iP4600 series" 'задаем принтер для Листа1
       CustomDocumentProperties("Лист1") = "Canon Inkjet iP4600 series" 'если принтер для Листа1 был задан раньше
       Me.CustomDocumentProperties.Add "Лист2", 0, 4, "Принтер2"
       CustomDocumentProperties("Лист2") = "Принтер2"
       Me.CustomDocumentProperties.Add "Лист3", 0, 4, "Принтер3"
       CustomDocumentProperties("Лист3") = "Принтер3"
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
       With ActiveWindow.SelectedSheets
           Application.ActivePrinter = GetPrinter(CustomDocumentProperties(IIf(.Count > 1, "книга", .Item(1).Name)))
       End With
End Sub
[/vba]
если нужны названия принтеров, вот функция, возвращающая массив названий всех установленных принтеров
[vba]
Код
Function GetPrinters() As Variant
      Dim coll As Collection: Set coll = New Collection
      Dim StrKey$: StrKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices\"
      Dim n&, arr()
      With GetObject("winmgmts://./root/CIMV2")
          For Each Printer In .ExecQuery("SELECT * FROM Win32_Printer", , 48)
              ReDim Preserve arr(n): arr(n) = Printer.Name n = n + 1
          Next
      End With
      GetPrinters = arr
End Function
[/vba]


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

Сообщение отредактировал krosav4ig - Понедельник, 02.02.2015, 01:26
 
Ответить
СообщениеВ модуль ЭтаКнига
[vba]
Код
Private Function GetPrinter$(PrinterName$)
       Dim StrKey$: StrKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices\"
       With CreateObject("WScript.Shell")
           GetPrinter = PrinterName & " (" & Split(.RegRead(StrKey & PrinterName), ",")(1) & ")"
       End With
End Function
Sub DefinePrinters()
       On Error Resume Next
       Me.CustomDocumentProperties.Add "книга", 0, 4, "Принтер" 'задаем принтер для этой книги
       CustomDocumentProperties("книга") = "Принтер" 'если принтер для этой книги был задан раньше
       Me.CustomDocumentProperties.Add "Лист1", 0, 4, "Canon Inkjet iP4600 series" 'задаем принтер для Листа1
       CustomDocumentProperties("Лист1") = "Canon Inkjet iP4600 series" 'если принтер для Листа1 был задан раньше
       Me.CustomDocumentProperties.Add "Лист2", 0, 4, "Принтер2"
       CustomDocumentProperties("Лист2") = "Принтер2"
       Me.CustomDocumentProperties.Add "Лист3", 0, 4, "Принтер3"
       CustomDocumentProperties("Лист3") = "Принтер3"
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
       With ActiveWindow.SelectedSheets
           Application.ActivePrinter = GetPrinter(CustomDocumentProperties(IIf(.Count > 1, "книга", .Item(1).Name)))
       End With
End Sub
[/vba]
если нужны названия принтеров, вот функция, возвращающая массив названий всех установленных принтеров
[vba]
Код
Function GetPrinters() As Variant
      Dim coll As Collection: Set coll = New Collection
      Dim StrKey$: StrKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices\"
      Dim n&, arr()
      With GetObject("winmgmts://./root/CIMV2")
          For Each Printer In .ExecQuery("SELECT * FROM Win32_Printer", , 48)
              ReDim Preserve arr(n): arr(n) = Printer.Name n = n + 1
          Next
      End With
      GetPrinters = arr
End Function
[/vba]

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

Excel 2007,2010,2013
ну и зачем эти танцы с бубном, если можно просто[vba]
Код
Sub RemoveDuplicates()
     Intersect(ActiveSheet.UsedRange, [A:B]).RemoveDuplicates Array(1, 2), 2
end sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениену и зачем эти танцы с бубном, если можно просто[vba]
Код
Sub RemoveDuplicates()
     Intersect(ActiveSheet.UsedRange, [A:B]).RemoveDuplicates Array(1, 2), 2
end sub
[/vba]

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

Excel 2007,2010,2013
дефолтный для данного документа.

в модуль ЭтаКнига
[vba]
Код
Private Function GetPrinter$(PrinterName$)
      Dim StrKey$: StrKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices\"
      With CreateObject("WScript.Shell")
          GetPrinter = PrinterName & " (" & Split(.RegRead(StrKey & PrinterName), ",")(1) & ")"
      End With
End Function
Private Sub Workbook_Activate()
      On Error Resume Next
      Me.CustomDocumentProperties.Add "printer", 0, 4, "имя принтера"
      CustomDocumentProperties("printer") = "имя принтера"
      Parent.ActivePrinter = GetPrinter(CustomDocumentProperties("printer"))
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Воскресенье, 01.02.2015, 22:35
 
Ответить
Сообщение
дефолтный для данного документа.

в модуль ЭтаКнига
[vba]
Код
Private Function GetPrinter$(PrinterName$)
      Dim StrKey$: StrKey = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices\"
      With CreateObject("WScript.Shell")
          GetPrinter = PrinterName & " (" & Split(.RegRead(StrKey & PrinterName), ",")(1) & ")"
      End With
End Function
Private Sub Workbook_Activate()
      On Error Resume Next
      Me.CustomDocumentProperties.Add "printer", 0, 4, "имя принтера"
      CustomDocumentProperties("printer") = "имя принтера"
      Parent.ActivePrinter = GetPrinter(CustomDocumentProperties("printer"))
End Sub
[/vba]

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

Excel 2007,2010,2013
или если зеленые ячейки будут сортированы в случайном порядке, массивная формула
Код
=МИН(ЕСЛИ($C$12:$C$15>=C6;$C$12:$C$15))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеили если зеленые ячейки будут сортированы в случайном порядке, массивная формула
Код
=МИН(ЕСЛИ($C$12:$C$15>=C6;$C$12:$C$15))

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

Excel 2007,2010,2013
koyaanisqatsi, по поводу выбора принтера
[vba]
Код
Sub пример_использования()
      If Application.Dialogs(xlDialogPrinterSetup).Show Then PrintPages "1-3,4,5-7"
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Воскресенье, 01.02.2015, 19:35
 
Ответить
Сообщениеkoyaanisqatsi, по поводу выбора принтера
[vba]
Код
Sub пример_использования()
      If Application.Dialogs(xlDialogPrinterSetup).Show Then PrintPages "1-3,4,5-7"
End Sub
[/vba]

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

Excel 2007,2010,2013
koyaanisqatsi, держите еще вот такую простенькую процедуру, вдруг пригодится
[vba]
Код
Sub PrintPages(StrPages$)
      For Each rr In Split(StrPages$, ",")
          ActiveWindow.SelectedSheets.PrintOut Split(rr, "-")(0), Split(rr, "-")(IIf(InStr(rr, "-"), 1, 0)), 1
      Next
End Sub
Sub пример_использования()
      PrintPages "1-3,10-15,20-60"
End Sub
[/vba]

upd
ошибочка вышла, исправил код


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

Сообщение отредактировал krosav4ig - Воскресенье, 01.02.2015, 17:36
 
Ответить
Сообщениеkoyaanisqatsi, держите еще вот такую простенькую процедуру, вдруг пригодится
[vba]
Код
Sub PrintPages(StrPages$)
      For Each rr In Split(StrPages$, ",")
          ActiveWindow.SelectedSheets.PrintOut Split(rr, "-")(0), Split(rr, "-")(IIf(InStr(rr, "-"), 1, 0)), 1
      Next
End Sub
Sub пример_использования()
      PrintPages "1-3,10-15,20-60"
End Sub
[/vba]

upd
ошибочка вышла, исправил код

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

Excel 2007,2010,2013
тогда СТ3
Код
=ЕСЛИОШИБКА(СМЕЩ(ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!A1");ПОИСКПОЗ(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!A:A"););ДЕНЬ($D$1));"")


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениетогда СТ3
Код
=ЕСЛИОШИБКА(СМЕЩ(ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!A1");ПОИСКПОЗ(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!A:A"););ДЕНЬ($D$1));"")

Автор - krosav4ig
Дата добавления - 01.02.2015 в 01:45
krosav4ig Дата: Воскресенье, 01.02.2015, 00:28 | Сообщение № 1819 | Тема: Заполнение ячеек по двум и более условиям
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
СТ1
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{0;9};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")

СТ2
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{9;26};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")

СТ3
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);31;ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")
К сообщению приложен файл: 4645852_2.xls (49.5 Kb)


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

Сообщение отредактировал krosav4ig - Воскресенье, 01.02.2015, 00:45
 
Ответить
СообщениеСТ1
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{0;9};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")

СТ2
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);{9;26};ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")

СТ3
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;);31;ВПР(A3;ДВССЫЛ(ТЕКСТ($D$1;"ММММ")&"!1:"&4^8);ДЕНЬ($D$1)+1;));"")

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

Excel 2007,2010,2013
еще раз перечитал 6 пост, исправил свою формулу
Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;$A$2:$B$16;2;)*(17-G$3+ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;$A$2:$B$16;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;$A$2:$B$16;2;)*(КОНМЕСЯЦА(G$3;0)-30-ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;))^{0;1})-1;"нет данных")

добавил формулу для бонусов и % (Массивная, вводится по Ctrl-Shift-Enter)
Код
=ЕСЛИОШИБКА(СУММ(СУММ((ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)>=G$3)*(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)<=КОНМЕСЯЦА(G$3;0))*(($C$2:$C$16="%")*$B$3:$B$17*$B$2:$B$16%+($C$2:$C$16="bonus")*$B$2:$B$16))^{0;1})-1;"")


UPD.
добавил еще 1 файл, в нем добавил имена
К сообщению приложен файл: Book1-22-2-.xlsx (17.1 Kb) · Book1-22-3-.xlsx (16.8 Kb)


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

Сообщение отредактировал krosav4ig - Суббота, 31.01.2015, 22:12
 
Ответить
Сообщениееще раз перечитал 6 пост, исправил свою формулу
Код
=ЕСЛИОШИБКА(СУММ((ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+14;$A$2:$B$16;2;)*(17-G$3+ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+28;$A$2:$B$16;2;);)+ЕСЛИОШИБКА(ВПР(ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1))+42;$A$2:$B$16;2;)*(КОНМЕСЯЦА(G$3;0)-30-ПРОСМОТР(G$3;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1)))/14;))^{0;1})-1;"нет данных")

добавил формулу для бонусов и % (Массивная, вводится по Ctrl-Shift-Enter)
Код
=ЕСЛИОШИБКА(СУММ(СУММ((ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)>=G$3)*(ЕСЛИ(ЕНД(ПОИСКПОЗ($A$2:$A$16;ЦЕЛОЕ(РАЗНДАТ(6;КОНМЕСЯЦА(ДАТАМЕС(G$3;-МЕСЯЦ(G$3));0);"d")/7)*7+6+14*(СТРОКА($1:$28)-1);))*((ДЕНЬНЕД($A$2:$A$16)<>6)+(ЕНЕЧЁТ(НОМНЕДЕЛИ(--$A$2:$A$16))));$A$2:$A$16;)<=КОНМЕСЯЦА(G$3;0))*(($C$2:$C$16="%")*$B$3:$B$17*$B$2:$B$16%+($C$2:$C$16="bonus")*$B$2:$B$16))^{0;1})-1;"")


UPD.
добавил еще 1 файл, в нем добавил имена

Автор - krosav4ig
Дата добавления - 31.01.2015 в 20:18
Поиск:

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