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

Страницы: 1
Переход по гиперссылке по клавише enter, Помогите сделать переход по гиперссылке без мыши, ...
 
Спасибо!
Посмотрел ваши идеи - все работает. Еще раз спасибо! Заинтересовал пример Ctrl + Tab. Но это решение, как я понял, рассчитано на то, что в книге будет один раскрывающийся список. А если их будет много? Как увязаться в этом случае, чтобы клавиши Ctrl + Tab выполняли не только Openlink, но и, скажем Openlink1, Openlink2?
Переход по гиперссылке по клавише enter, Помогите сделать переход по гиперссылке без мыши, ...
 
... лучше по клавише enter.
Передача макроса из книги В в книгу А с закрытием книги В, При передаче команда обрывается
 
Посмотрел в интернете, что такое Application.OnTime. Связано со временем, но не с очередностью выполнения команд...
Передача макроса из книги В в книгу А с закрытием книги В, При передаче команда обрывается
 
Здравствуйте!
Во время работы мне необходимо макросом закрыть книгу В, активировать уже открытую книгу А, и в этой книге вызвать форму 1.

В книге В я выполняю:
Workbooks("В.xlsb").Save
Application.Run "А.xlsb!Module2.Форма1".

В книге А:
Workbooks("В.xlsb").Close False
UserForm1.Show

Процесс обрывается на:
Workbooks("В.xlsb").Close False,
то есть форма 1 не вызывается.

Если сначала поставить открытие формы 1, а затем закрытие книги В, то форма вызывается, но не закрывается книга.
Как бы решить эту проблему? Спасибо!
При выемке из ListBox 16-значное число отражать полностью
 
Спасибо!
При выемке из ListBox 16-значное число отражать полностью
 
Здравствуйте!
В столбцах 4 и 5 ListBox5 - 16-значные числа.
Когда я все столбцы переношу в ячейку в виде строки, они отображаются как 1,01115411581744E+15. Где и какой формат указать, чтобы числа отражались полностью (допустимо в виде текста). Спасибо!
Код
Stroka = Stroka & ListBox1.List(i, 0) & " " & CDate(ListBox1.List(i, 1)) & " " & ListBox1.List(i, 2) & " " & ListBox1.List(i, 3) & " " & ListBox1.List(i, 4) & " " & ListBox1.List(i, 5) & " " & ListBox1.List(i, 6) & " " & ListBox1.List(i, 7) & " " & ListBox1.List(i, & "" & "/" & Chr(10)
  
   
Поиск до последней заполненной ячейки и вывод номеров столбцов
 
Уважаемые форумчане, помогите, пожалуйста, адаптировать код под мои нужды. У самого ничего не получается.
Необходимо, чтобы поиск осуществлялся по строчке №6 до последней заполненной ячейки и выводил найденные значения в виде номера колонок, в которых они находятся. Поиск должен быть не точным (находить по части слова, например, ТОМСК, ТОМСКГАЗ, ЭНЕРГОТОМСК). Если это важно, то код будет находиться в одном файле (в юзерформе), а поиск осуществляться в другом. Большое спасибо!
P.S. Малые буквы - это комментарии, которые уже были в коде, когда я его нашел.
Большие - мои комментарии.
Код
Sub Poisk()Dim cell As Range,cellsDel As Range, cellAddress As String
With Workbooks("Книга1.xlsx").Sheets("Лист2").cells(6, Columns.Count).End(xlToLeft).Column.UsedRange ' ЗДЕСЬ, КАК Я ПОНИМАЮ, НУЖНО УКАЗАТЬ, ГДЕ ИСКАТЬ. УКАЗАЛ

' ЗДЕСЬ, ЧТО ИЩЕМ. УКАЗАЛ  Set cell = .Find(Workbooks("Книга1.xlsx").Sheets("Лист1").Range("H2")) 'ищем первую попавшуЮсяIf Not cell Is Nothing Then 'если нашлиSet cellsDel = cell.Resize(2) 'сохраняем в переменную, увеличенную до 2 строк (Resize(2)) 'МНЕ НИЧЕГО УВЕЛИЧИВАТЬ НЕ НАДО
cellAddress = cell.Address 'запоминаем адрес, потому что FindNext будет искать по кругу и ее надо будет остановить
Do
Set cell = .FindNext(cell) 'продолжаем поиск после ячейки cell
If Not cell Is Nothing Then Set cellsDel = Union(cellsDel, cell.Resize(2)) 'если нашли, то добавляем в cellsDel ЗДЕСЬ ТОЖЕ ДВОЙКА В КОНЦЕ СМУЩАЕТ - УВЕЛИЧИВАТЬ НИЧЕГО НЕ НУЖНО      'DoEvents 'эту штуку можно ставить на стадии отладки, чтоб можно остановить Do...Loop в случае косяка
Loop Until cellAddress = cell.Address 'если дошли до адреса который уже был, выпадаем из Do...Loop
cellsDel.EntireRow.Delete 'удаляем строки принадлежащие ячейкам в переменной cellsDel МНЕ НЕ НУЖНО УДАЛЯТЬ - 'НУЖНО НОМЕРА КОЛОНОК СО ВСЕМИ НАЙДЕННЫМИ ЗНАЧЕНИЯМИ ВЫСТРОИТЬ В СТОЛБИК НА ЛИСТЕ Workbooks("Книга1.xlsx").Sheets("Лист1"), НАЧИНАЯ С ЯЧЕЙКИ I1.
End If
End With
End sub
' КОД БУДЕТ НАХОДИТЬСЯ В КНИГЕ Книга2.xlsb
Поиск ячеек со значениями больше ноля и вывод их адресов
 
Извините за назойливость, но теперь нужно получить адреса в формате Cell(1,1).
Address: ReDim Preserve arr(1 To UBound(arr) + 1)
Изменено: Platon - 06.12.2021 15:38:02
Поиск ячеек со значениями больше ноля и вывод их адресов
 
Ничего не получается. Программа пишет, откройте книгу "Больше ноля", хотя книга открыта.
Нельзя ли сделать что-то вроде:
Код
Sub mrshkei()
Workbooks("Больше ноля.xlsm").Activate
Sheets("Лист1").Select
Dim arr, i As Long, lr As Long
lcol = Cells(2, Columns.Count).End(xlToLeft).Column
ReDim arr(1 To 1)
For i = 2 To lcol Step 3
    If Cells(2, i) > 0.01 Then arr(UBound(arr)) = Cells(2, i).Address: ReDim Preserve arr(1 To UBound(arr) + 1)
Next i
Sheets("Лист2").Range("A1").Resize(UBound(arr), 1) = Application.WorksheetFunction.Transpose(arr)
End Sub
Но чтобы этот макрос находился в "Другая книга".

Спасибо!
Поиск ячеек со значениями больше ноля и вывод их адресов
 
Здравствуйте! Прошу первый вариант макроса адаптировать таким образом, чтобы его можно было запускать из другой книги. Спасибо!
Поиск ячеек со значениями больше ноля и вывод их адресов
 
Спасибо, милый человек!
Поиск ячеек со значениями больше ноля и вывод их адресов
 
Здравствуйте! Мне необходимо найти все значения больше 0,01 во второй строке, где есть и цифры, и текст, и вывести их адреса в столбик на втором листе. Если это не сильно затруднит задачу, то значения больше 0,01 нужно искать во второй строке в столбцах В, Е, Н и далее через каждые два столбца до первой пустой ячейки в строке (там цепочка обрывается). Заранее спасибо!
Вписать формулу по типу "сцепить" макросом, Часть формулы нужно брать из ячейки
 
Здравствуйте! Пробую и так, и так - ничего не выходит.
Без привязки к примеру скажите, пожалуйста, это может работать? Если да, то в чем здесь ошибка?
Код
Workbooks("Книга1.xlsb").Worksheets("Лист1").[B2].FormulaR1C1 = _
"=ЕСЛИОШИБКА(ИНДЕКС('C:\Users\" & Workbooks("Книга1.xlsb").Worksheets("Лист2").[A1] _
& "\OneDrive\Общие\[Сеть.xlsb]Данные'!$D:$D;ПОИСКПОЗ($B$1;'C:\Users\" _
& Workbooks("Книга1.xlsb").Worksheets("Лист2").[A1] & "\OneDrive\Общие\[Сеть.xlsb]Данные'!$A:$A;0));"""")"

Найти совпадения в столбце с имеющимся значением и указать их адреса, Значение J1 найти в столбце B и адреса всех совпавших ячеек вынести в столбец I
 
Спасибо всем большое! Буду разбираться.
Найти совпадения в столбце с имеющимся значением и указать их адреса, Значение J1 найти в столбце B и адреса всех совпавших ячеек вынести в столбец I
 
Здравствуйте!
Необходимо пройтись по столбцу B и найти ячейки с фамилией, указанной в J1.
В столбце I указать номер строки всех ячеек из столбца B, в которых встретилась фамилия из J1.
Желательно, чтобы в I адреса выстроились вверх по порядку без пропусков.
Спасибо!
Поставить числа из двух столбцов "каждое с каждым", Желательно макросом
 
Очень хороший вариант с формулами. Спасибо!
Поставить числа из двух столбцов "каждое с каждым", Желательно макросом
 
Спасибо за вариант, но необходим макрос или, что хуже, формула.
Поставить числа из двух столбцов "каждое с каждым", Желательно макросом
 
Вот не картинка.
Поставить числа из двух столбцов "каждое с каждым", Желательно макросом
 
Здравствуйте!
В столбцах F и G есть числа. Необходимо перенести их в столбцы H и I, соответственно, но так, чтобы каждое число из F было в парке с каждым из G. Более понятно показано в файле вложения. В колонках F и G может быть разное количество чисел.
Спасибо!
Поиск значений в столбце с указанием строк, в которых они найдены
 
Спасибо!
Лишь строка
End With
оказалась лишней.
Если код кому-то понадобится, то в данном случае для запуска макроса требуется активировать окно "Сеть7.xlsb".
Еще раз спасибо!
Поиск значений в столбце с указанием строк, в которых они найдены
 
Здравствуйте! Прошу помочь с доработкой кода. Данный код ищет заданные слова в столбце, выделяет совпадения жирным и окрашивает красным. Вместо выделения совпадений, мне необходимо указывать номера строк, в которых они находятся. Перечень номеров строк необходимо вывести в Workbooks("7.0.xlsb").Sheets("Спер") в столбец А. Большое спасибо!
Код
Sub Find_n_Highlight()
    On Error Resume Next: Err.Clear
    Dim ra As Range, cell As Range, res, txt$, v, pos&
    res = Workbooks("7.0.xlsb").Sheets("Сдан").Range("C2")
    If VarType(res) = vbBoolean Then Exit Sub    ' нажата кнопка ОТМЕНА
    txt$ = Trim(res): If Len(txt) = 0 Then Exit Sub    ' текст не введен, или состоит из пробелов    
    Set ra = Workbooks("Сеть7.xlsb").Sheets("Срас").Range([P2], Range("P" & Rows.Count).End(xlUp))    ' диапазон для поиска
    Application.ScreenUpdating = False
    ra.Font.Color = 0: ra.Font.Bold = 0  ' сброс цветового выделения    
    For Each cell In ra.Cells    ' перебираем все ячейки
        pos = 1
        If cell.Text Like "*" & txt & "*" Then
            arr = Split(cell.Text, txt, , vbTextCompare)   ' разбивает текст ячейки на части
            If UBound(arr) > 0 Then    ' если подстрока найдена
                For Each v In arr    ' перебираем все вхождения
                    pos = pos + Len(v)    ' начальная позиция
                    With cell.Characters(pos, Len(txt))
                        .Font.ColorIndex = 3    ' выделяем цветом
                        .Font.Bold = True    ' и полужирным начертанием
                    End With
                    pos = pos + Len(txt)
                Next v
            End If
        End If
    Next cell
End Sub
Изменено: Platon - 04.04.2018 14:48:54
Ускорить макрос пересохранения файлов
 
Код исправил. Не открывать книгу даже лучше. Главное сократить код, чтобы макрос выполнялся быстрее.
Ускорить макрос пересохранения файлов
 
Еще бы знать, что это такое...
Ускорить макрос пересохранения файлов
 
Два одинаковых файла лежат в разных папках. Макросы "Дата" определяют дату последнего изменения каждого из них. Если даты разные (значение ИСТИНА в столбце F - формула), то более новый файл открывается и пересохраняется вместо старого. Так как таких файлов 20, процесс занимает длительное время. Подскажите, пожалуйста, можно ли как-то ускорить эту операцию? Большое спасибо!
Код
Private Sub
Дата1()
Dim sFileName As String
sFileName1 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("B1")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("C1") = FileDateTime(sFileName1)
sFileName2 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("B2")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("C2") = FileDateTime(sFileName2)
sFileName3 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("B3")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("C3") = FileDateTime(sFileName3)
Дата2
End Sub


Private Sub
Дата2()
Dim sFileName As String
sFileName1 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("D1")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("E1") = FileDateTime(sFileName1)
sFileName2 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("D2")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("E2") = FileDateTime(sFileName2)
sFileName3 = Workbooks("Старт.xlsm").Sheets("Обновка").Range("D3")
Workbooks("Старт.xlsm").Sheets("Обновка").Range("E3") = FileDateTime(sFileName3)
Файл1
End Sub


Private Sub
Файл1()
If Workbooks("Старт.xlsm").Sheets("Обновка").Range("F1") = True Then
Workbooks.Open Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("D1")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs
Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("B1") & Workbooks("Старт.xlsm").Sheets("Обновка").Range("I1").Value & Workbooks("Старт.xlsm").Sheets("Обновка").Range("J1")
Application.DisplayAlerts = True
ActiveWindow.Close False
Файл2
Else
Файл2
End If
End Sub


Private Sub
Файл2()
If Workbooks("Старт.xlsm").Sheets("Обновка").Range("F2") = True Then
Workbooks.Open Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("D2")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs
Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("B2") & Workbooks("Старт.xlsm").Sheets("Обновка").Range("I2").Value & Workbooks("Старт.xlsm").Sheets("Обновка").Range("J2")
Application.DisplayAlerts = True
ActiveWindow.Close False
Файл3
Else
Файл3
End If
End Sub
 

Private Sub
Файл3()
If Workbooks("Старт.xlsm").Sheets("Обновка").Range("F3") = True Then
Workbooks.Open Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("D3")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs
Filename:=Workbooks("Старт.xlsm").Sheets("Обновка").Range("B3") & Workbooks("Старт.xlsm").Sheets("Обновка").Range("I3").Value & Workbooks("Старт.xlsm").Sheets("Обновка").Range("J3")
Application.DisplayAlerts = True
ActiveWindow.Close False
Файл4
Else
Файл4
End If
End Sub
Изменено: Platon - 12.09.2016 18:18:37
Как закрыть UsreForm2 из UserForm1, UserForm1 открывает UserForm2, но не может ее закрыть
 
Спасибо!
Как закрыть UsreForm2 из UserForm1, UserForm1 открывает UserForm2, но не может ее закрыть
 
Когда выполняется действие, указанное в коде UserForm1, на экран выводится UserForm2 с сообщением немного подождать. Когда действие UserForm1 заканчивается, UserForm2 должна автоматически закрываться, но этого не происходит. Подскажите, пожалуйста, почему и как исправить ошибку?
Цикл, робегающий строки и складывающий числа, Построчно сложить две колонки, найти последнюю строку и остановться
 
Большое спасибо!
Цикл, робегающий строки и складывающий числа, Построчно сложить две колонки, найти последнюю строку и остановться
 
В столбце G сумма, которую нужно приплюсовать в столбец С этой же строки, то есть С6 + G6, C7 + G7  и т.д. Помогите, пожалуйста, написать цикл, который пробегал бы все строки вплоть до последней. Последнюю пустую строку цикл должен определять сам. По ее достижению останавливаться. Спасибо!
Страницы: 1
Наверх