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

Страницы: 1 2 След.
Ранжирование по условию
 
Цитата
написал:
...загибаю на пальцах 4-е место, 5-е место, 6-е, 7-е, 8-е, далее...  разгибаю среднее значение...немного другой результат )
да, тут что то криво написал) имелось ввиду 4-7 место и все получат по 5,5)
Ранжирование по условию
 
Павел \Ʌ/, ляяяя какая красота) спасибо!) это то, что нужно.

АlехМ, Вам тоже большое спасибо!
Ранжирование по условию
 
АlехМ,
Цитата
написал:
Вы скорее всего ошиблись, в этом примере делят место три участника, а не четыре.
Глобально делят 4 участника, но, так как один из них другого класса, то получается что он (участник 187) получает ранг среди только своих "соклассников" - соответственно 5 место, а 3 оставшиеся участника должны получить 5 место (так как делят в своем классе 4-6 место).
Предположим что участник 187 был бы тоже D класс (номер класса 3) тогда участники 170, 187, 183, 127 должны все получить 4,5 место (так как делят среди своих "соклассников" 4-8 место)
Ранжирование по условию
 
Sanja,  Функция отличная, но обязательно нужен ранг с половиной. Дело в том, что потом это поделенное место используется для определения количества очков. если участник поделил место, то он не может быть ни 5 ни 6, он 5-6 или 5,5. а если например 3 участника делят место: например 7, 8, 9, то все они получают 8 место.


АlехМ, На самом деле почти получилось, но не работает, если больше 2х делений мест...приложил файл, в котором попробовал при больше количестве делений.

Sanim,  я тоже не смог заставить работать эту функцию...
Ранжирование по условию
 
Добрый день, Уважаемые форумчане.
Прошу помочь решить такую задачу:

Есть таблица, в которой указаны места, занятые участниками соревнований (колонка А).

У каждого участника есть свой класс: колонка С и Е (E это числовое значение каждого класса).

Задача: отранжировать каждого участника только по своему классу, по возрастанию и чтобы если заняли одинаковое место, то указывалось среднее место.
Желательно формулой. vba можно но

Почитал кучу материала. но так и не нашел вариант, где выводится среднее.

Делить места может любое количество участников, хоть все (например с 1 по 17) .

Прошу помощи.
скрытие колонок одновременно в группе листов
 
nilske, ZVI, Спасибо за помощь, проблема решена.
скрытие колонок одновременно в группе листов
 
Всем добрый день!

Столкнулся с такой проблемой:
Выделяю несколько листов (при этом активируется первый лист в группе листов), и хочу скрыть на всех листах определенные колонки.

При выполнении макроса:
1. все листы выделяются;
2. на всех листах выделяются нужные колонки
3. на 1 листе нужные колонки скрываются, на остальных нет.

Прошу подсказать, как поправить код, чтобы скрывались колонки на всех выделенных листах?

Ps. Записано макрорекордером
Pss. Раньше перебирал листы, но есть условия проверки при переходе на каждый лист, что сильно тормозит процесс выполнения кода. Поэтому хотел ускорить, за счет одновременного скрытия колонок на всех листах.

Код:
Код
Sub Hidden()
    Sheets(Array("1.16", "1.8", "1.4", "1.2")).Select
    Sheets("1.16").Activate
    Range("H:S,W:AH,AL:AW,BA:BL,BP:CA,CE:CP,CT:DE,DI:DT,DX:EI,EM:EX").Select
    Range("EX1").Activate
    Selection.EntireColumn.Hidden = True
End Sub
Обращение формы к скрытому листу
 
Дмитрий(The_Prist) Щербаков, New, спасибо!
помогло.
Обращение формы к скрытому листу
 
Дмитрий(The_Prist) Щербаков,
К сожалению все равно ругается. наверно проще выложить файл тут, чтобы было проще...

надо зайти как админ, пароль 911911911
Изменено: VVS_001 - 09.09.2021 14:34:08
Обращение формы к скрытому листу
 
Дмитрий(The_Prist) Щербаков,

Цитата
Дмитрий(The_Prist) Щербаков написал:
VVS_001  написал:& Sheets("ФИО")
Тут все понятно, конечно, не указал ссылку на книгу,
а вот в  .Cells(Rows.Count не знаю как указать...
Код
UserForm1.ComboBox1.RowSource = ThisWorkbook.Sheets("ФИО").Range("A2:A" & ThisWorkbook.Sheets("ФИО").Cells(ThisWorkbook.Sheets("ФИО").Rows.Count, 1).End(xlUp).Row)

Так пишет type mismatch

Подскажите как правильно..

Обращение формы к скрытому листу
 
Дмитрий, обращение идет таким образом:
Код
Private Sub UserForm_activate() 
        UserForm1.ComboBox1.RowSource = ThisWorkbook.Sheets("ФИО").Range("A2:A" & Sheets("ФИО").Cells(Rows.Count, 1).End(xlUp).Row)
End Sub

Все еще ругается..

Цитата
Jack Famous написал: окно скрыли, а нужно листы скрыть
Ну в целом мне главное чтобы пользователь ничего не видел.
Неверно указал, что скрыл листы, хотя действительно скрыл окна.
Обращение формы к скрытому листу
 
Уважаемые формучане, добрый день!
Суть проблемы следующая:
При открытии файла вызывается форма 1.
На ней есть выбор пользователь ты или адимн.
Если админ и вводишь верный пароль, становится видимыми все листы.
Если пользователь, то вызвается форма 2. При этом пользователь не видет листов.
Форма 2 содержит поле combobox, которое берет данные из листа.
Но в связи с тем, что вкладки скрыты, combobox ругается и потом данные не берутся.
Как сделать так, чтобы форма 2 могла брать данные из скрытого листа, при этом пользователь ничего не видел.
Скрытие листов выполнено командой:
Код
Private Sub Workbook_Open()
Application.EnableCancelKey = xlDisabled
Application.ScreenUpdating = False
    With Windows("Для учета рабочего времени1.xlsm")
        .Visible = False
    End With
    Call UserForm1.Show
End Sub

Изменено: VVS_001 - 08.09.2021 14:31:28
VBA. Запись формулы условного форматирования
 
Решил Сам: в скобках указал - .Address(ColumnAbsolute = True)

Еще раз большое спасибо sokol92, !!
VBA. Запись формулы условного форматирования
 
sokol92,
Спасибо большое за помощь!
Теперь такая проблема. Он дает абсолютную ссылку:

=.......СУММ($J8:$Y$8)=0)))), есть ли возможность получить $Y8  вместо $Y$8?
VBA. Запись формулы условного форматирования
 
sokol92,

Можете подсказать как правильно интегрировать его в код?

Ну то есть я понимаю, что он вывел текст в окно Immediate Window и собрал там формулу так, как она должна выглдядеть в итоге. Как теперь из этого окна вывести ее обратно в формулу УФ?
VBA. Запись формулы условного форматирования
 
Добрый день уважаемые форумчане!
Хочу макросом задать условное форматирование по нескольким критериям.
Формулу для определения критериев я подготовил, но хотелось бы чтобы одно условие было изменяемым.
Код:
Код
Range("B8:B518").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=И($D8>0;ИЛИ($B8=0;ИЛИ(И($D8>0;$E8=0;$J8=0);И($D8>0;$E8>0;ИЛИ($J8=0;$K8=0));И($D8>0;СУММ($J8:$P8")=0))))"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = True

Вопрос такой: в конце формулы "И($D8>0;СУММ($J8:$P8")=0)" - P8 ячейка переменная, зависит от количества колонок в таблице. 8 строка в формуле не изменится, надо только менять название столбца.
Я придумал такой вариант:
Код
"=И($D8>0;ИЛИ($B8=0;ИЛИ(И($D8>0;$E8=0;$J8=0);И($D8>0;$E8>0;ИЛИ($J8=0;$K8=0));И($D8>0;СУММ($J8:$" & Cells(8, 15 + Range("O3").Value) & ")=0))))"
где в ячейке О3 - счетчк строк. Таким образом, если в четчике цифра 10, то в формулу должно вставаится Y8 и получиться в итоге: ..... И($D8>0;СУММ($J8:$Y8")=0)

но к сожалению такой трюк не прокатил.
Есть ли другой способ вставить в формулу для УФ переменную?
В макросе поиск значения несколько раз
 
Никто не может помочь?
В макросе поиск значения несколько раз
 
Ой, это я не перименовал пример:
В 22 строке тоже:
Код
Set GCell = Sheets("Лист1").Columns("A:A").FindNext(What:=iResult, LookIn:=xlValues, LookAt:=xlWhole, after:=№Address)
В макросе поиск значения несколько раз
 
Попробовал вот так:
Код
Sub example
iResult = InputBox("Укажите номер ", "Введите цифру")
 
If iResult = "" Then
    MsgBox "Ни одного значения не введено!", vbCritical
Exit Sub
 
ElseIf iResult <> 0 Then
Set GCell = Sheets("Лист1").Columns("A:A").Find(What:=iResult, LookIn:=xlValues, LookAt:=xlWhole)
If GCell Is Nothing Then
MsgBox "Цифра " & iResult & " не найдена", vbExclamation, "Ошибка"
Exit Sub
Else

If Not GCell Is Nothing Then
    №Address = GCell.Address
Do
Sheets("Лист1").Range(GCell.Offset(0, 14), GCell.Offset(0, Range("Лист2!А1").Value - 1 + 13)).Copy ' определяю количество столбцов в этой строке, из ячейки в другом листе, которые надо скопировать
Sheets("Лист2").Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Set GCell = Sheets("РЕГИСТРАЦИЯ").Columns("B:B").FindNext(What:=iResult, LookIn:=xlValues, LookAt:=xlWhole, after:=№Address)
Loop While Not GCell Is Nothing And GCell.Address <> №Address
End If
end 
Но так не сработало.. может кто нибудь подсказать как исправить код?
Изменено: VVS_001 - 22.10.2020 10:39:08
В макросе поиск значения несколько раз
 
RAN, а можете подсказать как в коде это реализовать?
В макросе поиск значения несколько раз
 
Уважаемые форумчане, добрый день!
Подскажите, как сделать так, чтобы после нахождения числа в определенном столбце, и выполнения действий со строкой где нашлось это число, продолжить поиск, и в случае повтороного нахождения числа делать теже действия и с этой строкой?
Текстовый пример:
Есть столбец А - в нем хранятся цифры.
Есть стоблбцы B-ФФ - хранятся разные данные.
При каждом нахождении цифры (например 3), надо скопировать несколько столбцов в строке,которой стоит цифра 3.
Код, который я использую для поиска:
Код
Sub example
iResult = InputBox("Укажите номер ", "Введите цифру")

If iResult = "" Then
    MsgBox "Ни одного значения не введено!", vbCritical
Exit Sub

ElseIf iResult <> 0 Then
Set GCell = Sheets("Лист1").Columns("A:A").Find(What:=iResult, LookIn:=xlValues, LookAt:=xlWhole)
If GCell Is Nothing Then
MsgBox "Цифра " & iResult & " не найдена", vbExclamation, "Ошибка"
Exit Sub
Else
Sheets("Лист1").Range(GCell.Offset(0, 14), GCell.Offset(0, Range("Лист2!А1").Value - 1 + 13)).Copy ' определяю количество столбцов в этой строке, из ячейки в другом листе, которые надо скопировать
Sheets("Лист2").Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
end sub

Я так понимаю, что надо использовать for each? Но пока не понял как это сделать...
Объявить переменную типа время (дата и время) из 2 переменных
 
На самом деле я примерно знаю как это работает. Просто сперва не праивльно объявил переменную, а потом просто глазами не увидел, что там без секунд. Вообще, работу с да той и временем в Екселе очень не люблю, потому что постоянно с разными приколами сталкиваюсь.
Объявить переменную типа время (дата и время) из 2 переменных
 
New, вы совершенно правы, что там дата и время. если надо, могу библитеку скинуть)
я проверил на наличие секунд, колонку 7. И в итоге в формуле "текст" добавил секунды, и пошло дело)

Так что, спасибо за помощь!!
Объявить переменную типа время (дата и время) из 2 переменных
 
New, а, не, конечно изменил, как вы и написали сделал:
Код
Dim Q1 As String

Q1 = App.Data.Value & App.Time.Value

Dim Q2 As Range

Set Q2 = AppListObj.ListColumns.Item(7).Range.Find(Q1, LookIn:=xlValues, lookat:=xlWhole)
Изменено: VVS_001 - 02.10.2020 18:52:26
Объявить переменную типа время (дата и время) из 2 переменных
 
New, я выложил пример, там все можно посмотреть.

Ігор Гончаренко, да, я понимаю. Поэтому я сделал текстовое значение в колонке 7..
Объявить переменную типа время (дата и время) из 2 переменных
 
New, к сожалению, не работает. Точнее сказать, он добавляет запись, не смотря на то, что в 7 колонке есть такое значение.
Q2 у меня тоже отображается правильно, но на листе не видет..
Объявить переменную типа время (дата и время) из 2 переменных
 
New, Спасибо за замечания.

код поправил:
Код
Sub AddApp() ' Добавление записи
    Set ShApp = ThisWorkbook.Worksheets("Запись")
    Set AppListObj = ShApp.ListObjects("Запись_Tb")
    
    Set AppListRow = AppListObj.ListRows.Add
    
    Dim Q1 As Date
    Dim Q2 As Range
    
    Q1 = App.Data.Value & " " & App.Time.Value
    Set Q2 = AppListObj.ListColumns.Item(7).Range.Find(Q1, lookat:=xlWhole)
    
    If Q2 Is Nothing Then
    
    AppListRow.Range(1) = App.txb_surname.Value
    AppListRow.Range(2) = App.txb_name.Value
    AppListRow.Range(3) = App.txb_ptr.Value
    AppListRow.Range(4) = App.txb_mobile.Value
    AppListRow.Range(5) = App.Data.Value
    AppListRow.Range(6) = App.Time.Value
    
    Else
     MsgBox "Время уже занято!"
    End If

Цитата
New написал:
3. не понятно, какие значения в этих переменных в 16 строке: App.Data.Value & App.Time.ValueНапишите что там в этих переменных
В этих переменных, то, что заполнено в форме.
В примере увидите.
Изменено: VVS_001 - 30.09.2020 23:42:51
Объявить переменную типа время (дата и время) из 2 переменных
 
Добрый вечер!
Прошу помочь со следующей прблемой:
Изначально делаю форму, и таблицу для записи пациентов на прием.
В форме 6 полей:
Фамилия, Имя, Отчество, телефон, дата приема и время.
После заполнения формы, по нажатию на кнопку (Sub AddApp), данные добавляются в умную таблицу:
Код
Option Explicit

Dim ShApp As Worksheet
Dim AppListObj As ListObject
Dim AppListRow As ListRow

Sub AddApp() ' Добавление записи
    Set ShApp = ThisWorkbook.Worksheets("Запись")
    Set AppListObj = ShApp.ListObjects("Запись_Tb")
    
    Set AppListRow = AppListObj.ListRows.Add
    
    Dim Q1 As Date
    Dim Q2 As Range
    
    Set Q1 = CDate(App.Data.Value & App.Time.Value)
    Set Q2 = AppListObj.ListColumns.Item(5).Range.Find(Q1, lookat:=xlWhole)
    
    If Q2 Is Nothing Then
    
    AppListRow.Range(1) = App.txb_surname.Value
    AppListRow.Range(2) = App.txb_name.Value
    AppListRow.Range(3) = App.txb_ptr.Value
    AppListRow.Range(4) = App.txb_mobile.Value
    AppListRow.Range(5) = App.Data.Value
    AppListRow.Range(6) = App.Time.Value
    
    Else
     MsgBox "Время уже занято!"
    End If
    
End Sub

Прежде чем добавить запись, я хочу проверить, что эти дата и время свободны.
Для этого в 7 колонке я сделал функцию "=ТЕКСТ([@[Дата приема]];"ДД.ММ.ГГГГ")&" "&ТЕКСТ([@[Время приема]];"ЧЧ:ММ")"
и в коде прописал, что хочу сделать переменную, которая в себе объединит дату и время из формы, и эту перенную надо найти в этой 7 колонке.
Но пока не получилось, так как выдает ошибку object required и выделяет Q1 в 16 строке.

Подскажите, где ошибка?
Изменено: VVS_001 - 30.09.2020 23:05:59
Исключить строку из вычислений функции "РАНГ" по условию
 
Добрый день, уважаемые форумчане.
Бьюсь над задачей. табличка во вложении.
Проставлены места, для 8 участников. от 13 судей.
как сделать так, чтобы если в колонке Q у кого-то 1 мест больше чем половина судей (в данном случае 13 судей / 2 = 6,5 => большинство 7), функция "ранг" не учитывала эту строку в ранжировании? если такое возможно...
Скопировать непустые ячейки дипазона в другой диапазон друг за другом
 
Спасибо Kuzmich, помогло.
Страницы: 1 2 След.
Наверх