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

Страницы: 1
Получение формата даты
 
Есть строка
14 июн.,   04:57
на дату не реагирует ни прибавить день не умножить не позволяет - мне нужно это число чтобы отображалось в формате даты 00.01.1900 00:00. Или точнее 00.01 00:00
Изменено: igorbych - 15.06.2025 12:51:59
Обработать текст 13 янв., 07:59:13 как дату, Как помочь екселю такое представление понимать датой или при вставке удалить " .,"
 
После вставке в ячейку и дальнейшем удалении в ручную точки с запятой ексель автоформатирует текст в дату которую распознает - как автоматизировать данную операцию или какой то другой вариант.
Изменено: igorbych - 13.01.2022 14:10:23
Ссылка на смежный лист к нужной ячейке
 
Код
ДВССЫЛ(НАЧАЛОСТРОКИ(ПСТР(ЯЧЕЙКА("filename";A2);ПОИСК("]";ЯЧЕЙКА("filename";A2))+1;31);"Смена")&"!E7")
Помогите допилить ссылку чтобы она брала значение не с E7 а с колонки Е и номер строки брала в ячейке О12 не текущего листа а искомого НАЧАЛОСТРОКИ(ПСТР(ЯЧЕЙКА("filename";A2);ПОИСК("]";ЯЧЕЙКА("filename";A2))+1;31)
Посчитать минимальный средний балл уменьшение влияния от старости
 
Каждой оценке дается уменьшение влияния от старости (150 оценок). Надо посчитать минимальный средний балл, когда в каждой недели более новые оценки будут плохие (Единицы), а потом отличные (пятерки). Если заранее известно количество этих оценок внутри недели.

Как можно переелать формулу
Код
СУММПРОИЗВ(A11:A160;M11:M160)/СУММ(A11:A160) 
используя  таблицу в диапазоне B8-E9 (без использовния доп. вычислений)

не знаю как лаконичнее изъясниться. Есть формула чтобы она работала надо вручную сделать нужный ряд из исходных данных. Чтобы не устраивать регулярные извращения - связь же есть диапазона B8-E9 с итоговым значением = поэтому думаю есть какое то решение для просчета.
Изменено: igorbych - 28.07.2020 20:15:11
Поиск где нет формулы в листах которые не содержат часть слова
 
Помогите переделать чтобы поиск велся на всех листах где в имени листа нет символов"Смена"
Код
Sub NoFormula() ' поиск где нет формулы
Dim iSh As Worksheet
Dim iCl As Range
Dim iStr$
For Each iSh In Worksheets
    If iSh.Name Like "*Смена*" Then  'Смена*
        For Each iCl In iSh.Range("H11:J129").Cells
            If iCl.HasFormula = False Then
                If IsEmpty(iStr) Then
                    iStr = "Лист - " & iSh.Name & ", ячейка - " & iCl.Address(0, 0) & vbCrLf
                Else
                    iStr = iStr & "Лист - " & iSh.Name & ", ячейка - " & iCl.Address(0, 0) & vbCrLf
                End If
            End If
        Next
    End If
Next
MsgBox iStr
End Sub
Выделение листов из списка ячеек, При отсутствии листа как вывести значение этой ячейки
 

Подскажите как при отсутствии листа вывести значение этой ячейки.

Код
Private Sub Кнопка37_Щелчок() 
'Водители 
  On Error GoTo ErrorHandler   
  Dim arr() 
  Dim c As Range, i& 
  i = -1     
  For Each c In Sheets("График").Range("G5:AS5").Cells         
    If Trim(c) <> "" Then           
      i = i + 1             
      ReDim Preserve arr(i)             
      arr(i) = Trim(c)         
    End If     
  Next Worksheets(arr).Select
  
GoTo Ends:
 
ErrorHandler:   
MsgBox ("В списке есть водитель которого нет в базе") ' Добавить значение не найденного листа 
Ends:  
End Sub 
Изменено: igorbych - 08.06.2020 08:04:48
Появление странных ярлыков, Как их предотвращать, удалять и сократить имя ярлыка
 
В результате скорее всего каких то сбоев когда ексель вылетает или еще каких либо причин в проекте Екселя появляются клоны ярлыков листов которых в принципе нет и начинает у них увеличиваться имя ярлыка добавлением цифр.
Я выделял в старом документе листы и переносом или копированием переносил их в новый документ. Но так исчезают клоны ярлыков, но наросты в имени ярлыка остаются.
Как это все правильно делать и предотвращать?
Изменено: igorbych - 12.05.2020 09:40:04
Определить последнюю ячейку в нужном столбце
 
Необходимо скопировать диапазон ячеек от B11 до последней ячейки в столбце E.
Пытаюсь определить последнюю ячейку - определяет последнюю строку по первому столбцу где значения в строках ниже.
Помогите разобраться.
Код
Private Sub Worksheet_Activate()
    Dim LastRow As Long
    With ActiveSheet
     LastRow = .Cells(.Rows.Count, "E").End(xlUp).Row
    End With
    MsgBox LastRow
End Sub
Как удалить окно активации надстройки плекс
 
Не могу ни чего сделать пока оно не закрыто
Поиск даты и времени с заданной погрешностью, Надо макросом сделать поиск даты указанной в ячейке А1 плюс минус погрешность указанной в B1
 
В книге много листов, на каждом много столбцов с данными. Надо сделать поиск ближайшего значения и потом по кнопке далее делать переход к другому ближайшему значению даты со временем.
Столбцы не привязаны к какому то правилу но с право от каждого столбца даты и времени есть столбец с числами.
Желательно
1. поиск даты указанной в ячейке А1 плюс минус погрешность указанной в B1
2. условие второе при нахождении нужной даты - проверка значения в столбце с право от числа. Поисковое значение вводить в C1 и его погрешность в D1

Например найти платеж 25.11.2019 07:40 (указано в A1) на сумму 220 р (указано в C1) Погрешность даты 30 минут (указано в B1) и 10 отклонение от значения (Указано в D1)
Изменено: igorbych - 01.12.2019 19:03:47
Найти ячейку, которая не содержит формулу, в определенном диапазоне на всех листах
 
В результате не правильной работы макроса - произошло копирование значений. Помогите найти такие ячейки.
Есть ли событие на выделение строки?
 
Хотел для начало попросить совета - как само событие на обработку сделать удобное, чтобы на всех листах работало. Пока придумал "Макрос начинает работать при выделении всей строки с определенным номером например" Подскажите есть ли такая обработка или может предложите что-то еще как это обустроить. Делать кнопку на каждый лист как то громоздко.
Надо например 7 строку скопировать в конец листа - значения и примечания.
Вставка примечания если это формула
 
Есть два алгоритма как сделать чтобы они работали вместе?
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    With Target
        If .Count < 3 Then Call CC(Target)
        If .Count < 3 Then Exit Sub
            On Error Resume Next
            If CDate(.Value) Then
                Select Case .Column
                Case 1
                        Call bb
                End Select
        End If
    End With
End Sub
Код
Sub CC()(Target As Range)
Dim NewCellValue$, OldComment$
Dim cell As Range
 On Error Resume Next
    'если ячейка не в отслеживаемом диапазоне, то выходим
     If Intersect(Target, Range("K7,Q7,AF7")) Is Nothing Then Exit Sub

    'перебираем все ячейки в измененной области
    For Each cell In Intersect(Target, Range("K7,Q7,AF7"))

If Target.HasFormula = False Then cell.Comment.Delete
If Target.HasFormula = False Then Exit Sub

            NewCellValue = cell.Formula     'или ее содержимое

        With cell
            .Comment.Delete     'удаляем старое примечание (если было)
            .AddComment         'добавляем новое и вводим в него текст
            .Comment.Text Text:=NewCellValue

            .Comment.Shape.TextFrame.AutoSize = True    'делаем автоподбор размера
            .Comment.Shape.TextFrame.Characters.Font.Size = 8
        End With
    Next cell
End Sub
Изменено: igorbych - 22.07.2019 08:59:39
Подсчитать промежутки между интервалами и если он более 3 часов суммировать такие отрезки
 
Сделал все как надо - но формула громоздкая и при 20-30 страницах обработки подтормаживает. Может как то макросом можно обработать или по другому формулу сделать.
Страницы: 1
Наверх