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

Страницы: 1 2 След.
Несколько условий на поиск строки и выделение её цветом (vba)
 
Цитата
написал:
Найти по одному критерию получается, а по двум нет.
Ну или по менее точному совпадению второго параметра(через Instr() ), если чуть изменить код товарища Kuzmich,
Код
Private Sub CommandButton1_Click()
   x = InputBox("Наименование", "Ввод данных")
   y = InputBox("Блок", "Ввод данных")
   If VarType(x) = vbBoolean Then Exit Sub
     
    x_text = "*" & x & "*"
    Dim cell As Range
    Set cell = Cells.Find(What:=x_text, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole)
 
    If cell Is Nothing Then
        MsgBox "Текст", vbCritical
    Else
        If InStr(1, cell.Offset(, -1), y, vbTextCompare) > 0 Then
            Range("A" & cell.Row & ":D" & cell.Row).Interior.ColorIndex = 6
        End If
    End If
End Sub
вопрос по google sheets, флажки
 
Цитата
написал:
убиралась бы и она и те, что справа от нее

Позволил себе немного изменить код doober,
Код
function onEdit(e) {
  const rightBorder = 6
  const leftBorder = 2
  var value = e.value;
  const range = e.range;
  var column = range.columnStart
  var row = range.rowStart

  if (column >= leftBorder && column <= rightBorder) {
    var onOff = value == 'TRUE'
    var startCol= onOff ? 2: column + 1
    var res = Array.from({length: onOff ? column - leftBorder: rightBorder - column}, () => onOff)
    range.getSheet().getRange(row, startCol, 1, res.length).setValues([res]);
  }
}

Regex execute, Проверка и подстановка скопированных данных в ячейку
 
Цитата
написал:
Возник вопрос по использованию RegEx.Execute
Итоговый ожидаемый результат мне не совсем понятен, однако разобраться с парой моментов для себя было интересно. :)
Взгляните, возможно что-то пригодится...
Вынес Ваш код в отдельную функцию.
Код возможно значительно сократить, разумеется.

UPD:
Цитата
написал:
объединение всех строк из непустых ячеек диапазона в единую строку и обработка такой единой строки

Однако не вышло менять регистр с помощью RegExp \U $1 и т.д.
Код
 targetArray = Application.Transpose(target.Value2)
    joinedString = Join(targetArray, ",")
    
    If objRegExp.test(joinedString) Then
      joinedString = objRegExp.Replace(joinedString, "$1 $2 $3")
      targetArray = Split(joinedString, ",")
        
      'To upper case по элементам массива
      'Определить какие строки не совпали, вывести на экран только их
    Else
        'Ни одно значения из целевых строк не совпало
    End If

    target = Application.Transpose(targetArray)
Изменено: frowzy - 02.02.2023 10:41:20
excel vba автофильтр в неправильной строке
 
Доброго дня,

должно работать в таком виде:
Код
Option Explicit

Public Sub отч_4_18()

Dim targetFilterRange As Range
Dim lastColumn As Byte
Dim ws As Worksheet

Set ws = ThisWorkbook.ActiveSheet

With ws
    '6 - номер строки для определения крайней правой колонки(при необх. изменить)
    lastColumn = .Cells(6, .Columns.Count).End(xlToLeft).Column
    Set targetFilterRange = .Range(.Cells(9, 1), .Cells(9, lastColumn))
    targetFilterRange.AutoFilter
    
    .Rows("1:5").Select
    Selection.UnMerge
    
    .Range("C10").Select
    ActiveWindow.FreezePanes = True
    
    .Columns("N:N").Select
    Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
End With


Set targetFilterRange = Nothing
Set ws = Nothing

End Sub
Макрос для вывода на печати, Макрос для печати определённых листов книги
 
Здравствуйте,

Можно примерно такой код использовать:
Код
Option Explicit

Public Sub printVisibleWorksheetsSkipFirstTwo()

    'declare vars
    Dim idx As Byte
    Dim wb As Workbook
    Dim wsCollection As Sheets
    Dim currentWs As Worksheet
    
    'init vars
    Set wb = ThisWorkbook
    Set wsCollection = wb.Sheets
    
    'start loop skiping first two elems
    For idx = 3 To wsCollection.Count
        Set currentWs = wsCollection.Item(idx)
        
            If currentWs.Visible Then
                'Debug.Print currentWs.Name
                currentWs.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
            End If
            
    Next idx
    
    Set wb = Nothing
    Set wsCollection = Nothing
    Set currentWs = Nothing

End Sub
Изменено: frowzy - 20.01.2023 09:43:47
Как превратить уровневую таблицу 1С в обычную плоскую.
 
Может что-то подобное пригодится)
я не очень силён в структурировании информации, но было интересно
Изменено: frowzy - 11.12.2019 08:22:12
счёт количества вхождений "заданного значения" в массиве или коллекции, VBA
 
Добрый день всем! :idea:  :)

Судя по тому, что не могу найти что-то внятное в поисковике, видимо я не правильно формулирую вопрос) Прошу помощи
1. Есть arr1 с перечнем уникальных значений.
2. Есть три массива, отобранных из коллекций.
3. Массивы (1 to 30000, 1 to 3) в среднем.
4. Интересует элемент( i, 1 )
Вопрос: Можно ли посчитать без кучи вложенных циклов, какое количество каждого элемента arr1(i,1) находится в остальных трех массивах.

У меня всего один инструмент на вооружении:
Код
For z = LBound(arr1) To UBound(arr1)       '27000 раз
t = 0
    For r = LBound(arr2) To UBound(arr2)    '8000-20000 раз(зависит от массива)
      If arr1(z, 1) = arr2(r, 1) Then
    t = t + 1
    arrResult(z, 1) = t
      End If
    Next r
Next z

И это довольно долго, учитывая что нужно пройти ещё по двум следующим(((

Спасибо!! :)  
Изменено: frowzy - 21.09.2019 03:05:35
Счёт количества дат , входящих в диапазон. VBA, Application.WorksheetFunction.CountIfs
 
V,
У Вас считает?
По прежнему "0"  :sceptic:  у меня(

хотя сек. ошибка у меня.



Всё! Работает, сам виноват, не внимателен чуть) Огромное спасибо  :)  :)  :)  
Изменено: frowzy - 09.09.2019 16:16:03
Счёт количества дат , входящих в диапазон. VBA, Application.WorksheetFunction.CountIfs
 
Файл пример.
Счёт количества дат , входящих в диапазон. VBA, Application.WorksheetFunction.CountIfs
 
V,
DateOfChecking1 as date , DateOfChecking2  as date.
В них забраны даты из массива дат.
DateOfChecking1  01.09.2019
DateOfChecking2  08.09.2019

В диапазоне дат такие даты есть.

c = Application.WorksheetFunction.CountIfs(RangeDat, DateOfChecking1) - считает корректно
Изменено: frowzy - 09.09.2019 15:30:17
Счёт количества дат , входящих в диапазон. VBA, Application.WorksheetFunction.CountIfs
 
Добрый день. Не выходит сосчитать диапазон дат.
Можно и циклом, думаю. Но всё же интересно, как правильно написать условия в скобках...?

Помогите пожалуйста. На форуме не увидел по поиску(

Set RangeDat = sh_bb.Range(Cells(8, 61), Cells(lr, 61))
c = Application.WorksheetFunction.CountIfs(RangeDat, ">=" & DateOfChecking1, RangeDat, "<=" & DateOfChecking2)
c = Application.WorksheetFunction.CountIfs(RangeDat, ">=DateOfChecking1", RangeDat, "<=DateOfChecking2")
Оба варианта возвращают 0

Благодарю!
Изменено: frowzy - 09.09.2019 15:13:53
VBA коллекции. Заполнить диапазоном значений для каждого item, Вопрос о коллекциях и массивах
 
Большая благодарность Sanja, буду внедрять в боевую задачу)) долго думал как решить это, а ещё больше собирался оформить хоть какой-то пример с вопросом :D .
Теперь вижу направление) буду познавать
Изменено: frowzy - 30.07.2019 13:48:24
VBA коллекции. Заполнить диапазоном значений для каждого item, Вопрос о коллекциях и массивах
 
Добрый день.

Прошу помощи в понимании работы коллекций, или решения задачи другим способом.

Есть данные на листе "Реестр", которые мы благополучно забираем в массив для работы. проделываем с ними определённые действия, после чего возникает невыполнимая (для меня) задача... :
Так как данные на листе "Реестр" накопительные, то хочется пройти по массиву снизу вверх и собрать только уникальные значения столбца E.
Но при этом  нужно знать и значения столбцов "А" и "С" для данной строки , чтобы при записи на лист "Итог" внести их напротив уникального совпавшего элемента из листа "Реестр" столбец Е.

Другими словами нужен ещё один массив , но уже только с отобранными уникальными значениями.
Пример во вложении. На листе "Итог" готовый и желаемый результат

Заранее благодарен всем , кто постарается помочь.  
         
Доработка макроса, работа с большими таблицами
 
Помощь оказана, большая благодарность Ігор Гончаренко
Доработка макроса, работа с большими таблицами
 
Добрый вечер, уважаемые .

Есть макрос , которым все благополучно пользуются в отделе. Работа по проверке шифров в пределах больших (50,000+ строк) массивов
Обнаружено, что он работает некорректно в определённых случаях, плюс выдаёт "отчёт" в виде простой фразы, а хотелось бы причину.

Автора даже знать не знаю, плюс стадия познания Excel не позволяет мне "допилить" всё как надо.

Так же хотелось бы прокомментировать уже существующий макрос для понимания его работы и дальнейшей оптимизации для других баз (так как форма строго зависит от заказчика) , затем добавить потенциальную (закомментированную :) )  возможность проверки по дополнительному столбцу (из базы заказчика).

Так как с такими просьбами в данном разделе впервые, то даже не представляю сколько может стоить такая работа, учитывая что сам код устраивает и его переписывать не нужно.

Спасибо за отзывчивость , напишите пожалуйста условия в ЛС.


P.S. Хотелось бы узнать , проводит ли кто online уроки.
К примеру, я бы не против оплатить потраченное время, если мне кто-то объяснит принцип работы того или иного макроса. Параллельно читаю и развиваю тему VBA, поэтому совсем уж деревянным надеюсь не буду.
Надо в макросе сделать так чтобы добавлялся второй адрес для рассылки
 
Цитата
Юрий М написал:
По вопросу: на работе макросом делаю рассылку и строку адресатов формирую циклом, перебирающим ячейки, в каждой из которых по одному получателю.
Добрый день. А можете для примера ознакомить с кодом. Тема VBA очень интересно)

Благодарю! :)  
Изменено: frowzy - 30.05.2019 16:28:38
Надо в макросе сделать так чтобы добавлялся второй адрес для рассылки
 
У меня вообще руки трясутся , когда я редактор VBA открываю)  :D
Но всё же ему вроде там нужно диапазон расширить, чтобы Ваши советы заработали корректно)
Надо в макросе сделать так чтобы добавлялся второй адрес для рассылки
 
Цитата
Алексей Счастливый написал:
второй адрес для рассылки
В копию или нет?)  
Отдельный список строк из "Базы" в "Отчёт" по двум критериям, Создание отдельного списка из массива данных макросом
 
Цитата
_Igor_61 написал:
результаты у Вас неверные будут выходить

Добрый день. У Вас конечно очень символичное количество сообщений в профиле) но всё же до 2020 не дотянете :)
Добавилось пару столбцов - изменил пару значений в макросе. (на что хватило опилок))

В исходном файле для задачи всё в порядке, всё работает как надо.  В рабочем бардаке отказывается работать корректно..., подскажите где поправить, пожалуйста.
Удаляет фильтры и нумерацию столбцов, не фильтрует - выдаёт полный список.
Изменено: frowzy - 25.05.2019 09:06:02
Отдельный список строк из "Базы" в "Отчёт" по двум критериям, Создание отдельного списка из массива данных макросом
 
Цитата
_Igor_61 написал: В файле у Вас не "соответствует", а "сооветствует"  
списываю всё на конец рабочего дня )

Большое человеческое спасибо) за помощь. Всё работает как надо !!)
Теперь в пользовании новый инструмент, который, надеюсь, получится адаптировать и для других задач))

P.S.
А если переделать потом не под номер коробки, а определённую дату или период дат переделывать, то макрос сильно изменится?
Отдельный список строк из "Базы" в "Отчёт" по двум критериям, Создание отдельного списка из массива данных макросом
 
Привет друзья! Снова пришёл за помощью к вам. :oops:

Задача состоит в том, чтобы создать список на Лист2 макросом.
В теории!) :D будет создан Лист2 с шапкой как в основном файле, и , в ячейке А2 (к примеру) ввести номер коробки и , вуаля)))), список со строками по 2м критериям(ниже).
Если получится сделать авто-регулировку диапазона строк, то нужен запас несколько строк вниз)

Есть 33 тысячи строк, каждая из которых - это хар-ки предмета.

Фасовка предметов идёт в коробки, штук по 100 примерно.
Чтобы передать коробку нужно создать отдельный файл-список строк с номером данной коробки и пометкой "соответствует"(другие любые не входят).
Супер-фильтр VBA который когда-то взял на вооружение к сожалению не подходит(( так как там весь объём остаётся

В примере на листах 2,3 сделал так , как хотелось бы это увидеть в итоге.


Заранее благодарен каждому :)

З.Ы. может получится как-то реализовать через копирование основного листа и удаление лишнего... Тоже бы подошло
Вывод всех наименований по условию
 
Цитата
Mershik написал:
возможно еще вариантов подкинут
пользуясь случаем)) и сомневаясь в создании отдельной темы...

Ситуация похожая:
Собираюсь на лист2 загружать базу для проверки основного списка лист1.

В базе лист2 могут быть стрОки с пометкой "беда" или "победа" с абсолютно одинаковыми значениями строкИ.
Основной список лист1 содержит стрОки с критериями в единственном экземпляре, в отличии от листа2.


Задача состоит в том, чтобы игнорируя все значения "беда", мы вывели/показали только значение "победа", если таковое имеется, разумеется, для данных условий.


НО! Если значения "победа" нет вовсе, то было бы идеально вывести последнее(самое нижнее по строкам) значение "беда" для данного критерия(col1, col2...)

Дату показать было бы вообще идеально)

Заранее благодарю за помощь!




Просчитать взаимный выбор людей по анонимному запросу
 
Aleksei_Zhigulin, С Power Query к сожалению не работал, но думаю что вариант будет очень даже интересен.  :idea:
Приду с работы предложу оба варианта жене ;) )) Интересно что за такой "Индекс дружелюбности"?) :)  

Stics, Ок проверил ещё одного и всё в порядке :idea: , дома гляну внимательнее остальных и Ваш исправленный вариант.
Спасибо! 8)
Всё проверил, подтверждаю что второй вариант более правильный. Будем пользоваться!)
Просчитать взаимный выбор людей по анонимному запросу
 
Stics, Проверил по одному человеку, всё сошлось)) Супер!!!
Да, у первой девочки и правда 3, оформлял на скорость, извиняюсь.

Благодарю , облегчили жизнь нам :D  :D  :)  
Просчитать взаимный выбор людей по анонимному запросу
 
Добрые день, уважаемые форумчане. :)

Уже много задач решил с помощью вас, работа стала в разы проще) :D
В очередной раз (только уже жене :* ) нужна ваша помощь.

Анонимный опрос учащихся , в котором они ставят друг другу плюсы(+) или минусы(-)
Данные все в таблице во вложении. Задача в том, чтобы посчитать со сколькими людьми была взаимная симпатия((взаимный "+") антипатия(взаимный "-"). Сумма выборов просто без взаимности, хотя это уже может сам сделаю.
Она кое-что считала вручную, потому некоторые "плюсики" уже помечены красным (к примеру у первой девочки две взаимных симпатии).

Можно ли как-то это быстро посчитать с помощью формулы?
Заранее благодарю за ответ или ссылку в похожую тему!
Формула счёта значений по множеству аргументов, посчитать без дубликатов
 
БМВ, Супер, уже не первый раз получаю супер точный ответ)) Как только у Вас всё это получается..)) :)  :)  :) :)  

Огромная благодарность!!!
Формула счёта значений по множеству аргументов, посчитать без дубликатов
 
БМВ, имел ввиду что если значения
1EK1---0M5C---39S3
То в данной строке каждый принимал участие, и каждому так сказать "+1" (в таблице для каждого)

А вот Ваш пример обрадовал, но вот если я заменю всё по примеру
1EK1---1EK1---1EK1
То он посчитает в таблице значений цифру 3, хотя в данной строке по сути 1 и тот же человек.

Изменил 2 строки для критерия
ZSN.0405-C51200-03-TX5-0127
поставил одного и того же человека 1EK1 по сути он поучаствовал в 2 строках, а счёт в таблице = 6

Спасибо что пытаетесь понять))
Изменено: frowzy - 08.12.2018 18:51:36
Формула счёта значений по множеству аргументов, посчитать без дубликатов
 
БМВ, Я пытался, честно :)  
Формула счёта значений по множеству аргументов, посчитать без дубликатов
 
vikttur, по идее никогда для одной отдельной строки)
Формула счёта значений по множеству аргументов, посчитать без дубликатов
 
Тааак( В общем значения вверху в зелёной таблице это люди. Работу могут выполнить до 3 человек - в таком случае будет 3 разных значения. В случае если 2 человека, то данные в БД могут быть как 1EK1-1EK1-0LF8 соответственно, так и 1EK1-0LF8-0LF8, ВАЖНО то , что тут принимало участие 2 человека (1EK1 и 0LF8) и как это вытащить для всего диапазона БД по каждой строке ....я не знаю(

Самый левый критерий в БД может повторяться, а знать необходимо то, во скольких "строках" поучаствовал каждый конкретный шифр для одного критерия в зелёной таблице.

Т.е. жёлты я отметил ячейки (не все) в которых по идее должны быть значения , т.к. шифр есть в БД


Добавлял столбец L , чтобы считать в 3 раза, для столбцов B F J по критерию 1 2 3 соответственно, но это чуть больше чем неудобно.
Страницы: 1 2 След.
Наверх