Страницы: 1
RSS
Указать примечания из ячеек в ListBox'e на пользовательской форме., Как перенести значения из примечаний ячеек в listbox
 
Здравствуйте дорогие форумчане самого полезного форума в сети!

Пыталась своими силами решить этот вопрос, но все тщетно. Не смогла найти в интернете подходящее решение.

Проблема именно в том, что в примечании текст переносится одной строкой в ListBox, а мне надо, что бы все было как в самом примечании в несколько строк.

Есть идеи по решению? Буду очень признательна!
 
вот так можно:
Код
Private Sub UserForm_Initialize()
    Dim str As String
    Dim arr() As String
    If Not Shm.Range("I1").Comment Is Nothing Then str = Shm.Range("I1").Comment.Text
    If Not Shm.Range("I2").Comment Is Nothing Then
        If Len(str) > 0 Then str = str & Chr(10)
        str = str & Shm.Range("I2").Comment.Text
    End If
    arr = Split(str, Chr(10))
    Me.ListBox1.List = arr
End Sub
 
Спасибо огромное Webley! Все именно так, как нужно! :D  
 
Код
Sub kjsdhgklsfdg()
Dim rngCells As Range, s As String, cell
Set rngCells = Range("I1:I10")
For Each cell In rngCells
  If Not cell.Comment Is Nothing Then If Len(s) Then s = s & Chr(10) & cell.Comment.Text Else s = cell.Comment.Text
Next
UserForm1.ListBox1.List = Split(s, Chr(10))
UserForm1.Show
End Sub
 
AAF, ваш вариант тоже, как всегда, работает безупречно! Спасибо огромное! :D

Честно говоря это как раз то, что нужно, так как у меня таких строк очень много. Очень удобно. Как будто прочитали мои мысли.
Изменено: bekzus - 23.10.2017 18:58:40
 
Если формат данных примечаний стандартны, как в примере, то можно что-то типа этого сделать...
Код
Sub gfjf()
Dim rngCells As Range, s As String, cell, a, aStr, arr, parCount As Integer, i As Long, j As Integer
Set rngCells = Range("I1:I10")
For Each cell In rngCells
  If Not cell.Comment Is Nothing Then If Len(s) Then s = s & Chr(10) & cell.Comment.Text Else s = cell.Comment.Text
Next
a = Split(s, Chr(10))
parCount = 3
ReDim arr(UBound(a), 0 To parCount)
For i = 0 To UBound(a)
  aStr = Split(a(i), "=")
  arr(i, 0) = Trim(aStr(0))
  aStr = Split(Replace(aStr(1), ":", ","), ",")
  For j = 1 To parCount
    arr(i, j) = CLng(Trim(aStr(j * 2 - 1)))
  Next
Next
With UserForm1.ListBox1
  .ColumnCount = parCount + 1
  .ColumnWidths = "200;50;50;50"
  .List = arr
End With
UserForm1.Show
End Sub
 
ААF, это просто взрыв мозга! Не думала, что такое вообще возможно. Сижу изучаю теперь. :D  
 
Как пример получения данных из ListBox:
Код
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim namePos As String, price As Long, quantity As Long, summ As Long
With ListBox1
  namePos = .List(.ListIndex, 0)
  price = .List(.ListIndex, 1)
  quantity = .List(.ListIndex, 2)
  summ = .List(.ListIndex, 3)
End With
Cells(2, 1) = namePos
Cells(2, 2) = price
Cells(2, 3) = quantity
Cells(2, 4) = summ
End Sub
 
Не успела спросить, как уже получила ответ и на этот вопрос. Какие-то чудеса просто! 8-0  
 
Цитата
bekzus написал:
Какие-то чудеса просто!
А что Вы хотели? - Планета ))
 
AAF, а возможно добавить Column.Heads?
Название         Цена           Кол-во        Сумма
 
Теперь Вы читаете мои мысли... :)
Я поискал уже, но не нашел. Глаза уже не видят. Завтра скину. У меня где-то написан класс с регулируемыми заголовками по размеру столбцов и высотой листбокса.
И скрол туда запихан.
 
Форма-меню на базе ListBox с заголовками (регулируются мышью и задаются в pt при старте)
MouseScroll
Поиск в выделенных столбцах(не выделено - ищет во всех)
Сортировка по DblClick
MultiSelect(выдает в массив отсчет с ноля)
Размер мышкой по вертикали, перетаскивание окна
Место для Ваших Controlov на Frame1.
Автоформатирование дат и Автопозиционирование чисел (разделитель дробной части друг над другом(Tahoma,TimesNewRoman,Arial(10)))
Вообщем, будут вопросы задавайте.
Изменено: AAF - 01.01.2018 09:22:57
 
Цитата
AAF написал: Автоформатирование дат и Автопозиционирование чисел (разделитель дробной части друг над другом(Tahoma,TimesNewRoman,Arial(10)))
Доброго дня а что значит вот это? Для чего оно? я имею ввиду автопозиционирование автоформатирование

Цитата
AAF написал: MultiSelect(выдает в массив отсчет с ноля)
А это как?
Изменено: alex1210 - 18.11.2017 00:54:39
 
Если дату просто поместить в ListBox, то она не факт. что корректно отобразится, а числа так удобней просматривать... :)
Ведь в ListBoxe нет TextAlign для каждого столбца...
Все выделеные записи складывает в массив с индексами начинающимися как у ListBox.List (0,0)
Изменено: AAF - 18.11.2017 00:54:34
 
Вообщим поисковик работает так, выделяем текст который надо искать и он добавляется в юзерформ?
 
Нет, он ищет в загруженной инфе в самом ListBox. А выделяются заголовок(ки) тех столбцов, в которых нужно вести поиск.
В файле правой кнопкой мыши по таблице сделана демонстрация для примера...
Выделяются кликом, сортировка дваКлика, поиск по синтаксису Like.
Изменено: AAF - 18.11.2017 01:13:48
 
AAF,Ну да сильная вещь, с ним так сразу не разберешься)))
 
win7x86 office 2007

что нужно включить в tools/references?
Изменено: qweewert - 01.01.2018 01:47:09
qweewert
 
Заменил файл в сообщении 13
У меня нет офиса 2007, проверить не могу, поэтому проверьте и по возможности напишите о результате.
Изменено: AAF - 01.01.2018 09:26:16
 
большое спасибо!!!!
Изменено: qweewert - 01.01.2018 05:05:44
qweewert
 
Решил полюбопытствовать.
Кликнул по чекбоксу, закрыл исключительно убиением процесса.
 
RAN, MouseWheelResolution = True строку в UserForm_Initialize надо заремить, тогда до убиения процесса не дойдет. :)
Я вроде кликал-перекликал не повезло нарваться...
Страницы: 1
Наверх