Приветствую, информирую, что есть вакансия на hh.ru/vacancy/54630081 Ростелеком. Официальное трудоустройство. Можно будет работать удаленно, но обязательно присутствовать "онлайн" с 09 до 18:00 на рабочем удаленном месте. Совмещать не получится. Требования: знание и умение использовать все объекты VBA, минимальные знания SQL. Необходимо откликнуться на вакансию, попросить тестовое задание (SQL+VBA)(VBA в приоритете, SQL-второстепенно). Задание на VBA выполнить преимущественно без использования Range, Cells и WorksheetFunction (по времени может занять 1-1,5 дня). Информация актуальна до 16.04.2022. На рабочем месте планируется до 50% времени поддержки старых чужих макросов на VBA. Будут рассмотрены варианты полной удаленки, но преимущественно, желательна привязка к любому крупному городу, где есть Ростелеком. 06.04.2022 вакансия была переопубликована. Скорректировал адрес на актуальный.
Привет, коллеги. просто информирую, может кому будет полезно, есть вакансия на hh ру /vacancy/40644156 Официальное трудоустройство. Ориентир ЗП = 50 -13% +премии. Желательно жить в Воронеже или НН или ЕКБ, но будут рассмотрены все кандидаты. Можно будет работать удаленно, но обязательно присутствовать "онлайн" с 09 до 18:00 на рабочем удаленном месте. схитрить или совмещать не получится. Требования: опыт от 3х лет разработки.
Добрый день, форумчане! При написании макроса (Excel 2016)пытаюсь сделать запрет на удаление листов. Необходимо сделать простую защиту от неопытного пользователя. "Рецензирование" -> "Защитить книгу" пока что(временно) не рассматриваю, так как файл автоматически потом будет обрабатываться другими многими макросами, которые будут добавлять/удалять листы. Согласно ТЗ нужно просто убрать кнопки удаления листов. Для списка из ПКМ по ярлыку листа - легко - убрал:
Код
Application.CommandBars("Ply").Enabled = False
а для ленты: Главная -> Удалить -> Удалить лист
Код
Application.CommandBars("Worksheet Menu Bar").Controls("&Правка").Controls("Удалит&ь лист").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("&Правка").Controls("Удалит&ь лист").Visible = False
Application.CommandBars("Worksheet Menu Bar").Controls("Фор&мат").Enabled = False
не получается :-( и так тоже не получается
Код
For Each iCommandBar In Application.CommandBars
iCommandBar.Enabled = False
Next
Необходимо именно скрыть кнопку "Удалить - Удалить лист" из ленты. Другие темы читал - не получилось. Просьба помочь!
Добрый день! В крупную компанию в г. Воронеж (Левый берег) требуется программист для написания макросов. Зарплата 40тыс.р. + премии. Зарплата белая, на карту. Официальное трудоустройство с первого дня. Испытательный срок = 3 мес. Требования: Продвинутый уровень написания макросов(знание всех объектов программирования). Умение обращаться к WORD, Excel -> Access, Access -> Excel, Web-страницам. Знание SQL запросов. Из очень приятных бонусов: на работе не задерживаемся Объявление актуально на Апрель_2019г. Если Вас тема не интересует, но знаете подходящего кандидата - посоветуйте.
Столкнулся с проблемой у себя на работе, на рабочем компе (Excel 2016, 64 bit) при активации ячейки автоматически появляются границы ячейки и строк! Условного форматирования на листе нет(и в книге нет, других открытых файлов нет), все макросы из личной книги макросов удалил. Событий на изменение точно нет, даже просто создаю новую книгу активирую любую ячейку - отображаются(появляются) границы ячейки и строки! DisplayAlerts и ScreenUpdating у меня все True! Если работаю дома(Excel 2010, 32 bit) с файлом, то все норм. Ошибка появилась, когда какой-то макрос выполнился недоконца, и, возможно DisplayAlerts и ScreenUpdating у меня остались в значениии False. Затем, произошел следующий глюк: когда я перезашел в модули проекта(модулей штук 14 было) VBA они поменяли свое наименование(отобразились правильно). Я перезагрузился. А глюк с появлением границ остался. Кстати, если активировать новый лист и потом опять вернуться на исходный, то все ячейки листа становятся без границ. Может кто знает в чем причина такого поведения Эксель ?
Хочу на почту @yandex.ru через vba загрузить .pdf файл, нажимаю "Обзор" -> появляется диалоговое окно выбора файла и код vba перестает выполняться, потому что программа ждет ответа пользователя, когда я сам вручную выберу файл для загрузки. А я хочу через vba в диалоговом окне выбора файла (отловив окно через hwnd)написать имя файла(скорее полный путь+имя файла) и нажать кнопку открыть. Но не знаю как(написать имя файла для загрузки и нажать на кнопку открыть).
Код
Sub Загрузить_документ()
Dim i, i1, j, k
Dim Shell As Object
Dim Wins As Object
Dim WinItem As Variant
Dim objCollection As Object
Dim cnt
Dim Doc As Object 'InternetExplorer
SiteURL = "https://mail.yandex.ru/?uid=23207361&login=<мой логин>#compose"
Set Shell = CreateObject("shell.application")
cnt = 0
For Each WinItem In Shell.Windows
If WinItem.LocationURL Like Left(SiteURL, 30) & "*" Then
Set Doc = Shell.Windows(cnt).document
Exit For
End If
cnt = cnt + 1
Next
For i = 0 To Doc.getelementsbytagname("label").Length - 1
If Doc.getelementsbytagname("label")(i).Title = "Прикрепить файлы с компьютера" Then
Doc.getelementsbytagname("label")(i).Click 'после клика появляется диалоговое окно выбора файла
SendKeys "проверяю пишется ли у меня название файла", True ' не пишется, диалоговое окно выбора файла заблокировало выполнение кода, пока я ручками не выберу файл
SendKeys "{ENTER}", True
' также естественно макрос не доходит до строк ниже
hwnd = poiskokna("Выбор выкладываемого файла")
Do While (hwnd = 0 And countIter < 60)
hwnd = poiskokna("Выбор выкладываемого файла")
countIter = countIter + 1
Loop
MsgBox "все ок"
End If
Next i
End Sub
' ниже подфункция поиска окна по названию окна
Public Function poiskokna(TitleFind As String) As Long
Dim winTitle As String * 256, cnt As Long, hwnd As Long
Const GW_HWNDNEXT = 2
Const GW_CHILD = 5
hwnd = GetDesktopWindow&
hwnd = GetWindow(hwnd, GW_CHILD)
Do While hwnd <> 0
cnt = GetWindowText(hwnd, winTitle, 255)
If InStr(1, winTitle, TitleFind) > 0 Then
poiskokna = hwnd
Exit Do
End If
hwnd = GetWindow(hwnd, GW_HWNDNEXT)
Loop
End Function
Итак 2 вопроса: 1) как сделать, чтоб не прерывалось выполнение кода макроса при появлении диалогового окна выбора файла 2) когда я определю окно через hwnd, можно ли будет написать полный путь & имя файла не через sendkeys а как-нибудь по другому? (и потом нажать энтер тоже не через sendkeys?) Помогите, пожалуйста!
Никак не смог самостоятельно найти ответ на вопрос, который мне очень важен. Я часто использую определенный шаблон для написания макросов, и очень хотелось бы мне автоматизировать один момент.
Я каждый раз результат макроса вставляю на разный лист. Но мне хотелось бы итог определенным образом доработать, но я не могу автоматически определить куда же я вставил результат ! ((( Через inputbox ячейка Viv на новом листе не активируется, Viv.Activate и Viv.Select тоже не получается. Мне приходится заранее переименовывать листы и на определенные листы вставлять результат. Но подскажите, как я могу автоматически определить наименование листа ячейки Viv или активировать эту ячейку? (Viv - всегда указываю ячейку нового неактивного листа).Заранее спасибо!
Код
Sub Как_определить_лист_куда_я_вставил_результат()
Dim Rng, Viv As Range
Dim i, i1, i2, i3, i4 As Long
Dim arr() As Variant
Dim simv, s, s1 As String
Set Rng = Range("A1:A10")
arr() = Rng.value
' что-нибудь делаю с массивом
' и затем вывожу результат каждый раз на разный лист!!!!
Set Viv = Application.InputBox("Введите ячейку, куда вставлять результат", Type:=8)
Viv.Resize(UBound(arr()), UBound(arr(), 2)) = arr()
End Sub
Не проходите мимо, подскажите! как посчитать в сводной таблице количество уникальных ФИО в каждом городе не добавляя дополнительный столбец в исходной таблице и как получить данные по городам с днями > 10 ?(см. вложение). Обычно по первому вопросу я в исходной таблице(Лист 1) добавляю дополнительный столбец и пишу формулу счетчика, затем все дубли,(то есть значения >1) удаляю и у меня как раз остаются необходимые уникальные фио(единицы напротив уникальных фио) для каждого города. Вопрос№1: можно ли делать это все как-нибудь удобно в сводной таблице(не трогая исходник)?.
По второму моменту я обычно добавляю в Исходнике дополнительный столбец, фильтрую данные и в новом столбце прописываю, что по фильтру значения >10 дней, все остальные строки <10 дней. По сути мне нужен СРЕЗ по дням с возможностью не только выбора отдельных значений, а отбора по сложным условиям ">" и/или "<" (а в срезе такого нет, (или я не знаю)). Вопрос№2: подскажите, как можно оперативно фильтровать в Сводной таблице значения по условию > и < определенного количества дней(или усовершенствовать срез для фильтра условий > и < ) Excel 2010. Заранее спасибо!
Добрый день! Мне необходимо функцией vba извлечь дубликаты из списка(столбца). (можно и макросом (Sub), но я не знаю, как универсально указать место(ячейку) для вывода результата... (адрес ячейки для вывода результата всегда разный), поэтому хочу использовать Function. Я написал вот такую программку
Код
Function Список_Дублей_1(Rng1 As Range) As Variant
Dim i As Long, j As Long
Dim a As Variant
Dim k, x, n, ind As Long
Dim Arr(1 To 50) As String j = 1
For i = 1 To Rng1.Rows.Count
k = Application.WorksheetFunction.CountIf(Rng1, Rng1.Cells(i, 1))
If k > 1 Then
Arr(j) = Rng1.Cells(i, 1)
j = j + 1
End If
Next i
Список_Дублей_1 = Application.WorksheetFunction.Transpose(Arr())
End Function
Но моя функция выдает список дублей с оригиналом. В приложенном файле я хотел бы получить результат в виде списка
Код
7434175
7448800
7448800
а не
Код
7434175
7434175
7448800
7448800
7448800
Я понимаю, что вместо
Цитата
k = Application.WorksheetFunction.CountIf(Rng1, Rng1.Cells(i, 1))
надо написать аналог счётесли(A$1$:А1;А1) > 1 то..... что-то типа
k = Application.WorksheetFunction.CountIf((Rng1.Cells(1,1):Rng1.Cells(i,1)), Rng1.Cells(i, 1)) (хочу просматривать универсальный диапазон, который всегда в разных местах. или еще мой предполагаемый вариант который не работает) k = Application.WorksheetFunction.CountIf((Rng1.Cells(i,1).End(xlUp),Rng1.Cells(i, 1)
Помогите, пожалуйста, написать правильно и универсально! p.s. коллекции и мн. др. я пока не понимаю, хотелось бы увидеть решение на понятном мне уровне))
И еще, подскажите, почему, если я хочу сделать redim Arr(1 to Rng1.Rows.Count),.. да даже redim Arr(1 to 100), то программа на меня ругается, выделяя желтым цветом первую строчку
Код
Function Список_Дублей_1(Rng1 As Range) As Variant