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

Вход

Регистрация

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

 

= Мир MS Excel/ListBox установить ширину стобца=0 если на листе он Скрытый - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
ListBox установить ширину стобца=0 если на листе он Скрытый
urlchik Дата: Суббота, 06.04.2019, 19:00 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем доброго здравия!
Подскажите, пожалуйста! Можно ли такое сотворить - заполнить листбокс из диапазона, но если столб скрыт, то в листбоксе его ширина =0?
Или сначала заполнить ЛистБокс, а потом проверить на скрытые столбцы в диапазоне, если да, то в Листбоксе его ширина=0

ColumnWidths надо указывать ширину каждого столбца
может есть, что-то типа : [vba]
Код
Me.ListBox.Column(5).ColumnWidths = 0
[/vba] - но такое вба не пускает 381 ошибка - инвалид колумн проперти

А может есть способ заставить ЛистБокс НЕ ПОКАЗЫВАТЬ скрытые столбцы или строки?

Спасибо!!!


Век живи - век учись!

Сообщение отредактировал urlchik - Суббота, 06.04.2019, 20:46
 
Ответить
СообщениеВсем доброго здравия!
Подскажите, пожалуйста! Можно ли такое сотворить - заполнить листбокс из диапазона, но если столб скрыт, то в листбоксе его ширина =0?
Или сначала заполнить ЛистБокс, а потом проверить на скрытые столбцы в диапазоне, если да, то в Листбоксе его ширина=0

ColumnWidths надо указывать ширину каждого столбца
может есть, что-то типа : [vba]
Код
Me.ListBox.Column(5).ColumnWidths = 0
[/vba] - но такое вба не пускает 381 ошибка - инвалид колумн проперти

А может есть способ заставить ЛистБокс НЕ ПОКАЗЫВАТЬ скрытые столбцы или строки?

Спасибо!!!

Автор - urlchik
Дата добавления - 06.04.2019 в 19:00
bmv98rus Дата: Суббота, 06.04.2019, 21:45 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
urlchik не проблема строку разделить через split, обнулить нужный элемент и снова собрав прописать обратно
типа этого
[vba]
Код
a = Split(Me.ListBox1.ColumnWidths, ";")
a(5) = 0
Me.ListBox1.ColumnWidths = Join(a, ";")
[/vba]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеurlchik не проблема строку разделить через split, обнулить нужный элемент и снова собрав прописать обратно
типа этого
[vba]
Код
a = Split(Me.ListBox1.ColumnWidths, ";")
a(5) = 0
Me.ListBox1.ColumnWidths = Join(a, ";")
[/vba]

Автор - bmv98rus
Дата добавления - 06.04.2019 в 21:45
urlchik Дата: Воскресенье, 07.04.2019, 09:39 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
строку разделить через split

т.е изначально строка ColumnWidths должна быть заполнена?


Век живи - век учись!
 
Ответить
Сообщение
строку разделить через split

т.е изначально строка ColumnWidths должна быть заполнена?

Автор - urlchik
Дата добавления - 07.04.2019 в 09:39
urlchik Дата: Воскресенье, 07.04.2019, 10:29 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Нарыл еще вот такой код [vba]
Код
Private Sub UserForm_Initialize()
Dim ColCnt As Integer
Dim rng As Range
Dim cw As String
Dim c As Integer
ColCnt = ActiveSheet.UsedRange.Columns.Count
Set rng = ActiveSheet.UsedRange
With ListBox1
.ColumnCount = ColCnt
.RowSource = rng.Address
cw = ""
For c = 1 To .ColumnCount
cw = cw & rng.Columns(c).Width & ";"
Next c
.ColumnWidths = cw
.ListIndex = 0
End With
End Sub
[/vba]

В нем не надо разделять строку а потом собирать! Тут сразу пишется строка с шириной колонки листа

Мож.кому пригодится!

Спасибо bmv98rus за помощь! Вашу идею тоже надо взять на вооружение!


Век живи - век учись!

Сообщение отредактировал urlchik - Воскресенье, 07.04.2019, 10:32
 
Ответить
СообщениеНарыл еще вот такой код [vba]
Код
Private Sub UserForm_Initialize()
Dim ColCnt As Integer
Dim rng As Range
Dim cw As String
Dim c As Integer
ColCnt = ActiveSheet.UsedRange.Columns.Count
Set rng = ActiveSheet.UsedRange
With ListBox1
.ColumnCount = ColCnt
.RowSource = rng.Address
cw = ""
For c = 1 To .ColumnCount
cw = cw & rng.Columns(c).Width & ";"
Next c
.ColumnWidths = cw
.ListIndex = 0
End With
End Sub
[/vba]

В нем не надо разделять строку а потом собирать! Тут сразу пишется строка с шириной колонки листа

Мож.кому пригодится!

Спасибо bmv98rus за помощь! Вашу идею тоже надо взять на вооружение!

Автор - urlchik
Дата добавления - 07.04.2019 в 10:29
bmv98rus Дата: Воскресенье, 07.04.2019, 10:40 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
urlchik, конечно я давал ответ предполагая, что и количество отображаемых столбцов и их размер предопределен и надо просто скрыть один из них. В случае когда все набирается с нуля , как в том примере, что вы нашли, то делить нечего.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеurlchik, конечно я давал ответ предполагая, что и количество отображаемых столбцов и их размер предопределен и надо просто скрыть один из них. В случае когда все набирается с нуля , как в том примере, что вы нашли, то делить нечего.

Автор - bmv98rus
Дата добавления - 07.04.2019 в 10:40
urlchik Дата: Понедельник, 08.04.2019, 10:47 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
конечно я давал ответ предполагая, что и количество отображаемых столбцов и их размер предопределен


Спасибо!


Век живи - век учись!
 
Ответить
Сообщение
конечно я давал ответ предполагая, что и количество отображаемых столбцов и их размер предопределен


Спасибо!

Автор - urlchik
Дата добавления - 08.04.2019 в 10:47
  • Страница 1 из 1
  • 1
Поиск:

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