Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изменение ячеек вывода MsgBox в зависимости от даты в ячейке - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Изменение ячеек вывода MsgBox в зависимости от даты в ячейке
Amon Дата: Пятница, 06.04.2018, 11:35 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток.
В 1 модуле Много макросов с MsgBox'ами , ответы да/нет записываются в указаные ячейки, что нужно дописать чтобы при изменение даты в ячейке С3 допустим MsgBox сохранял не в лист.2 ячека Д8 допустим,
а в лист 2.ячейка Е8 и тд , или что-то вроде , если значение ячейки С3 совпадает с ячейкой Е7 тогда все ответы сохраняются в Е7-Е8-Е9 и тд?
Вот пример моего MsgBox а и так идут они вкучку все

[vba]
Код

Sub Макрос0()
'
' Макрос0 Макрос Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If MsgBox("Программа установилась?", vbYesNo, "Установка") = vbYes Then
Sheets("МП").Range("D7").FormulaR1C1 = "Ошибок нет"
With Sheets("МП").Range("D7").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = vbGreen
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Else
Sheets("МП").Select
Range("D7").Select
ActiveCell.FormulaR1C1 = "Введите описание ошибки"
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If

End Sub
[/vba]

Помогите пожалуйста уже 3 дня ищу в интернете и не могу найти:(
К сообщению приложен файл: ___.xlsm (34.6 Kb)


Сообщение отредактировал Amon - Пятница, 06.04.2018, 11:57
 
Ответить
СообщениеДоброго времени суток.
В 1 модуле Много макросов с MsgBox'ами , ответы да/нет записываются в указаные ячейки, что нужно дописать чтобы при изменение даты в ячейке С3 допустим MsgBox сохранял не в лист.2 ячека Д8 допустим,
а в лист 2.ячейка Е8 и тд , или что-то вроде , если значение ячейки С3 совпадает с ячейкой Е7 тогда все ответы сохраняются в Е7-Е8-Е9 и тд?
Вот пример моего MsgBox а и так идут они вкучку все

[vba]
Код

Sub Макрос0()
'
' Макрос0 Макрос Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If MsgBox("Программа установилась?", vbYesNo, "Установка") = vbYes Then
Sheets("МП").Range("D7").FormulaR1C1 = "Ошибок нет"
With Sheets("МП").Range("D7").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = vbGreen
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Else
Sheets("МП").Select
Range("D7").Select
ActiveCell.FormulaR1C1 = "Введите описание ошибки"
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If

End Sub
[/vba]

Помогите пожалуйста уже 3 дня ищу в интернете и не могу найти:(

Автор - Amon
Дата добавления - 06.04.2018 в 11:35
Manyasha Дата: Пятница, 06.04.2018, 11:39 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
Amon, Прочитайте Правила форума
Оформите код тегами (кнопка #)
и файл не помешал бы


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеAmon, Прочитайте Правила форума
Оформите код тегами (кнопка #)
и файл не помешал бы

Автор - Manyasha
Дата добавления - 06.04.2018 в 11:39
Amon Дата: Пятница, 06.04.2018, 11:50 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha

Спасибо большое, извините ^_^
 
Ответить
Сообщение
Manyasha

Спасибо большое, извините ^_^

Автор - Amon
Дата добавления - 06.04.2018 в 11:50
Mikael Дата: Пятница, 06.04.2018, 12:40 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
Amon, добрый день.
Так хотели?
[vba]
Код
Sub Макрос0()
    Dim rCell As Range
    With Worksheets("МП")
        'Пересечение строки 7 и столбца с датой. Для остальных макросов поменять номер строки здесь: .Rows(7)
        Set rCell = Intersect(.Rows(7), .Cells.Find(Worksheets("1").[c2]).EntireColumn)
    End With
    With rCell
        If MsgBox("Программа установилась?", vbYesNo, "Установка") = vbYes Then
            .Value = "Ошибок нет"
            .Interior.Color = vbGreen
        Else
            .Value = "Введите описание ошибки"
            .Interior.Color = 65535
            Worksheets("МП").Activate
            .Select
        End If
    End With
End Sub
[/vba]
К сообщению приложен файл: 4324402.xlsm (32.1 Kb)
 
Ответить
СообщениеAmon, добрый день.
Так хотели?
[vba]
Код
Sub Макрос0()
    Dim rCell As Range
    With Worksheets("МП")
        'Пересечение строки 7 и столбца с датой. Для остальных макросов поменять номер строки здесь: .Rows(7)
        Set rCell = Intersect(.Rows(7), .Cells.Find(Worksheets("1").[c2]).EntireColumn)
    End With
    With rCell
        If MsgBox("Программа установилась?", vbYesNo, "Установка") = vbYes Then
            .Value = "Ошибок нет"
            .Interior.Color = vbGreen
        Else
            .Value = "Введите описание ошибки"
            .Interior.Color = 65535
            Worksheets("МП").Activate
            .Select
        End If
    End With
End Sub
[/vba]

Автор - Mikael
Дата добавления - 06.04.2018 в 12:40
Amon Дата: Пятница, 06.04.2018, 13:19 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Amon, добрый день.
Так хотели?

вы просто супер!!!))) Спасибо вам огромное!!
 
Ответить
Сообщение
Amon, добрый день.
Так хотели?

вы просто супер!!!))) Спасибо вам огромное!!

Автор - Amon
Дата добавления - 06.04.2018 в 13:19
Amon Дата: Понедельник, 09.04.2018, 12:16 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Amon, добрый день.
Так хотели?

Скажите пожалуйста, а возможно сделать так чтобы он не найдя соответствие, создавался столбец со сдвигом вправо к примеру и вносил дату проставленную в ячейке С2 ?


Сообщение отредактировал Amon - Понедельник, 09.04.2018, 12:32
 
Ответить
Сообщение
Amon, добрый день.
Так хотели?

Скажите пожалуйста, а возможно сделать так чтобы он не найдя соответствие, создавался столбец со сдвигом вправо к примеру и вносил дату проставленную в ячейке С2 ?

Автор - Amon
Дата добавления - 09.04.2018 в 12:16
Mikael Дата: Понедельник, 09.04.2018, 14:50 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
Amon, можно, для этого нужно определить куда вставлять этот столбец.
Сделал 2 варианта, вставка в начало и в конец. Ненужное удалите или закомментируйте.
К сообщению приложен файл: 9766495.xlsm (36.0 Kb)
 
Ответить
СообщениеAmon, можно, для этого нужно определить куда вставлять этот столбец.
Сделал 2 варианта, вставка в начало и в конец. Ненужное удалите или закомментируйте.

Автор - Mikael
Дата добавления - 09.04.2018 в 14:50
Amon Дата: Понедельник, 09.04.2018, 16:17 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Amon, можно, для этого нужно определить куда вставлять этот столбец.
Сделал 2 варианта, вставка в начало и в конец. Ненужное удалите или закомментируйте.

Спасибо большое, да. Только почему-то в моем варианте кода заливка с предыдущего столбца иногда перетекает в созданный столбец в других строках.
[vba]
Код

Sub Макрос0()
    Dim rCell As Range
    With Worksheets("МП")
    If .Cells.Find(Worksheets("1").[c2]) Is Nothing Then
            d = CDate(Worksheets("1").[c2])
            Do
                d = d - 1
                If Not .Cells.Find(d) Is Nothing Then
                    .Cells.Find(d).Offset(, 1).EntireColumn.Insert xlToRight
                    .Cells.Find(d).Offset(, 1).Value = Worksheets("1").[c2]
                    Exit Do
                End If
                If d = CDate(Worksheets("1").[c2]) - 1000 Then Exit Sub
            Loop
            '-----------------------------------------------------------------
        End If
        'Пересечение строки 7 и столбца с датой. Для остальных макросов поменять номер строки здесь: .Rows(7)
        Set rCell = Intersect(.Rows(7), .Cells.Find(Worksheets("1").[c2]).EntireColumn)
    End With
    Dim a
    a = MsgBox("Программа установилась?", vbYesNoCancel, "Установка")
    With rCell
        If a = 6 Then
            .Value = "Ошибок нет"
            .Interior.Color = vbGreen
        ElseIf a = 7 Then
            .Value = "Введите описание ошибки"
            .Interior.Color = 65535
            Worksheets("МП").Activate
            .Select
            Else
        End If
    End With
End Sub
[/vba]

К сообщению приложен файл: 4782144.jpg (32.9 Kb)
 
Ответить
Сообщение
Amon, можно, для этого нужно определить куда вставлять этот столбец.
Сделал 2 варианта, вставка в начало и в конец. Ненужное удалите или закомментируйте.

Спасибо большое, да. Только почему-то в моем варианте кода заливка с предыдущего столбца иногда перетекает в созданный столбец в других строках.
[vba]
Код

Sub Макрос0()
    Dim rCell As Range
    With Worksheets("МП")
    If .Cells.Find(Worksheets("1").[c2]) Is Nothing Then
            d = CDate(Worksheets("1").[c2])
            Do
                d = d - 1
                If Not .Cells.Find(d) Is Nothing Then
                    .Cells.Find(d).Offset(, 1).EntireColumn.Insert xlToRight
                    .Cells.Find(d).Offset(, 1).Value = Worksheets("1").[c2]
                    Exit Do
                End If
                If d = CDate(Worksheets("1").[c2]) - 1000 Then Exit Sub
            Loop
            '-----------------------------------------------------------------
        End If
        'Пересечение строки 7 и столбца с датой. Для остальных макросов поменять номер строки здесь: .Rows(7)
        Set rCell = Intersect(.Rows(7), .Cells.Find(Worksheets("1").[c2]).EntireColumn)
    End With
    Dim a
    a = MsgBox("Программа установилась?", vbYesNoCancel, "Установка")
    With rCell
        If a = 6 Then
            .Value = "Ошибок нет"
            .Interior.Color = vbGreen
        ElseIf a = 7 Then
            .Value = "Введите описание ошибки"
            .Interior.Color = 65535
            Worksheets("МП").Activate
            .Select
            Else
        End If
    End With
End Sub
[/vba]


Автор - Amon
Дата добавления - 09.04.2018 в 16:17
Mikael Дата: Понедельник, 09.04.2018, 16:43 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
добавьте после вставки столбца
[vba]
Код
.Cells.Find(d).Offset(, 1).EntireColumn.Interior.Color = xlNone
[/vba]
К сообщению приложен файл: 5996017.xlsm (35.4 Kb)
 
Ответить
Сообщениедобавьте после вставки столбца
[vba]
Код
.Cells.Find(d).Offset(, 1).EntireColumn.Interior.Color = xlNone
[/vba]

Автор - Mikael
Дата добавления - 09.04.2018 в 16:43
Amon Дата: Понедельник, 09.04.2018, 17:17 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
добавьте после вставки столбца

Спасибо, все заработало нормально теперь.
 
Ответить
Сообщение
добавьте после вставки столбца

Спасибо, все заработало нормально теперь.

Автор - Amon
Дата добавления - 09.04.2018 в 17:17
Amon Дата: Вторник, 10.04.2018, 14:36 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Amon, добрый день.
Так хотели?

Скажите пожалуйста, возникла необходимость в подпунктах на втором листе, к примеру чтобы вносить в одну дату что-то вроде слов Тест 1 Тест 2
я пытался модифицировать ваш макрос но у меня даже на это ума не хватило. Просто на эту тему в интернете не могу найти информацию
Или если можно сделать чтобы он искал не просто дату, а дату + время допустим


Сообщение отредактировал Amon - Вторник, 10.04.2018, 14:42
 
Ответить
Сообщение
Amon, добрый день.
Так хотели?

Скажите пожалуйста, возникла необходимость в подпунктах на втором листе, к примеру чтобы вносить в одну дату что-то вроде слов Тест 1 Тест 2
я пытался модифицировать ваш макрос но у меня даже на это ума не хватило. Просто на эту тему в интернете не могу найти информацию
Или если можно сделать чтобы он искал не просто дату, а дату + время допустим

Автор - Amon
Дата добавления - 10.04.2018 в 14:36
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!