Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Последние сообщения

#91
В этом случает ничего не должно происходить. Просто остается не выделенным.
#93
Готовите данные по точкам(для шкал X и Y) в Excel и создаете диаграмму типа Поверхностная.
Можете набрать в любом поисковике запрос "поверхностная диаграмма в excel" и посмотреть как это делается. Без Ваших данных никто Вам ничего конкретного не скажет.
#94
Доброго времени суток!

Как сделать 3D-визуализацию температурного картирования (см. изображение) в среде Excel?
#95
Всем привет! На сайте есть супер макрос для сбора данных из нескольких листов/книг:
https://www.excel-vba.ru/chto-umeet-excel/kak-sobrat-dannye-s-neskolkix-listov-ili-knig/comment-page-30/#comment-254645
Я никак не могу доработать его таким образом, чтобы копировались данные только из НЕ скрытых строк. Например (во вложении Книга1 и Книга2) - на листе есть три таблицы, две из которых всегда скрыты. Когда я запускаю макрос сбора данных, указав диапазон = "Область печати", то он копирует всё независимо от того скрыты строки или нет. Пробовал использовать ".SpecialCells(xlCellTypeVisible)" - выдает ошибку "Это невозможно сделать в объединённой ячейке". Пробовал добавить проверку скрытости строк через If
With wsSh
If Range("A3").EntireRow.Hidden = True And Range("A26").EntireRow.Hidden = True Then Set iBeginRange = Range("A58:k73")
If Range("A26").EntireRow.Hidden = True And Range("A58").EntireRow.Hidden = True Then Set iBeginRange = Range("A3:k18")
If Range("A3").EntireRow.Hidden = True And Range("A58").EntireRow.Hidden = True Then Set iBeginRange = Range("A26:k47")
работает, но только с первым файлом. На втором выдает ошибку "object requred" по строке "sCopyAddress = iBeginRange.Address"
Просьба помочь гуру форумчан доработать макрос для копирования только видимых строк.
Вы не можете просматривать это вложение.
Вы не можете просматривать это вложение.
Вы не можете просматривать это вложение. 
#96
Цитата: Difaz2006 от 10.03.2025, 13:47:26если в ячейке С10 есть любой текст.
именно текст? А если будет записано число?
Цитата: Difaz2006 от 10.03.2025, 13:47:263. Если в ячейку F10 вбить числа, то она перестает выделяться.
Уточните условие: если вбить число, но при этом С10 пустая - что должно произойти?
#97
Добрый день, уважаемые форумчане.
Есть макрос, который при запуске обновляет в книге все существующие запросы и если какой-нибудь запрос выдал ошибку, выдает окно с предложением перезапустить запрос.
Можно как-то доработать макрос, чтобы при ошибке обновления запроса он автоматически попытался его еще раз обновить 3 раза, с интервалом в 2 часа после каждой ошибки и если после трех раз он все-таки не обновился, то записал на лист «Путь» в ячейку "B5" «Ошибка обновления запроса и дата».
Заранее спасибо.
Код VBA:
Private Type RefreshResultType
    Message As String
    Success As Boolean
End Type
Public Sub RefreshAllOleDbConnections()
    Dim pConnection As WorkbookConnection
    For Each pConnection In ThisWorkbook.Connections
        If pConnection.Type = xlConnectionTypeOLEDB Then
            RefreshOleDbConnection pConnection.OLEDBConnection
        End If
    Next
End Sub

Private Sub RefreshOleDbConnection(ByVal thisConnection As OLEDBConnection)
    Dim result As RefreshResultType
    result = TryRefreshOleDbConnection(thisConnection)
    If Not result.Success Then
    If MsgBox("Ïðîèçîøëà îøèáêà: " & result.Message, vbYesNo Or vbQuestion, "Îøèáêà îáíîâëåíèÿ çàïðîñà, ïîâòîðèòü?") = vbYes Then
    RefreshOleDbConnection thisConnection
        End If
        End If
End Sub

Private Function TryRefreshOleDbConnection(ByVal thisConnection As OLEDBConnection) As RefreshResultType
On Error GoTo errHandle:
    Dim storedRefresh As Boolean, result As RefreshResultType
    storedRefresh = thisConnection.BackgroundQuery
    thisConnection.BackgroundQuery = False
    thisConnection.Refresh
    thisConnection.BackgroundQuery = storedRefresh
    result.Success = True
    TryRefreshOleDbConnection = result
Exit Function
errHandle:
    thisConnection.BackgroundQuery = storedRefresh
    result.Message = Err.Description
    result.Success = False
    TryRefreshOleDbConnection = result
End Function


Файл с макросом: Вы не можете просматривать это вложение.


P.s. макрос не мой, взял из инета, уровень познания работы с VBA = джун*0,15 :)
#98
Доброго времени. Помогите пожалуйста с формулой.
1. Нужно чтобы ячейка F10 выделялось цветом если в ячейке С10 есть любой текст.
2. Если в ячейке С10 нет текста, то F10 не выделяется цветом.
3. Если в ячейку F10 вбить числа, то она перестает выделяться.
#99
Вопросы по Excel и VBA / Re: макросом в Excel скопирова...
Последний ответ от ot-agro - 10.03.2025, 12:05:09
Суть да дело, сделал рабочий код (изменил название таблицы "Zch" на "tbl_1") копирования таблицы, но он копирует всю таблицу. Как сделать чтобы копировал только отфильтрованные ячейки? Пристраиваю параметр ".SpecialCells(xlCellTypeVisible)" к оператору Set - отладчик выдаёт ошибку. Пытаюсь "пристроить" к myRange - тоже ошибка... Что делаю не так?

Sub Add_RASH_Ex()

Dim tbl_1 As ListObject
Dim tbl_2 As ListObject
Dim Sheet41 As Worksheet
Dim myRange As Range

Set tbl_1 = ThisWorkbook.Worksheets("Sheet11").ListObjects("tbl_1")
Set tbl_2 = ThisWorkbook.Worksheets("Sheet41").ListObjects("tbl_2")
Set Sheet41 = ThisWorkbook.Worksheets("Sheet41")
Set myRange = ActiveSheet.ListObjects("tbl_2").DataBodyRange

tbl_1.DataBodyRange.Copy myRange

End Sub
#100
Вопросы по Excel и VBA / макросом в Excel скопировать у...
Последний ответ от ot-agro - 10.03.2025, 11:20:23
Все доброго дня!
Дано - умная таблица "Zch" на листе Sheet11. Требуется в колонке "Накладная, №" после применения фильтра по значению "1" скопировать данные на лист Sheet41 в таблицу Schet_1, затем фильтр по значению "2" скопировать на тот же лист, но уже в таблицу Schet_2.
Помогите  :'( , перепробовал все варианты, в синтаксисе не силён, а адаптировать примеры, имеющиеся в интернете не получается, так как они все привязаны к вставке на лист, а не в тело конкретной таблицы. Вот исходный код для правки, не рабочий. Файл , если нужен, прилагаю

Sub Add_RASH_Ex()

Dim tbl_1 As ListObject
Dim tbl_2 As ListObject
Dim tbl_3 As ListObject
Dim Sheet11 As Worksheet
Dim Sheet41 As Worksheet

Set Sheet11 = ThisWorkbook.Worksheets("Sheet11")
Set Sheet41 = ThisWorkbook.Worksheets("Sheet41")
Set tbl_1 = Sheet11.ListObjects("Zch")
Set tbl_2 = Sheet41.ListObjects("Schet_1")
Set tbl_3 = Sheet41.ListObjects("Schet_2")

ActiveSheet.ListObjects("Zch").DataBodyRange.SpecialCells(xlCellTypeVisible).Select
ActiveSheet.ListObjects("Zch").DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
ThisWorkbook.Worksheets("Sheet41").Activate
ActiveSheet.ListObjects("tbl_2").DataBodyRange.Paste
ActiveSheet.ListObjects("tbl_3").DataBodyRange.Paste
Вы не можете просматривать это вложение.
End Sub
Яндекс.Метрика Рейтинг@Mail.ru