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

Страницы: 1
Нечеткий текстовый поиск, Настроить формулу для подтягивания нужного значения
 
В теории, наверное, можно искать по совпадению части. Например, взять 4 символа сначала названия Команды и произвольно в центре последовательность из 4-х символов. Затем просматривать каждую ячейку и перебирать символы по 4 знака и если и первая четвёрка и вторая найдена в одной ячейке - значит это искомая ячейка. Но всё равно остаётся вероятность не попасть.
Надстрочный шрифт в в верхние символы, Необходимо сноски выполненные в виде текста отформатированного в качестве надстрочного шрифта заменить соответствующими символами
 
Всё, я придумал, вдруг кто-то тоже озадачился: новое значение ячейки я вставляю в новую ячейку, а поиск теста отформатированного в качестве надстрочного шрифта провожу в "старой" ячейке. Но если есть более нормальное решение: welcome!
Надстрочный шрифт в в верхние символы, Необходимо сноски выполненные в виде текста отформатированного в качестве надстрочного шрифта заменить соответствующими символами
 
Такая беда: есть таблица с такими данными:
34¹,²,¹⁴/   62³,¹³/ 64⁴,⁸,⁹,¹²/ 65⁵,⁶,⁸,¹⁰,¹²/ 63⁷,¹¹/ 38¹⁴,²

Концевые сноски это текст отформатированный в виде надстрочного текста. Для дальнейшей работы нужно представить сноски соответствующими верхними символами. Я вроде понимаю как сделать:
---------------------------------------------------------
Sub UpSymbol()
Dim p As Long
Dim bSub As Boolean
Dim sI As String
Dim leftCmopoHa As String
Dim rightCmopoHa As String
Dim j As Byte, sTemp As String, sCh As String * 1, byt As Byte

For p = 1 To Len(ActiveCell.Value)
   If ActiveCell.Characters(Start:=p, Length:=1).Font.Superscript = True Then
       sCh = Mid(ActiveCell.Value, p, 1)

       sTemp = ""
       byt = CByte(sCh)
       sTemp = sTemp & IIf(bSub, getSubSymbol(byt), getSuperSymbol(byt))
       
       leftCmopoHa = Left(ActiveCell.Value, p - Len(sCh))
       rightCmopoHa = Right(ActiveCell.Value, Len(ActiveCell.Value) - Len(leftCmopoHa) - Len(sCh))
       ActiveCell.Value = leftCmopoHa & sTemp & rightCmopoHa
   End If
Next p
End Sub

Private Function getSubSymbol(i As Byte) As String
   getSubSymbol = ChrW(i + 8320)
End Function

Private Function getSuperSymbol(i As Byte) As String
   Dim iW As Integer
   Select Case i
       Case 1: iW = 185
       Case 2, 3: iW = i + 176
       Case 0, Is > 3: iW = i + 8304
   End Select
   getSuperSymbol = ChrW(iW)
End Function
------------------------------------------------------
, но как только я меняю первый надстрочный текст на символ и обновляю значение ячейки всё имеющееся форматирование слетает и в ячейке больше надстрочного текста не остаётся.
Нужен Help.
Не всегда отрабатывает макрос
 
Здравствуйте. Столкнулся с проблемкой: может кто подскажет в чем секрет.
Есть книга Excel. Первый лист: огромная таблица в 1000 строк. Еще десяток листов: в них производные из первой таблицы поменьше. Вношу изменения в первую таблицу. Запускаю макрос. Макрос ищет соответствия измененной строке на оставшихся листах и вносит изменения. Ну там еще попутно оставляет только определенный текст, производит некоторые замены и так по мелочи разные манипуляции. Ничего сверхъестественного: простецкий код, но длинный. Но столкнулся с проблемой: запускаю макрос и бац: внес изменения, но не на всех листах или внес изменения, но изменил не нужную строку, а на строку ниже, а запустишь еще разок - и все ОК. Не пойму где собака зарыта?  Пример, думаю, смысла нет прикреплять. Ничего интересного: a=selection.value - переход на следующий лист, поиск соответсвия через for и все.  
Найти и удалить в ячейке зачеркнутый текст
 
Огромное спасибо!
Найти и удалить в ячейке зачеркнутый текст
 
Здравствуйте.
Прошу о подсказке. Перебираю в таблице ячейки, в которых может быть, а может и не быть зачеркнутый текст (причем в конкретной ячейке не обязательно будет зачеркнутно все содержимое). Задача в каждой конкретной ячейке найти зачеркнутый текст и удалить его, а остальной текст должен остаться.
Фильтр по условию заданный кодом, макрос некорректно отрабатывает то, что записал макрорекодер
 
Включаю макрорекодер, фильтрую дату в колонке 10 по условию "После 31.12.2016". Выключаю макрорекодер.
Макрорекодер выдает такой код:
Код
ActiveSheet.Range("$A$4:$O$30").AutoFilter Field:=10, Criteria1:= ">31.12.2016", Operator:=xlAnd 

После этого запускаю сформированный макрос и скрываются все строки даже те, которые должны остаться видимыми.
Подскажите что не так?
Функция ВПР в VBA
 
Разрешите еще один вопрос в рамках этой темы: Есть некая форма, в которой в ячейке , допустим, L4, записана формула "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;L5:L10)". Мой макрос периодически добавляет новую строку с новыми данными, т.е. появляются данные в ячейке L11. Как макросом изменить изначальную формулу так чтобы она охватила добавленную ячейку. Был вариант макросом просчитывать сумму ячеек исключая скрытые (вы все правильно поняли - это для работы с фильтром), но я не знаю как запускать макрос при изменении фильтра.
Переход к следующему шагу цикла
 
Я немного не понял про "перезагрузку". Вот макрос: ищу совпадения номеров на двух листах и крашу их в приятный салатовый цвет, но вот беда - если совпадения нет появляется ошибка. Можно воспользоваться On Error Resume Next, но мне надо знать чего не нашлось (по этому поводу макрос будет доработан). Пишу On Error GoTo "метка", но это работает лишь раз, а второй уже ошибка. Как "обнулить" On Error?

Код
Sub Поиск_совпадений()
Dim r As Long, r1 As Long, cl1 As Long, LR As Long, sSheetName As String
Sheets("склад").Select
    LR = Cells(Rows.Count, 1).End(xlUp).Row
sSheetName = InputBox("Введите имя листа, на котором ищем совпадения", "Параметр")
Dim s As Long
    For s = 1 To LR
     Cells(s, 1).Select
     r = Cells(s, 1).Value
     Sheets(sSheetName).Select
      On Error GoTo My_Error
      Columns("B:B").Select
      Selection.Find(What:=r, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
      xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
      , SearchFormat:=False).Activate
     r1 = ActiveCell.Row
     cl1 = ActiveCell.Column
     Cells(r1, cl1).Select
     With Selection.Interior
      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .Color = 65280
      .TintAndShade = 0
      .PatternTintAndShade = 0
     End With
My_Error: Sheets("склад").Select
    Next
End Sub
 
Считаем количество однотипного оборудования, Последовательная фильтрации по трем столбцам при помощи VBA
 
Отлично! Оказывается можно и так. Спасибо.  
Считаем количество однотипного оборудования, Последовательная фильтрации по трем столбцам при помощи VBA
 
На первом листе исходные данные. На втором желаемый результат. Он же (этот результат) получен макросом. Макрос создает и заполняет новый лист "Перечень", так что чтобы просмотреть работу макроса сначала удалите или переименуйте лист "Перечень". Проверка (фильтрация) производится по 2, 3 и 6 столбцу последовательно. Макрос работает, но нуждается в оптимизации.
Считаем количество однотипного оборудования, Последовательная фильтрации по трем столбцам при помощи VBA
 
Имеем список (базу данных) эксплуатируемого оборудования (средства измерений). Оборудование имеет различные характеристики. Необходимо посчитать количество единиц оборудования, обладающего одинаковыми характеристиками. В приложении пробная версия макроса. Все работатет так как мне нужно, но в таблице примера всего 17 строк, а в реальности этот список состоит из 2500...3500 строк. На это количество строк макрос затрачивает более 2 часов. Алгоритм моей реализации очень прост: я последовательно перебираю все ячейки фильтруемых столбцов и, к сожалению, даже те, которые уже отфильтровались на предыдущих этапах фильтрации. Т.е. я фильтрую по столбцу 2 (выбираю в качестве критерия фильтрации значение первой ячейки столбца), потом по 3 столбцу (опять выбираю в качестве критерия фильтрация значение первой ячейки столбца) и аналогично фильтрую по 6 столбцу. Потом считаю сумму (опять таки перебираю все ячейки в столбце и суммирую только видимые). Затем выбираю в 6 столбце значение второй ячейки (даже если ее значение совпадает с первой). Опять суммирую и т.д. Образовывается большое количество одинаковых строк, которые я потом просто удаляю. Все очень просто, но безумно долго. Нужна идея как реализовать это иначе.
Подбор высоты и востановление прежней
 
{quote}{login=k61}{date=26.10.2011 08:21}{thema=простое решение:}{post}Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Range(Cells(4, 1), Cells(65536, 2)).RowHeight = 18  
Selection.Rows.AutoFit  
End Sub{/post}{/quote}  
 
Супер! То что нужно: просто и понятно.
Подбор высоты и востановление прежней
 
{quote}{login=VovaK}{date=25.10.2011 09:19}{thema=}{post}Смотри коды примеров в этой теме, там все есть...  
http://www.planetaexcel.ru/forum.php?thread_id=23911{/post}{/quote}  
 
 
Смотрел я и это и это: http://www.planetaexcel.ru/forum.php/?thread_id=19253  
 
все там замечательно, простая проблема - предложено куча сложных решений (горе от ума, как говорится). Мне нужна идея алгоритма (даже не надо писать сам код) как вернуть высоту ячейки обратно после того как я кликну на другой ячейки, а на этой ячейки (второй) произошел автоподбор.
Подбор высоты и востановление прежней
 
Повторно выкладываю пример
Подбор высоты и востановление прежней
 
Есть книга Excel используемая в целях обобщения информации с примечаниями. Т.е. много текста. Ячейки распухают из-за обилия текста и становится очень неудобно перемещаться по странице: один щелчок колеса прокрутки мыши и ты уже в конце книги. Помогите воплотить идею в жизнь. Идея такова: все строи имеют одинаковую высоту (минимум, чтобы было видно основное - фамилия ответственного, сроки или что-то в этом духе), кликаем на нужную ячейку - строка расширяется так чтобы было видно все, но как только мы переходим на другую ячейку эта строка вновь становится минимальной высоты.  
С первой частью задачи проблем нет. А как вернуть просмотренной строке исходный вид, ри этом увеличить высоту другой не знаю.  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
Запуск макроса при выделении ячейки
 
Подскажите, можно ли запустить макрос от простого выделения ячейки, не используя ни изменения в ячейке, ни изменения в листе, ни нажатие "Enter" (т.е. кликаешь курсором на любой (не на конкретной) интересующей тебя ячейке и макрос запускается)?
Запрет повторного ввода данных в ячейки
 
Очень пригодился ваш макрос. Скопировал его в свою книгу: все отлично работает, вот только с кнопкой что-то не могу разобраться: не дает попыток ввода пароля, а сразу выдает сообщение "Ввод пароля заблокирован". Посмотрите, пожалуйста, что я там не доделал если не сложно. Пароль для начала работы с файлом "1", "2" или "3".
Кто внес данные в таблицу?
 
Правила дочитал до конца - да: надо было раньше это сделать. Огромное спасибо за реализацию. Получилось даже лучше чем я хотел.
Кто внес данные в таблицу?
 
Простенький примерчик не набросаешь? Чтобы было с чего начать.
Кто внес данные в таблицу?
 
Подскажите. На компе есть файл Excel (своего рода база данных). Данные вносят четыре человека, каждый является отдельным пользователем со своим Логином и Паролем. Как идентифицировать кто внес те или иные данные? Допустим в таблице есть столбец "Внес данные", ниже, в ячейках, при помощи "Данные"/"Проверка данных" организован выпадающий список. Можно ли сделать так, чтобы конкретный работник в этом списке мог выбрать только себя?  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
Макросы в Outlook ссылающийся на Excell
 
Вопрос не конкретно по Excell, а скорее про VBA.  
Как сделать так чтобы макрос в Outlook "брал" дату из определенной ячейки в таблице Excell и на основании ее (как эта дата наступит) сосдавал сообщение с определенным (шаблоном) текстом и отсылал письмо адресату указанному в другой ячейке этой же таблице?  
Реально ли это сделать? И еще, чтобы макрос запускался автоматически при запуске Outlook или, например, в 12:00?
Группировка строк (столбцов)
 
Благодарю за подзказку: именно то что нужно. Все, как обычно, оказалось гораздо проще чем казалось.
Группировка строк (столбцов)
 
Как изменить направления раскывания сгруппированных строк, т.е. сделать так, чтобы при нажатии на "+" на экране оставалась первая из сгруппированных строк, а остальные раскрывались вниз. Сейчас при нажатии на "+" на экране оказывается последняя из сгруппированных строк, а остальные оказываются сверху (вроде как раскрываются вверх).
Страницы: 1
Наверх