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

Вход

Регистрация

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

 

= Мир MS Excel/Не документированное ограничение в validation.InputMessage - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не документированное ограничение в validation.InputMessage (Иное/Other)
Не документированное ограничение в validation.InputMessage
vitorian Дата: Понедельник, 23.11.2015, 16:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день Уважаемые Доны.
Помогите разобраться с простым примером.
Формирую текст содержащий 15 строк ( строка конечно одна, но содержит 15 Chr(10)+Chr(13))
Вывожу эту строку в Range.validation.InputMessage
И отображается у меня увы только 11 строк.
Как обойти эту проблему? (Вывести все 15 строк)

[vba]
Код
Private Sub Workbook_Open()
Dim s As String, i As Integer
    s = ""
    For i = 1 To 15
        s = s & Str(i) & Chr(13) + Chr(10)
    Next i
       
    With Range("A3").Validation
     .Delete
     .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
     .IgnoreBlank = True
     .InCellDropdown = True
     .InputTitle = "Nums:"
     .ErrorTitle = ""
     .InputMessage = s
     .ShowInput = True
    End With
End Sub

[/vba]
К сообщению приложен файл: ErrValidation.xlsm (13.7 Kb)
 
Ответить
СообщениеДобрый день Уважаемые Доны.
Помогите разобраться с простым примером.
Формирую текст содержащий 15 строк ( строка конечно одна, но содержит 15 Chr(10)+Chr(13))
Вывожу эту строку в Range.validation.InputMessage
И отображается у меня увы только 11 строк.
Как обойти эту проблему? (Вывести все 15 строк)

[vba]
Код
Private Sub Workbook_Open()
Dim s As String, i As Integer
    s = ""
    For i = 1 To 15
        s = s & Str(i) & Chr(13) + Chr(10)
    Next i
       
    With Range("A3").Validation
     .Delete
     .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
     .IgnoreBlank = True
     .InCellDropdown = True
     .InputTitle = "Nums:"
     .ErrorTitle = ""
     .InputMessage = s
     .ShowInput = True
    End With
End Sub

[/vba]

Автор - vitorian
Дата добавления - 23.11.2015 в 16:34
Karataev Дата: Понедельник, 23.11.2015, 22:18 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Вручную такое тоже нельзя сделать, поэтому vba здесь ни при чем.
 
Ответить
СообщениеВручную такое тоже нельзя сделать, поэтому vba здесь ни при чем.

Автор - Karataev
Дата добавления - 23.11.2015 в 22:18
vitorian Дата: Вторник, 24.11.2015, 11:19 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вручную такое тоже нельзя сделать, поэтому vba здесь ни при чем.

Это означает что решения нет ??
 
Ответить
Сообщение
Вручную такое тоже нельзя сделать, поэтому vba здесь ни при чем.

Это означает что решения нет ??

Автор - vitorian
Дата добавления - 24.11.2015 в 11:19
Manyasha Дата: Вторник, 24.11.2015, 11:45 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
vitorian, можно самому нарисовать:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Shapes("inputMsg")
        If Target = [a3] Then
            Dim s As String, i As Integer
            s = "nums:" & vbCr
            For i = 1 To 15
                s = s & Str(i) & Chr(13) + Chr(10)
            Next i
            .TextFrame2.TextRange.Text = s: .Visible = msoTrue
        Else
            .TextFrame2.TextRange.Text = "": .Visible = msoFalse
        End If
    End With
End Sub
[/vba]
К сообщению приложен файл: ErrValidation-1.xlsm (17.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеvitorian, можно самому нарисовать:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Shapes("inputMsg")
        If Target = [a3] Then
            Dim s As String, i As Integer
            s = "nums:" & vbCr
            For i = 1 To 15
                s = s & Str(i) & Chr(13) + Chr(10)
            Next i
            .TextFrame2.TextRange.Text = s: .Visible = msoTrue
        Else
            .TextFrame2.TextRange.Text = "": .Visible = msoFalse
        End If
    End With
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 24.11.2015 в 11:45
Karataev Дата: Вторник, 24.11.2015, 12:04 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Это означает что решения нет ??

да, решения нет. Но можно пытаться искать замену объекту "Validation", что предлагает Manyasha (пост 4)


Сообщение отредактировал Karataev - Вторник, 24.11.2015, 12:08
 
Ответить
Сообщение
Это означает что решения нет ??

да, решения нет. Но можно пытаться искать замену объекту "Validation", что предлагает Manyasha (пост 4)

Автор - Karataev
Дата добавления - 24.11.2015 в 12:04
vitorian Дата: Вторник, 24.11.2015, 14:55 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, Огромное спасибо за решение.
 
Ответить
СообщениеManyasha, Огромное спасибо за решение.

Автор - vitorian
Дата добавления - 24.11.2015 в 14:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не документированное ограничение в validation.InputMessage (Иное/Other)
  • Страница 1 из 1
  • 1
Поиск:

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