Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Из Excel изменить номер записи в документе Word
 
Кросс: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=31517
Решение предложено KuklP в 6 посте. Помогите разобраться пожалуйста. Не могу заставить передать параметр с номером активной строки.
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Из Excel изменить номер записи в документе Word
 
Позволю себе апнуть тему. Возникла так же задача по созданию договоров заполняя Word документ данными из таблицы Excel. Как передать значение активной строки первого столбца таблицы для выбора адресата при слиянии? Насколько я понимаю при открытии документа Word за это отвечает параметр DataSource.ActiveRecord. На форуме уже была выложена тема с решением, но не могу допилить ее под себя.  
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Автофильтр для "умной таблицы" с критерием отбора данных - массив (значения ячеек другого листа), Некорректно работает фильтр, что я не так делаю?
 
Решение нашел такое, может кому-нибудь будет полезным.
Код
Sub Test()
Dim arr, i

With Sheets("in")
    arr = Application.Transpose(.Range(.[A1], .Cells(Rows.Count, "A").End(xlUp)))
End With
For i = LBound(arr) To UBound(arr)
     arr(i) = CStr(arr(i))
Next i

Worksheets("Лист1").ListObjects("Таблица1").Range.AutoFilter Field:=3, Criteria1:=arr, Operator:=xlFilterValues
End Sub

Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Автофильтр для "умной таблицы" с критерием отбора данных - массив (значения ячеек другого листа), Некорректно работает фильтр, что я не так делаю?
 
что почитать? в какую сторону искать?
UPD: разве расширенный фильтр умеет работать с умной таблицей? мне показалось только с диапазонами? я не прав?
Изменено: Кунст - 06.01.2021 21:16:12
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Автофильтр для "умной таблицы" с критерием отбора данных - массив (значения ячеек другого листа), Некорректно работает фильтр, что я не так делаю?
 
Уважаемые форумчане, помогите с применением автофильтра для "умной таблицы" . Если я правильно понимаю, то необходимо использовать 2 массива - массив ячеек и массив значений этих ячеек, однако при при применении фильтра корректный отбор не происходит и скрываются все значения таблицы. Исходная таблица содержит более 10000 строк а критериев отбора для массива может быть более 50-ти, поэтому Criteria1:=Array("11005540", "11010158", "11004137", "22009948") в качестве решения мне не подходит. Есть ли вообще решение для моей хотелки?
Код
Sub Test()
Dim MyArray() As Variant
Dim arr() As Variant

LastRow = Sheets("in").Cells(Rows.Count, 1).End(xlUp).Row
MyArray = Sheets("in").Range(Cells(1, 1), Cells(LastRow, 1)).Value

ReDim arr(1 To UBound(MyArray))

For i = LBound(MyArray) To UBound(MyArray)
        arr(i) = MyArray(i, 1)
Next

Worksheets("Лист1").ListObjects("Таблица1").Range.AutoFilter Field:=3, Criteria1:=arr, Operator:=xlFilterValues
End Sub
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Всем большое спасибо, думаю тему можно закрывать
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
А это вообще сильно критично, что у меня на 50 листах будет событие по пкм а на 100 без? Насколько велика вероятность  того, что будет глючить и подвисать?
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Юрий М, добавляются листы двух типов сводные и детальные отчеты, на одних событие должно обрабатываться, на других - нет. Впрочем нужно подумать, может быть можно создать какой-то опознаватель при собирании листов в цикле
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
AAF, тогда придется все равно регулярно править процедуру, добавляя в Select Case названия новых листов. Или я не прав?
Изменено: Кунст - 10.06.2018 21:31:16
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
sokol92,почему, если это событие before right click? А если в модуле книги то событие будет для ВСЕХ листов, не так ли?
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Большое спасибо всем, вопрос решился подключением библиотеки. Странно, почемуто она смогла подключится без ошибки только после перезапуска приложения ))
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Хуго прав разумеется, конечно можно копировать существующий в книге лист, удалять с него данные, открывать новую книгу для копирования и копировать данные ячеек на лист. Только че-то мне кажется это костыль ))  
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Hugo,не получится копировать существющий, тк листы с разных файлов собираются в одну книгу
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Юрий М, да, разрешен
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Копирование процедуры листа (по событию)- на новый лист, Копирование кода макроса на новый лист
 
Уважаемый форумчане помогите с решением, необходим макрос копирования кода, чтобы при вставке новых листов, на эти листы копировалась процедура по событию с уже существующего в книге листа. На просторах mrexcel нашел такой макрос, но при запуске сразу ошибка при объявлении переменной " Dim SrcCmod    As VBIDE.CodeModule" В чем может быть проблема?
Код
Sub CodeCopy()

  'Macro to create a new sheet and copy the macro module
  'from sheet1 to it.  Must install Microsoft Visual Basic
  'for Applications Extensibility library from Tools > References.
  
  Dim i          As Integer
  Dim NewSh      As Worksheet
  Dim SrcCmod    As VBIDE.CodeModule
  Dim DstCmod    As VBIDE.CodeModule
  
  Set NewSh = Worksheets.Add(after:=Worksheets(Worksheets.Count))

  Set SrcCmod = ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule
  Set DstCmod = ActiveWorkbook.VBProject.VBComponents(NewSh.Name).CodeModule
  
  For i = 1 To SrcCmod.CountOfLines
     DstCmod.InsertLines i, SrcCmod.Lines(i, 1)
  Next i
  
End Sub
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
HPageBreakes Вывод "Итого" постранично., сквозные строки в "шапке" документа и более одной строки в "подвале"
 
Ни у кого никаких идей? Гуру, помогите, я не пойму даже как правильно сформулировать вопрос для поиска. "Запретить перенос диапазона по частям?" Буду рад любой помощи
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
HPageBreakes Вывод "Итого" постранично., сквозные строки в "шапке" документа и более одной строки в "подвале"
 
Sanja, не подскажете, как сделать так, чтобы "подвал" не переносился частями? Иными словами,  если количество строк подвала не влезает на страницу, то формировался подвал минус одна строка таблицы и она переносилась бы на новый лист где так же формировался "подвал". Спасибо
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
HPageBreakes Вывод "Итого" постранично., сквозные строки в "шапке" документа и более одной строки в "подвале"
 
Sanja, благодарю, вроде бы как нужно, буду тестить ))
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
HPageBreakes Вывод "Итого" постранично., сквозные строки в "шапке" документа и более одной строки в "подвале"
 
Цитата
Bema написал:
А что такое ЧЯНТД?
Что Я Не Так Делаю?
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
HPageBreakes Вывод "Итого" постранично., сквозные строки в "шапке" документа и более одной строки в "подвале"
 
Уважаемые форумчане объясните плз, что я не так делаю.  Тема обсуждалась много раз, поиск не помог, так как не понимаю. Есть таблица с "шапкой", после заполнения необходимо вставить в "подвал" - "ИТОГО" (более одной строки, есть пустые строки, вычисления не требуются) и подготовить к печати расставив разрывы страниц. "Подвал" переносится целиком, не должно быть "шапки" и половины "подвала" на последнем листе. Пытался приспособить под свою задачу готовое решение, но "итого" выводится только на первой странице. ЧЯНТД?  
Код
'Option Explicit
'Public iLastRow As Long
Const FIRST_ROW& = 1

Sub CreatePageSubtotals5555()
Dim iPageNum&, viewState, hpb As HPageBreak, iRow1&, iRow2&
Dim lLastRow As Long
Dim Ws As Worksheet
Set Ws = Sheets("Реестр от __.__.____")
viewState = ActiveWindow.View
ActiveWindow.View = xlPageBreakPreview
iRow1 = FIRST_ROW
For Each hpb In ActiveSheet.HPageBreaks
    iPageNum = iPageNum + 1
    'iRow2 = hpb.Location.Row - 9
    lLastRow = hpb.Location.Row - 9
    Rows(lLastRow).Resize(9).Insert
    
    ''-------------------------------------
    '' ПОДВАЛ
Range(Ws.Cells(lLastRow - 1, 1), Ws.Cells(lLastRow - 1, 6)).Borders(xlEdgeBottom).Weight = xlMedium
Range(Ws.Cells(lLastRow, 1), Ws.Cells(lLastRow + 8, 6)).Clear

Ws.Cells(lLastRow + 3, 2) = "СДАЛ:"
Ws.Cells(lLastRow + 3, 2).Font.Bold = True
Ws.Cells(lLastRow + 3, 3).Borders(xlEdgeBottom).Weight = xlThin
Range(Ws.Cells(lLastRow + 3, 4), Ws.Cells(lLastRow + 3, 5)).Merge
Range(Ws.Cells(lLastRow + 3, 4), Ws.Cells(lLastRow + 3, 5)).HorizontalAlignment = xlCenter
Range(Ws.Cells(lLastRow + 3, 4), Ws.Cells(lLastRow + 3, 5)).Font.Bold = True
Range(Ws.Cells(lLastRow + 3, 4), Ws.Cells(lLastRow + 3, 5)).Value = "ПРИНЯЛ:"

Ws.Cells(lLastRow + 3, 6).Borders(xlEdgeBottom).Weight = xlThin
Ws.Cells(lLastRow + 4, 3) = "(подпись)"
Ws.Cells(lLastRow + 4, 3).HorizontalAlignment = xlCenter
Ws.Cells(lLastRow + 4, 3).Font.Size = 7
Ws.Cells(lLastRow + 4, 3).VerticalAlignment = xlTop
Ws.Cells(lLastRow + 4, 6) = "бригадир"
Ws.Cells(lLastRow + 4, 6).HorizontalAlignment = xlCenter
Ws.Cells(lLastRow + 4, 6).Font.Size = 7
Ws.Cells(lLastRow + 4, 6).VerticalAlignment = xlTop
Ws.Cells(lLastRow + 6, 3) = "М.П."
Ws.Cells(lLastRow + 6, 6).Borders(xlEdgeBottom).Weight = xlThin
Ws.Cells(lLastRow + 7, 6) = "контролер"
Ws.Cells(lLastRow + 7, 6).HorizontalAlignment = xlCenter
Ws.Cells(lLastRow + 7, 6).Font.Size = 7
Ws.Cells(lLastRow + 7, 6).VerticalAlignment = xlTop
Range(Ws.Cells(lLastRow + 7, 3), Ws.Cells(lLastRow + 7, 6)).Borders(xlEdgeBottom).Weight = xlMedium
Ws.Cells(lLastRow + 8, 3) = "Примечание:"
Ws.Cells(lLastRow + 8, 3).Font.Bold = True
Ws.Cells(lLastRow + 8, 3).Font.Color = RGB(191, 191, 191)
Range(Ws.Cells(lLastRow + 8, 4), Ws.Cells(lLastRow + 8, 6)).Merge
Range(Ws.Cells(lLastRow + 8, 4), Ws.Cells(lLastRow + 8, 6)).Borders(xlEdgeBottom).Weight = xlMedium
Range(Ws.Cells(lLastRow + 8, 4), Ws.Cells(lLastRow + 8, 6)).Borders.Color = RGB(191, 191, 191)

   ''----------------------------------------------------
'    Cells(iRow2, ITOGO_COL) = "Итого по странице " & iPageNum & ":"
'    Range(Cells(iRow2, FIRST_COL), Cells(iRow2, LAST_COL)).FormulaR1C1 = _
'        "=SUBTOTAL(9,R[" & iRow1 - iRow2 & "]C:R[-1]C)"
'    Rows(iRow2).Font.Bold = True
    iRow1 = lLastRow '+ 9
Next
'iRow2 = Cells(Rows.Count, FIRST_COL).End(xlUp).Row + 1
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row '+ 9 'hpb.Location.Row - 9

ActiveWindow.View = viewState
End Sub
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вывод строковых значений в ячейку через запятую, Объединение строковых значений при вводе с контролов формы
 
gling, спасибо за помощь. Ну ваш вариант в принципе, задачу решает, правда если поле контрола Tekst3 пустое, то значение Tekst3 в любом случае не пустое, а значит все равно запятая присутствует. Может быть есть возможность проверки переменной на количество знаков в поле? И если количество знаков 0, тогда запятая не нужна?
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вывод строковых значений в ячейку через запятую, Объединение строковых значений при вводе с контролов формы
 
Уважаемые гуру, прошу вашей помощи! Понимаю, что решение где-то на поверхности, но самостоятельно решить не могу. Поиск по сайту не помог. Нужно вывести в ячейку значения combobox'ов и textbox'ов как одну строку разделенную запятыми. Понимаю, что нужна некая проверка на заполненность поля и в случае если поле не пустое, после значения ставить запятую. Пытался решить вопрос при помощи Replace, но желаемый результат не получен.
Код
Private Sub CommandButton1_Click()
lRow = WorksheetFunction.CountA(Range("B:B")) + 1
i = lRow - 1

strana = ComboBox1.Value
raion = ComboBox2.Value
gorod = "г. " & TextBox1.Text
ulica = TextBox2.Text
dom = "д. " & TextBox3.Text
kvartira = "кв. " & TextBox4.Text

Addr = strana & ", " & raion & ", " & gorod & ", " & ulica & ", " & dom & ", " & kvartira ' если поле пустое получается лишняя запятая
'Addr = Replace(Application.Trim(strana & " " & raion & " " & gorod & " " & ulica & " " & dom & " " & kvartira), " ", ", ") ' вставляет запятую 
 'вместо каждого пробела вообще везде


Sheets(1).Cells(lRow, 2).Value = i
Sheets(1).Cells(lRow, 5).Value = Addr
Unload Me
End Sub

Private Sub UserForm_Initialize()
With Me.ComboBox1
.AddItem "Россия"
.AddItem "Уганда"
End With
With Me.ComboBox2
.AddItem "Ханты-Мансийский АО"
.AddItem "Северо-западный район"
End With
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Как сохранять отдельный лист сразу в двух форматах, пдф+ xls
 
Игорь, сможете помочь?
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Как сохранять отдельный лист сразу в двух форматах, пдф+ xls
 
Игорь, столкнулся с такой же ошибкой, вылетает ёксель. Причем не во всех файлах, а лишь в одном. Макрос подключен как .xla.. дело не в офисе, а скорее всего в наших кривых ручках. код прилагаю, помогите, что не так. Пошагово выполняет, в отладчике. при запуске вылетает. Хелп!
Код
Sub SaveFile()
    Dim F_Filename$, Folder$, Folder2$
    Dim strDate As String
    Dim strPath As String
    Dim DogNumb As String
    Dim wsTmpSh As Worksheet
    Dim Rgg As Range
    Set Rgg = ActiveSheet.Range("A1:F43")
    strPath = "C:\Users\Alexander\Desktop\Константин\МЕРОПРИЯТИЯ"
    Dim sFileName As String, sNewFileName As String
    Dim a As String
    a = Range("F3")
    
   DogNumb = Sheets("ФУРШЕТ").Range("F4").Value
    
    F_Filename$ = [C4] 'Split([C4], ".")(0)
    Folder$ = strPath & "\" & [C5] & " " & F_Filename
    Folder2$ = strPath & "\" & "КАРТИНКИ"
    strDate = Format(ActiveSheet.Range("$C$5"), "dd/mm/yy")
    On Error Resume Next: MkDir Folder$
 
     Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    
    ' вывод в PDF
    ActiveSheet.PageSetup.PrintArea = "$A$1:$F$43" ', Type:=2)
    Подготовить
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Folder & "\" & strDate & " " & F_Filename & ".pdf"

    ' сохранить JPG
        With Rgg
        .CopyPicture
        Set wsTmpSh = ThisWorkbook.Sheets.Add
        With wsTmpSh.ChartObjects.Add(0, 0, .Width, .Height).Chart
            .ChartArea.Border.LineStyle = 0
            .Paste
            .Export Filename:=Folder2 & "\" & strDate & " " & "ДОГОВОР (Ю)-" & DogNumb & " " & strDate & " " & ".jpeg", FilterName:="JPG"
            .Parent.Delete
        End With
    End With
    wsTmpSh.Delete

    ' сохранение в XLS

    Err.Clear: ActiveSheet.Copy: DoEvents ' копируем активный лист (при этом создаётся новая книга)
    If Err Then Exit Sub        ' произошла какая-то ошибка при попытке копирования листа

    ' убеждаемся, что активной книгой является копия листа
    If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then
        ' сохраняем файл под заданным именем в формате Excel 2003
        ActiveWorkbook.SaveAs Folder & "\" & strDate & " " & F_Filename & ".xls", xlWorkbookNormal
        ActiveWorkbook.Close False ' закрываем сохранённый файл
    End If
 
 
    Вернуть
    Select Case a
    Case "Ф"
        sFileName = "C:\Users\Alexander\Desktop\Константин\МЕРОПРИЯТИЯ\ДОГОВОР ФИЗ ЛИЦО.doc"    'имя файла для копирования
        sNewFileName = Folder & "\" & "ДОГОВОР (Ф)-" & DogNumb & ". " & strDate & ".doc"     'имя копируемого файла. Директория(в данном случае диск D) должна существовать
    If Dir(sFileName, 16) = "" Then MsgBox "Нет такого файла", vbCritical, "Ошибка": Exit Sub
    
    FileCopy sFileName, sNewFileName 'копируем файл
    Case "Ю"
            sFileName = "C:\Users\Alexander\Desktop\Константин\МЕРОПРИЯТИЯ\ДОГОВОР ЮР ЛИЦО.doc"    'имя файла для копирования
        sNewFileName = Folder & "\" & "ДОГОВОР (Ю)-" & DogNumb & ". " & strDate & ".doc" 'имя копируемого файла. Директория(в данном случае диск D) должна существовать
    If Dir(sFileName, 16) = "" Then MsgBox "Нет такого файла", vbCritical, "Ошибка": Exit Sub
    FileCopy sFileName, sNewFileName 'копируем файл
    End Select
     Sheets("ФУРШЕТ").Range("F4").Value = _
     Sheets("ФУРШЕТ").Range("F4").Value + 1
'  ThisWorkbook.Save
    Shell "explorer.exe " & Folder, vbMaximizedFocus
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Sub Подготовить()
 Dim Rng As Range
    Set Rng = Range("A1:F43")
    With Rng.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A2:F2,A11:F11").Interior.Color = RGB(220, 220, 220)
    Range("F3:F4").Font.Color = vbWhite
End Sub
Sub Вернуть()
    Dim Rng As Range
    Set Rng = Range("A1:F43")
    With Rng.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("F3:F4").Font.Color = vbRed
End Sub
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вычисление временного промежутка, Ошибка при создании пользовательской функции
 
Всем спасибо, вопрос решен. код прилагаю, может кому нибудь пригодится.
Код
Function ЧАСИКС(сутки, начало, конец)
'On Error Resume Next
If (начало.Value = 0) Then
 Exit Function
Else
If конец <= начало Then
ЧАСИКС = (конец + сутки) - начало
Else
ЧАСИКС = конец - начало
End If
    End If
End Function
 
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вычисление временного промежутка, Ошибка при создании пользовательской функции
 
Максим Зеленский, в ячейке вычислений хотелось бы видеть пусто если начало и конец = пусто.  
добавил в код предложенное Вами, если должно получится так:

Код
Function ЧАСИКС(сутки, начало, конец)
If начало = "" Or конец = "" Then
ЧАСИКС = ""
Exit Function
If конец <= начало Then
ЧАСИКС = (конец + сутки) - начало
Else
ЧАСИКС = конец - начало
End If
    End If
End Function
при равных значениях начала и конца должно быть "24:00", а не "0"
Изменено: Кунст - 03.12.2014 18:36:52
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вычисление временного промежутка, Ошибка при создании пользовательской функции
 
Цитата
Sanja пишет: Проверять что-бы не было "пусто"
В этом вопрос по сути. )) есть ли у Вас ссылка помощи, чтобы мне ее курить? ))
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вычисление временного промежутка, Ошибка при создании пользовательской функции
 
да так работает, спасибо, но при значениях "начало" и "конец" равных " " (пусто) ошибка #ЗНАЧ. Как ее избежать?
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вычисление временного промежутка, Ошибка при создании пользовательской функции
 
состряпал пример
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Вычисление временного промежутка, Ошибка при создании пользовательской функции
 
Уважаемые форумчане, сломал мозг в поисках решения при создании пользовательской функции нахождение временного промежутка. Поиск по форуму не помог. ЧЯДНТ?

Код
Function ЧАСИКС(сутки, начало, конец)
'On Error Resume Next
If конец <= начало Then
ЧАСИКС = (конец + сутки) - начало
Else
ЧАСИКС = конец - начало
End If
End Function
' сейчас это работает по формуле на листе
' Начало - лежит в ячейке Время!D6, конец в ячейке Время!D7
' ячейка in!R$2 принимает значение "24:00" если ячейка Время!D6 не пустая
' вариант №1 =ЕСЛИ(Время!D6="";"";"24:00") Ячейки отформатированы в [ч]:мм
'ЕСЛИОШИБКА(ЕСЛИ(Время!D7<=Время!D6;(in!R$2+Время!D7)-Время!D6;Время!D7-Время!D6);"")
'формула получается громоздкая и труднопонимаемая,
' если "протянуть" формулу, то Эксель понимает как 2-1,3-2,4-3, а надо 2-1, 4-3, 6-5 и.т.д.,
' исправлять руками большая вероятность ошибки при большом количестве строк.
' вариант №2 не лучше: =ЕСЛИ(Время!D6="";"";ЕСЛИ(Время!D7<=Время!D6;("24:00"+Время!D7)-Время!D6;Время!D7-Время!D6))
'так же не добавляет понятности, но это все работает
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
Страницы: 1 2 След.
Наверх