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

Вход

Регистрация

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

 

= Мир MS Excel/Отображение текста в пустой ячейке - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отображение текста в пустой ячейке (Макросы/Sub)
Отображение текста в пустой ячейке
heaven33rus Дата: Суббота, 08.07.2017, 13:07 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Здравствуйте.
Подскажите, если ли макрос, который отображает в ячейке, допустим Лист1 ячейка A1,надпись "Введите значение", до тех пор пока туда не станут что-то вводить?
 
Ответить
СообщениеЗдравствуйте.
Подскажите, если ли макрос, который отображает в ячейке, допустим Лист1 ячейка A1,надпись "Введите значение", до тех пор пока туда не станут что-то вводить?

Автор - heaven33rus
Дата добавления - 08.07.2017 в 13:07
_Boroda_ Дата: Суббота, 08.07.2017, 13:22 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11269
Репутация: 4656 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
В модуль листа можно так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A1") = "" Then Range("A1") = "Введите значение"
    Application.EnableEvents = 1
End Sub
[/vba]
К сообщению приложен файл: 76417687671.xlsm(13Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ модуль листа можно так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A1") = "" Then Range("A1") = "Введите значение"
    Application.EnableEvents = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 08.07.2017 в 13:22
heaven33rus Дата: Суббота, 08.07.2017, 13:31 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
То, что нужно. А можно еще сделать так, чтобы по двойному щелчку, который делается перед вводом текста, текст "Введите значения" удалялся сам?
 
Ответить
СообщениеТо, что нужно. А можно еще сделать так, чтобы по двойному щелчку, который делается перед вводом текста, текст "Введите значения" удалялся сам?

Автор - heaven33rus
Дата добавления - 08.07.2017 в 13:31
_Boroda_ Дата: Суббота, 08.07.2017, 13:47 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11269
Репутация: 4656 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Можно, чего ж нельзя-то?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A1") = "" Then Range("A1") = "Введите значение"
    Application.EnableEvents = 1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = 0
        If Range("A1") = "Введите значение" Then Range("A1").ClearContents
        Application.EnableEvents = 1
    Else
        If Range("A1") = "" Then Range("A1") = "Введите значение"
    End If
End Sub
[/vba]
К сообщению приложен файл: 76417687671_1.xlsm(15Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожно, чего ж нельзя-то?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A1") = "" Then Range("A1") = "Введите значение"
    Application.EnableEvents = 1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = 0
        If Range("A1") = "Введите значение" Then Range("A1").ClearContents
        Application.EnableEvents = 1
    Else
        If Range("A1") = "" Then Range("A1") = "Введите значение"
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 08.07.2017 в 13:47
heaven33rus Дата: Суббота, 08.07.2017, 14:18 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_,
у меня в на этом листе есть еще другие макросы... кажется они как-то конфликтуют.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A24")) Is Nothing Then
        slancalendar.Show
        Target = slancalendar.Value
    End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A28") = "" Then Range("A28") = "Введите значение"
    Application.EnableEvents = 1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A28")) Is Nothing Then
        Application.EnableEvents = 0
        If Range("A28") = "Введите значение" Then Range("A28").ClearContents
        Application.EnableEvents = 1
    Else
        If Range("A28") = "" Then Range("A28") = "Введите значение"
    End If
End Sub
[/vba]

После вставки предложенного кода в свою книгу, при попытке выбрать любую ячейку вылетает ошибка.
и выделяется вот этот кусок кода [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range
[/vba]
В самом нижнем макросе.
ошибка: Ambigous name detected: Worksheet_SelectionChange

Мне что-то переименовать надо?


Сообщение отредактировал heaven33rus - Суббота, 08.07.2017, 14:20
 
Ответить
Сообщение_Boroda_,
у меня в на этом листе есть еще другие макросы... кажется они как-то конфликтуют.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A24")) Is Nothing Then
        slancalendar.Show
        Target = slancalendar.Value
    End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A28") = "" Then Range("A28") = "Введите значение"
    Application.EnableEvents = 1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A28")) Is Nothing Then
        Application.EnableEvents = 0
        If Range("A28") = "Введите значение" Then Range("A28").ClearContents
        Application.EnableEvents = 1
    Else
        If Range("A28") = "" Then Range("A28") = "Введите значение"
    End If
End Sub
[/vba]

После вставки предложенного кода в свою книгу, при попытке выбрать любую ячейку вылетает ошибка.
и выделяется вот этот кусок кода [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range
[/vba]
В самом нижнем макросе.
ошибка: Ambigous name detected: Worksheet_SelectionChange

Мне что-то переименовать надо?

Автор - heaven33rus
Дата добавления - 08.07.2017 в 14:18
_Boroda_ Дата: Суббота, 08.07.2017, 15:06 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11269
Репутация: 4656 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Блин. Ну сразу ж говорить нужно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A1") = "" Then Range("A1") = "Введите значение"
    Application.EnableEvents = 1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = 0
        If Range("A1") = "Введите значение" Then Range("A1").ClearContents
        Application.EnableEvents = 1
    Else
        If Range("A1") = "" Then Range("A1") = "Введите значение"
    End If
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A24")) Is Nothing Then
        slancalendar.Show
        Target = slancalendar.Value
    End If
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеБлин. Ну сразу ж говорить нужно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    If Range("A1") = "" Then Range("A1") = "Введите значение"
    Application.EnableEvents = 1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = 0
        If Range("A1") = "Введите значение" Then Range("A1").ClearContents
        Application.EnableEvents = 1
    Else
        If Range("A1") = "" Then Range("A1") = "Введите значение"
    End If
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A24")) Is Nothing Then
        slancalendar.Show
        Target = slancalendar.Value
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 08.07.2017 в 15:06
heaven33rus Дата: Суббота, 08.07.2017, 15:34 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Я не знал, что это может быть важно :-(

Спасибо большое!!!! все работает как часы :-)
 
Ответить
СообщениеЯ не знал, что это может быть важно :-(

Спасибо большое!!!! все работает как часы :-)

Автор - heaven33rus
Дата добавления - 08.07.2017 в 15:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отображение текста в пустой ячейке (Макросы/Sub)
Страница 1 из 11
Поиск:

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