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

Страницы: 1
проблема с MsgBox по условию с кнопками Да Нет
 
Выражаю свою благодарность за помощь.
Спасибо за урок.
проблема с MsgBox по условию с кнопками Да Нет
 
Здравствуйте, форумчане
Помогите с макросом, пожалуйста.
Имеется накладная, в ней есть две ячейки (C21 , C22), в которых указывается курс доллара и скидка.
Условие:
Если ячейки заполненные, то при запуске макроса ничего не происходит.
Если какая-то ячейка пустая, то выскакивает MsgBox "Хотите указать курс и скидку?"
При клике на кнопку ДА выходим из макроса, если жмем НЕТ - макрос работает дальше.
В данном случае выскакивает OK.
Подскажите, что неправильно сделал.
Пример в файле.
Спасибо.
Код
Sub Add_discount()
Set ws = ActiveSheet
'получение последней строки в столбце 5
lLastRow = ws.Cells(Rows.Count, 5).End(xlUp).Row

'указываем ячейку C21, с текстом курс (диапазон динамический)
If Cells(lLastRow, 5).Offset(2, -2).Value = 0 Then
MsgBox "Хотите указать курс доллара и скидку?", vbYesNo
End If
'указываем ячейку C22, с текстом скидка
If Cells(lLastRow, 5).Offset(3, -2).Value = 0 Then
MsgBox "Хотите указать курс доллара и скидку?", vbYesNo
End If

Dim answer As Integer
answer = MsgBox("Хотите указать курс доллара и скидку?", vbYesNo)
If answer = vbYes Then
Exit Sub
Else: MsgBox "OK"
End If

End Sub
Вставка строки во всех листах с протяжкой формул
 
Вроде бы проблему решил используя цикл.
Это конкретно для моего случая.
Принцип работы макроса:
В первом листе "Итоги" выделяем строку над которой надо вставить.
Alt+F8 Выполнить Insert_Rows
Может кому пригодится.
Выглядит топорно и напрягает видимый перебор листов при выполнении макроса, но как смог, чайник я.
Если кто-то решит доработать, скажу большое спасибо.
Вот код макроса (первый лист "Итоги", названия последующих для макроса не принципиально):
Код
Sub Insert_Rows()
' если выделено больше одной строки или не строка выход
If Selection.Rows.Count > 1 Then
MsgBox "Выделите только одну строку", vbOKOnly
Exit Sub
End If
If Selection.Cells.Count < 20 Then
MsgBox "Выделите строку", vbOKOnly
Exit Sub
End If

'выделяем все листы в книге
Worksheets.Select
Sheets("Итоги").Activate
    
'присваиваем выделеную строку
r_ = Selection.Row
'вставляем во все листы строку
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
    Sheets("Итоги").Select
    'создаем цикл для каждого листа
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
    sh.Select
    'копируем предыдущую строку
    Rows(r_ - 1).Copy
    'выделяем вставленную и делаем вставку формул
    Rows(r_).Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, _
        SkipBlanks:=False, Transpose:=False
        'удаляем все кроме формул в строке
            On Error Resume Next
    Selection.SpecialCells(2).Value = Empty
    On Error GoTo 0
        Application.CutCopyMode = False
        Cells(1, 1).Select
         Next sh
         'выбираем первый лист, чтобы внести наименования в добавленную строку
         Sheets("Итоги").Select
         Cells(r_, 1).Select
End Sub
Вставка строки во всех листах с протяжкой формул
 
Спасибо всем, буду разбираться.
Вставка строки во всех листах с протяжкой формул
 
Здравствуйте,
Помогите, пожалуйста, с написанием макроса.
Есть файл с листами.
Первый лист - "Итоги", в нем вносятся наименования товара (в первые два столбца),
тут же столбцы, данные в которые берутся из остальных листов.
Другие листы - это покупатели, в них вносятся количество товара и дата покупки.
Наименования в листах с покупателями берутся из листа "Итоги" через формулу.
Покупатели добавляются.
Задача:
необходимо добавлять новые наименования, но не в последнюю строку а,
например, в середине, всоответсвие с группой товара.
И чтобы эта строка добавлялась во все остальные листы с протяжкой формул.
С горем пополам наваял макрос:
выделяешь строку, над которой надо вставить наименование.
Запускаешь макрос. Он вставляет строки во всех листах, и всталяет все данные из следующей сроки.
Необходимо чтобы протягивались только формулы, а ячейки, в которые вносят значения,
оставались пустыми.
Пример в файле.
Спасибо.
Страницы: 1
Наверх