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

Страницы: 1
Разобраться с работой макроса, доработать макрос.
 
Добрый день
В книге есть несколько макросов для сортировки значений на листе по порядковому номеру в столбце. (в столбце D - порядковый номер, столбцы E - H сортируются при изменении цифры в столбце D). Макросы написаны не мной. Необходима помощь, чтобы разобраться с порядком их работы, применить для решения похожих задач на других листах, по возможности усовершенствовать.
Готов предварительно показать файлы по видео в телеграмме.
Бюджет 1000 р.
Как вывести все результаты проверки макросом в одну ячейку
 
Здравствуйте, уважаемые форумчане.

Есть макрос, который сравнивает три столбца на двух листах по двум условиям, и, в качестве результата записывает номер строки в заданном столбце (12).
Иногда получается так, что ответов может быть несколько, но, как я понимаю, макрос перебирает все доступные варианты... и, по результатам обработки, я вижу только последнее значение, удовлетворяющее условиям проверки...

Подскажите пожалуйста, каким образом можно макрос доработать, чтобы в заданном столбце (12) получать все варианты (номера строк, удовлетворяющие условиям проверки через разделитель).

Заранее благодарю.
Код
Sub Proverka()
Dim wshtA, WshtB As Worksheet
Dim lrowA, lrowB As Long
Set wshtA = ThisWorkbook.Worksheets("входящие")
Set WshtB = ThisWorkbook.Worksheets("итог")
lrowA = wshtA.Cells(Rows.Count, 1).End(xlUp).Row
lrowB = WshtB.Cells(Rows.Count, 1).End(xlUp).Row - 1
For k = 6 To lrowB
    For i = 4 To lrowA
        If WshtB.Cells(k, 4) >= wshtA.Cells(i, 8) And WshtB.Cells(k, 4) <= wshtA.Cells(i, 12) Then
       WshtB.Cells(k, 11) = "Истина": WshtB.Cells(k, 12) = i        
    End If
    Next i
If WshtB.Cells(k, 11) = "" Then WshtB.Cells(k, 11) = "нет совпадений"
Next k
End Sub
Проверка наличия одноименного файла в папке, Перед созданием файла макросом, проверить нет ли уже в конечной папке файла с указанным названием
 
Здравствуйте уважаемые форумчане.
Помогите пожалуйста дописать макрос.

По результатам обработки, макрос создает файл в конечной папке "Выгрузки" следующим образом:
Код
Sub Создатькнигу ()
...

New_Wb.SaveAs ("\\Users\Общая\Еженедельное совещание\Выгрузки\Карта" & "_" & ThisWorkbook.Sheets("Сводная").Range("C1") & "_" & ThisWorkbook.Sheets("Вес").Range("F4") & ".xlsx") 
New_Wb.Close

End Sub

Нужно, чтобы перед тем, как создать  и сохранить файл в указанной папке макрос сначала проверял нет ли там уже такого файла, и если есть, то завершал макрос с MSGBox "Такой файл уже есть"

Заранее благодарю всех, кто сможет откликнуться.
Прерывание Private Sub ... Before Close по условию
 
Здравствуйте уважаемые форумчане.
Помогите пожалуйста решить задачу.

Есть макрос:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim xx
  xx = MsgBox("...?", vbYesNo, vbDefaultButton2)
  If xx = 6 Then: MsgBox "Молодец!"
If xx = 7 Then Exit Sub

Sheets("1").Cells.Clear
Sheets("2").Cells.Clear
Sheets("3").Cells.Clear
Dim ar, sh
ar = Array("1", "2", "3", "4", "Инструкция", "Справочная информация", "Sheet1")
Application.DisplayAlerts = False
On Error Resume Next
For Each sh In Worksheets
 If WorksheetFunction.Match(sh.Name, ar, 0) = 0 Then sh.Delete
Next Sh
End Sub

Мне нужно, чтобы при нажатии на кнопку "Нет" макрос завершал бы свою работу. Сейчас он продолжает идти по шагам дальше - очищает листы, удаляет ненужные, не реагирует на Exit Sub ((
Возможно такое реализовать для Private Sub?

Заранее благодарю всех кто сможет откликнуться.
Как записать формулу в макросе используя свойство Cells
 
Здравствуйте уважаемые форумчане.
Подскажите пожалуйста, как можно преобразовать вот такую формулу:
ActiveCell.FormulaR1C1 = "=IFERROR(IF(RC1*RC2*RC171=0,0,1),0)
с использованием обозначения ячеек свойством Cells?

Результат представлял себе примерно как-то так, но только, чтобы работало)):

ActiveCell.Formula = "=IFERROR(IF((Cells(1,1))*(Cells(1,2))*(Cells(1,lcol))=0,0,1),0)"

Запрос продиктован тем, что последний множитель формулы будет находится в последнем столбце таблицы, которая будет ежедневно меняться.

*lcol = Cells(1, Columns.Count).End(xlToLeft).Column

Заранее благодарю.
Страницы: 1
Наверх