Доброго дня! Помогите решить задачу: В диапазоне "I9:I108" в ячейках текст (планируемые задачи). В столбце P перечислены регионы (н-р МОСК, ННОВ, САР, НСИБ). Как сделать (желательно макросом), чтобы если в тексте планируемых задач есть "МОСК", то при активации этой ячейки с задачей "МОСК" в столбце P подсвечивалось цветом. Заранее благодарен!
Доброго времени суток! Прошу помочь: В табличке столбец G - дата, в соседнюю ячейку - время, далее - задача. Прошу помочь чтобы при совпадении даты и времени с сейчас срабатывало какое нибудь событие (н-р ячейка Е6 меняла цвет, ну или чтото, дальше сам под себя допилю. У меня этот лист в файле не всегда открыт, потому что то срабатывать (мигать/пищать) будет на соседнем листе. Мысль моя такова - вся процедура срабатывает по Worksheet_Change в ячейке Е6 (там часы) Найденные в инете коды либо вешают Ексель, либа с моими руками не работают)))) Спасибо!
Добрый день! Подскажите, пожалуйста, как прописать в коде ситуацию, когда буфер обмена не пуст (копирование в любом файле Ексель, в том числе, в котором код), то в файле в котором код прекращается работа макроса (End Sub).
Доброго дня! Поскажите, в чем может быть дело: Код
Код
If Not Intersect(Target, Range("Календарь")) Is Nothing Then
Dim ILastRow As Long
ILastRow = Cells(9, "G").End(xlDown).Row + 1
Cells(ILastRow, "G") = Target
Cells(ILastRow, "G").Offset(0, 1).Select
Cancel = True
End If
после перезапуска ексель перестает работать, ругается на строку
Доброго дня! На листе 1 в ячейке А1 время онлайн (обновляется каждые 30 сек). На листе 2 в столбце А - даты событий, в столбце В - время срабатывания событий (напоминалка своеобразная). Как прописать, чтобы при совпадении на листе 2 даты (с текущей) и времени из столбца В листа 2 с фактическим (берем из ячейки А1 листа 1, чтобы срабатывало по событию в Worksheet_Change), ячейка А1 листа 1 мигала (два цвета указаны в ячейках В1 и С1 листа 1). Пример приложить возможности нет, прошу прощения! Буду благодарен за помощь!
Добрый день! Возможно была такая тема, но найти не могу. Есть именованный диапазон "Календарь". Календарь с права от основной таблицы. Как сделать, чтобы при прокрутке листа календарь был виден всегда (т.е. был динамичным). Файл прикрепить не имею возможности, прошу прощения!!!
Доброго дня! После переустановки системы перестали работать макросы. Помню, где-то в tools в vba нужно было снять или поставить галочки. А где и что убрать/ поставить уже не помню! Прошу помощи! Спасибо!
Доброго дня! Есть файл, в нем 2 вкладки с двумя списками телефонов. Диапазоны в обоих вкладках одинаковые: столбец Е - ФИО, F - телефон. Код в обоих вкладках
Код
If Not Intersect(Target, Range("E6:G1000")) Is Nothing Then 'Кнопку в ячейку
Shape30.Visible = True 'Кнопка отображена
Shape30.Top = ActiveCell.Offset(1, 1).Top
Shape30.Left = ActiveCell.Offset(1, 1).Left
Shape30.DrawingObject.Caption = ActiveCell.EntireRow.Cells(5) & Chr(10) & ActiveCell.EntireRow.Cells(6)
End If
В одной вкладке кнопка расположена всегда как задумано - в ячейке вниз по диагонали правым углом в правом углу ячейки, во второй - прыгает то так, то сяк... Свойства кнопок совершенно одинаковые. В чем может быть дело? подскажите, пожалуйста!
При нажатии кнопки, по гиперссылке в указанной ячейке происходит звонок на указанный номер (гиперссылка в формате tel: 262......) Подскажите, пожалуйста, что необходимо прописать, если в указанной ячейке тоже номер телефона, но не гиперссылка, (внутренние номера, на которые программа не имеет возможности совершить звонок) и в этом случае выход из процедуры (Exit Sub)? Спасибо!
Доброго дня! Тем таких море, но почему-то макрос ни в какую не хочет находить ПЕРВУЮ пустую ячейку в столбце N, находит последнюю и всё тут. В чем может быть дело?
Код
If Not Intersect(Target, Range("Числа")) Is Nothing Then
iLastRow = Cells(Rows.Count, "N").End(xlUp).Row + 1
Cells(iLastRow, "N") = Target
Cells(iLastRow, "N").Offset(0, 4).Select
Cancel = True
End If
Пример не могу приложить, прошу прощения - корпоративный интернет (скачать можно, выложить - нет)
Доброго дня, господа и дамы! Возможна ли автоматизация такого действия: из файла "Рабочий" открываю пустую (новую книгу "Книга1") и в ней открываю файл Ексель (всегда один и тот же назовем условно "Отчет"), путь к которому можно прописать гиперссылкой в ячейке "Е6", или в самом коде (не принципиально). Это для работы со вторым файлом "Отчет" в другом окне, чтобы видеть информацию в файле "Рабочий" без переключения между окнами. Пример приложить возможности нет - корпоративный интернет. Надеюсь понятно объяснил. Хороших выходных всем!
Доброго всем дня! В первой строке в диапазоне Q1:AF1 в ячейках перечислены части адресов почты, с которых поступает информация. Адреса разные, но часть адреса всегда одинакова (в зависимости от региона), например PetrovPP@dvgd.ru или SidorovMM@klgd.ru (всего 16 различных окончаний, которые и перечислены в ячейках первой строки). В данном случае письма приходят и первая часть до "@" может меняться по фамилии, а после "@" dvgd.ru или klgd.ru неизменно. Как бы реализовать такую фишку, чтобы если во входящем (выделенном в почте Оутлук) сообщении есть часть адреса из первой строки, то ячейка, содержащая эту часть подсвечивалась цветом по Worksheet_SelectionChange в диапазоне "G:G" например (цвет беру из определенных ячеек), и по клику на А1 например заливалась предыдущим цветом какой был (также из определенных ячеек цвет). Если письмо с "левого" адреса и части после "@" в первой строке нет, то ничего не меняется соответственно. Надеюсь внятно объяснил, т.к. файл выложить нет возможности - корпоративный интернет, скачать можно, выложить - нет. Цель задачи - не гадать, из какого региона информация, а наглядно видеть для дальнейших определенных действий. Буду благодарен за помощь!
Подскажите, пожалуйста, как исправить! Есть код - если изменения вносятся в ячейку, она мигает (изменения вносятся другим кодом по ПКМ, сделал, чтобы видно было, что макрос сработал):
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F1")) Is Nothing Then 'Примечания в примечания
'ThisWorkbook.Sheets("Лист1").Application.Speech.Speak "с" '[O1]
With ActiveSheet.[F1]
.Interior.Color = Sheets("Лист2").[A1].Interior.Color
Start = Timer
Do While Timer < Start + 0.3 ' пауза в секундах
DoEvents
Loop
.Interior.Color = Sheets("Лист2").[E1].Interior.Color
End With
End If
End Sub
Если в модуле листа есть
Код
Option Explicit
То код в строке
Код
Start = Timer
ругается на Start (выделяет синим). Что можно сделать?
Доброго всем времени суток! В столбце А таблицы стоят метки (буква "а"), т.е. задачи, описанные в строках, выполнены, а ниже в этой же таблице строки без меток (т.е. не выполненные задачи). Помогите скорректировать код, пожалуйста (или может есть иное решение), чтобы копируемая строка не заменяла данные в строке вставки (следующая строка после последней метки), а вставлялась как ПКМ "вставить скопированные ячейки" и после вставки строки в столбце А появлялась метка - буква "а", т.е. выполненная задача (если ставить метку перед копированием, то получается некорректно, т.к. код видит ее последней строкой).
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, [A7:A1000]) Is Nothing Then
If Target.Cells.CountLarge > 1 Then Exit Sub
With Target.Offset(0, 0)
Cancel = True
Set trgt_rng = Range([A7], [A7].End(xlDown))
If Target.Count = 1 Then
Set out_rng = [A1].Offset(Cells.Rows.Count - 1).End(xlUp).Offset(1)
Target.EntireRow.Copy out_rng
Target.EntireRow.Delete
Application.CutCopyMode = False
Exit Sub
End If
End With
Cancel = True
End If
End Sub
Надеюсь понятно объяснил, т.к. файл приложить не имею возможности - корпоративный интернет, прошу прощения!
Доброго дня всем присутствующим! В ячейку вводится время срабатывания напоминания ( в ячейке формат 14:50, в строке формул 14:50:00). Никак не соображу, как по кнопке к указанному времени прибавить например 5/10 минут/час (отложить срабатывание макроса)?
Добрый день, уважаемые! Помогите с формулой, пожалуйста (нужна для ввода пароля, который меняется еженедельно): в ячейку дата понедельника на текущей неделе, номер текущего месяца и # (всё без пробелов): Например сегодня вторник 19.09, в ячейке должно быть 1809# (понедельник - 18 число 9го месяца (сентября)), на позапрошлой неделе пароль был 0409# (понедельник - 4 число 9го месяца). Спасибо!!!
Добрый день! Помогите разобраться и исправить - после запуска компьютера и рабочего файла появляется окно "В книге обнаружено содержимое, которое не удалось прочитать. Попробовать восстановить содержимое...", нажимаю "Да", в открывшемся окне: "Восстановленные записи: Гиперссылки из части /xl/worksheets/sheet6.xml". ЛИСТА 6 У МЕНЯ В КНИГЕ НЕТ!!! При переходе по ссылке окно в браузере открывает следующие строки:
<summary>Обнаружены ошибки в файле "C:\Users\........\.........\Рабочий файл НОВЫЙ.xlsm"</summary>
-<repairedRecords summary="Вот список внесенных исправлений:">
<repairedRecord>Восстановленные записи: Гиперссылки из части /xl/worksheets/sheet6.xml</repairedRecord>
</repairedRecords>
</recoveryLog>.
После этих манипуляций макросы выдают ошибки, исправить можно только если "сохранить как" и в папу, из которой открыл (с заменой файла).
Но это до первой перезагрузки/выключения.
Думаю такое произошло посл отправки книги (прямо из книги, когда она открыта) по почте, т.к. слетели все гиперссылки на всех листах - восстанавливал руками. Такое замечал после использования кода для сохранения копии - тогда тоже слетали макросы, и был также указан лист, но 7 (он в книге был физически - после удаления листа всё нормализовалалсь.
Доброго всем времени суток! В диапазоне А2:А10 ставлю время с применением вот такого кода
Код
Dim vVal 'Быстрый ввод времени в ячейку
Dim StrVal As String
If Not Intersect(Target, Range("A5")) Is Nothing Then
With Target
vVal = Format(.Value, "0000")
If IsNumeric(vVal) And Len(vVal) = 4 Then
Application.EnableEvents = False
.Value = Left(vVal, 2) & ":" & Right(vVal, 2)
.NumberFormat = "hh:mm" '"[h]:mm"
End If
End With
End If
Application.EnableEvents = True
, в соседнюю ячейку столбца В - дату (Format(Date, "dd.mm.yyyy"))) и скрываю строки (чтобы не мешали). Подскажите, как реализовать такую задачу: чтобы если например А2 и В2 = сейчас, то строка, в которой данное условие выполняется автоматически отображалась. Файл приложить возможности нет, прошу прощения - корпоративный интернет.
Доброго всем времени суток!!! На листе работает макрос поиска. Вот код (прошу прощения, файл нет возможности предоставить - корпоративный интернет ):
Код
Sub Поиск_Яч(Optional t) 'поиск по листу
Static rLastFound As Range
If IsMissing(t) Then 'вызов по горячей клавише
If Not rLastFound Is Nothing Then Set rLastFound = Cells.FindNext(rLastFound)
Else
Set rLastFound = Cells.Find(What:=t, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
'MsgBox "Не найдено!", vbExclamation, "ВНИМАНИЕ!!!"
'Exit Sub
End If
If Not rLastFound Is Nothing Then rLastFound.Offset(0, 1).Activate
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "E1" Then
Поиск_Яч Target 'поиск в ячейке E1
End If
End Sub
Он работает только с отключенным фильтром, т.е. приходится всегда сначала отключить фильтр, потом найти нужные данные, потом снова отфильтровать диапазон. Подскажите, как дописать/изменить код, чтобы работал и на фильтрованном диапазоне, что необходимо для работы! Спасибо!
Доброго дня, уважаемые! "Полупридумал" код (здесь нашел и доработал под свои нужды))), дающий эффект нажатия кнопки (мигание). Но в таком виде мигают все кнопки на листе. Как бы так дописать/изменить код, чтобы мигала только та кнопка, на которую нажимаю (т.е. чтобы макрос понимал, на какую кнопку нажимаю и на ней срабатывал)?
Код
Sub ВСЕ_КНОПКИ()
With Selection.Parent
.DrawingObjects.Interior.Color = Sheets("Задачи").Range("AM1").Interior.Color
Start = Timer
Do While Timer < Start + 0.1 ' пауза в секундах
DoEvents
Loop
.DrawingObjects.Interior.Color = Sheets("Задачи").Range("AJ1").Interior.Color
End With
End Sub
Данный макрос "ВСЕ_КНОПКИ" добавляю в начало кодов, которые срабатывают по нажатию.
Доброго дня!!! Вроде задача плевая совершенно, а что то никак))) Задача: В диапазоне А2:А1000 выделил любой диапазон (может и одну одну ячейку) и выделенное копируется (попадает в буфер обмена). С одной ячейкой и весь диапазон до последней заполненной справился, с выделенным мышью диапазоном никак)))
Доброго времени суток!!! Использую следующий код для открытия файлов из почты
Код
Sub Открыть_Ексель_из_Оутлук()
A = ActiveCell.Column
ActiveCell.EntireRow.Cells(13).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True ' Открывает файл с диска по гиперссылке
sFolder = "C:\Users\.............\ЯВРЕМ\" 'сохранение файлов во временную папку
With GetObject(, "Outlook.Application")
Set oMailItm = .ActiveExplorer.Selection.Item(1)
myAddr = oMailItm.Session.CurrentUser.Address
For Each oAtch In oMailItm.Attachments
If oAtch Like "*.xls*" Then
s = GetAtchName(sFolder & ThisWorkbook.ActiveSheet.Cells(6, A) & " " & oAtch)
oAtch.SaveAsFile s 'сохраняет в указанную папку
Workbooks.Open Filename:=s
End If
Next
End With
End Sub
Дело в том, что почему то рассылаю исполнителям файлы с расширением .xlsx, (строчные), а зачастую они возвращаются мне с расширением .XLSX (прописные) и макрос их не открывает и не сохраняет. Подскажите, пожалуйста, как дописать код, чтобы в случае с расширением .XLSX всё работало!!!
Доброго времени суток всем и с пятницей! Использую код, который при наведении на ячейку выдает подсказку как к гиперссылке (текст в подсказку берется из ячеек этого же листа). А возможно ли реализовать задачу, чтобы текст подсказки брался из закрытой книги? Если что - путь к этим закрытым книгам в виде гиперссылок прописан в столбце "S" тех же строк, где хочется реализовать подсказки. Ячейки, в которых хотелось бы реализовать подсказки в столбце "I". Попробовал так:
Код
If Not Intersect(Target, Range("I7:I500")) Is Nothing Then 'Подсказка в ячейкe
If Target.Cells.CountLarge > 1 Then Exit Sub
If Target = "" Then Exit Sub
ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="", TextToDisplay:="", _
ScreenTip:=Workbooks("Нева").Sheets("Лист1").Range("L1").Text
Target.Font.Underline = xlUnderlineStyleNone
Target.Font.ColorIndex = xlAutomatic
Selection.Font.Bold = True
End If
но в таком виде код не работает, да и если бы работал, то для каждый строки придется прописывать имя каждого файла. Лист1 и адрес ячейки L1 во всех книгах одинаковый, меняются только имена файлов. Прошу прощения, файл пример приложить не могу - корпоративный интернет (скачать можно, выложить нельзя). Заранее спасибо всем помощникам!
Доброго времени суток, друзья! Сохраняю из Оутлук файлы в указанную папку в гиперссылке, которая в 5-м столбце строки активной ячейки + добавляю к имени файла значение из ячейки 4 строки столбца активной ячейки, вот часть кода :
Код
For Each oAtch In oMail.Attachments
oAtch.SaveAsFile ActiveCell.EntireRow.Cells(5).Value & "\" & Target.EntireColumn.Cells(4) & " " & oAtch
Подскажите, пожалуйста, как
Код
Target.EntireColumn.Cells(4)
заменить на значение из буфера обмена? Прошу прощения, файл-пример прикрепить нет возможности...
Доброго всем времени суток! Подскажите, как с помощью Worksheet_SelectionChange реализовать такую задачу - в диапазоне А1:А100 введены аббревиатуры из 3-5 букв (например назовем ПСС), нужно чтобы при клике на ячейку ПСС становилось Просрочен срок службы ("Просрочен срок службы" можно прописать в ячейке Z1 и брать оттуда). И хотелось бы, чтобы если в ячейке присутствует другой текст, кроме ПСС (ПСС неделя), то значение всё равно менялось бы на "Просрочен срок службы" (без добавления лишнего текста).
Доброго времени суток, Уважаемые форумчане и форумчанки!) Нашел здесь макрос плавающей кнопки, для удобства сделал себе аналогично ( кнопка сопровождает активную ячейку). Вопрос - как сделать, чтобы текст на кнопке брался из ячейки, которая находится на пересечении 4-й строки и столбца активной ячейки (т.е. текст в зависимости от положения курсора меняется). 4 строка неизменна (закреплена). Хорошего дня и спокойных выходных!
Добрый день! Не критично, но интересно) Есть диапазон G5:V500, в котором хаотично заполняются ячейки. Можно ли реализовать такую штуку: в столбце С выделена ячейка и если в диапазоне G:V этой же строки есть пустые ячейки, то в строке 4 (она закреплена) подсвечиваются ячейки столбцов, содержащих пустые активной строки. При переходе на другую строку аналогично подсвечиваются пустые следующей активной строки, а предыдущие становятся цветом, как были (предыдущий цвет можно брать из определенной ячейки за пределами таблицы) Файл-пример предоставить нет возможности. Смысл - в строке 4 название предприятий и при выделении задачи (записаны в столбце С) видно, кто справился, а кто еще что то должен))) Можно наоборот - не пустая - подсвечивает... Спасибо!!!
Доброго времени суток! Такая проблема - при переносе на другой лист (вырезать), либо удалении строки выдает ошибку Run-Time error 13 Type mismatch, и в коде
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G5:V1000")) Is Nothing Then
If Target = "" Then
ActiveCell.Interior.Color = Cells(Target.Row, 25).Interior.Color
Else
Target.Interior.ColorIndex = 27
End If
If Target = "НЕТ" Then
Target.Interior.ColorIndex = 19
End If
...........
строку
Код
If Target = "" Then
выделяет желтым. Можно как то побороть данную проблему?
Если код в модуле переношу ниже, ту же ошибку выдает в другом коде...
Доброго дня!!!! Есть код, который открывает правой кнопкой мыши файл ексель на диске (по гиперссылке, прописанной в ячейке строки, в которой происходит клик) и затем сохраняет и открывает файл из активного окна Оутлук (входящего сообщения). В строке 4 рабочей таблички прописаны краткие названия предприятий. Подскажите, пожалуйста, как реализовать, чтобы в начало названия сохраняемого файла добавлялось название предприятия из 4 строки этого же столбца.
Код
Sub Влож_Оутлук()
ActiveCell.EntireRow.Cells(6).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True ' Открывает мой файл по гиперссылке
sFolder = "C:\Users\............\ВРЕМ\" 'сохранение файлов в папку
With GetObject(, "Outlook.Application")
Set oMailItm = .ActiveExplorer.Selection.Item(1)
myAddr = oMailItm.Session.CurrentUser.Address
For Each oAtch In oMailItm.Attachments
If oAtch Like "*.xls*" Then
s = GetAtchName(sFolder & oAtch) 'путь файла к папке
oAtch.SaveAsFile s 'сохраняет в указанную папку
Workbooks.Open Filename:=s
End If
Next
End With
End Sub
Пробовал строку прописать вот так
Код
s = GetAtchName(sFolder & ActiveCell.EntireColumn.Cells(4) & oAtch) 'путь файла к папке
- результата нет, хотя, если прописать
Код
s = GetAtchName(sFolder & Date & oAtch) 'путь файла к папке
дата в название добавляется. Файл приложить не имею возможности - корпоративный интернет, прошу прощения. Вроде всё прописал понятно. Буду благодарен!!!