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

Вход

Регистрация

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

 

= Мир MS Excel/max ширина столбца не выходя за границу страницы (макросом) - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » max ширина столбца не выходя за границу страницы (макросом) (Макросы/Sub)
max ширина столбца не выходя за границу страницы (макросом)
grh1 Дата: Четверг, 01.09.2022, 19:15 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Доброго дня, уважаемые знатоки VBA!

Подскажите как прописать в макросе, чтобы в моей таблице МАКСИМАЛЬНО увеличить столбец «В», при этом чтобы таблица не вылезла за границу страницы справа.

Макрорекордером получается установить какую-то КОНКРЕТНУЮ ширину данного столбца, например такой код:

[vba]
Код
Columns("B:B").ColumnWidth = 48,89
[/vba]

А как сделать .AutoFit этому столбцу – не знаю.

Файл прикрепляю, в нем два листа:

1-й – как сейчас есть;
2-й – как должно стать.
К сообщению приложен файл: 06__.xlsm (27.2 Kb)


Vadym Gorokh
 
Ответить
СообщениеДоброго дня, уважаемые знатоки VBA!

Подскажите как прописать в макросе, чтобы в моей таблице МАКСИМАЛЬНО увеличить столбец «В», при этом чтобы таблица не вылезла за границу страницы справа.

Макрорекордером получается установить какую-то КОНКРЕТНУЮ ширину данного столбца, например такой код:

[vba]
Код
Columns("B:B").ColumnWidth = 48,89
[/vba]

А как сделать .AutoFit этому столбцу – не знаю.

Файл прикрепляю, в нем два листа:

1-й – как сейчас есть;
2-й – как должно стать.

Автор - grh1
Дата добавления - 01.09.2022 в 19:15
ZetMenChavo Дата: Четверг, 01.09.2022, 20:50 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, grh1. Я как то делал макрос по подгонке размера ячеек, чтобы диапазон было целиком видно в окне.
[vba]
Код
Private Sub №8_Подготовка_листа()
    Dim oX&, oY&, Visota&, Shirina As Long
    Dim Ap As Application, rn As Range
    '=========================
    Set Ap = Application
    Visota = Ap.InputBox(prompt:="Высота диапазона")
    Shirina = Ap.InputBox(prompt:="Ширина диапазона")
    '--------------------
    Set rn = Cells(1, 1).Resize(Visota, Shirina)
    Cells(1).Select
    Cells.ColumnWidth = 3
    Cells.RowHeight = 15
    '=========================
    oX = 1
    Do
        If oX < 13 _
        Then Cells.ColumnWidth = oX / 12
        If oX > 12 _
        Then Cells.ColumnWidth = (oX - 12) / 7 + 1
        If ActiveWindow.VisibleRange.Address <> _
           Union(Cells(3, 3), ActiveWindow.VisibleRange).Address _
        Then Exit Do
        oX = oX + 1
        DoEvents
    Loop
    oX = (oX - 1) * 2
    Cells.ColumnWidth = 3
    '--------------------
    oY = 1
    Do
        Cells.RowHeight = oY * 0.75
        If ActiveWindow.VisibleRange.Address <> _
           Union(Cells(3, 3), ActiveWindow.VisibleRange).Address _
        Then Exit Do
        oY = oY + 1
        DoEvents
    Loop
    oY = (oY - 1) * 2
    '====================
    Cells.EntireRow.Hidden = True
    Cells.EntireColumn.Hidden = True
    oX = Ap.Floor(oX / Shirina, 1)
    oY = Ap.Floor(oY / Visota, 1)
    '--------------------
    If oX < 13 Then _
    rn.ColumnWidth = oX / 12
    If oX > 12 Then _
    rn.ColumnWidth = (oX - 12) / 7 + 1
    rn.RowHeight = oY * 0.75
    Cells(1).Select
    '=========================
End Sub
[/vba]

Думаю именно это вам и нужно, так что попробую переделать код под вашу задачу.
 
Ответить
СообщениеЗдравствуйте, grh1. Я как то делал макрос по подгонке размера ячеек, чтобы диапазон было целиком видно в окне.
[vba]
Код
Private Sub №8_Подготовка_листа()
    Dim oX&, oY&, Visota&, Shirina As Long
    Dim Ap As Application, rn As Range
    '=========================
    Set Ap = Application
    Visota = Ap.InputBox(prompt:="Высота диапазона")
    Shirina = Ap.InputBox(prompt:="Ширина диапазона")
    '--------------------
    Set rn = Cells(1, 1).Resize(Visota, Shirina)
    Cells(1).Select
    Cells.ColumnWidth = 3
    Cells.RowHeight = 15
    '=========================
    oX = 1
    Do
        If oX < 13 _
        Then Cells.ColumnWidth = oX / 12
        If oX > 12 _
        Then Cells.ColumnWidth = (oX - 12) / 7 + 1
        If ActiveWindow.VisibleRange.Address <> _
           Union(Cells(3, 3), ActiveWindow.VisibleRange).Address _
        Then Exit Do
        oX = oX + 1
        DoEvents
    Loop
    oX = (oX - 1) * 2
    Cells.ColumnWidth = 3
    '--------------------
    oY = 1
    Do
        Cells.RowHeight = oY * 0.75
        If ActiveWindow.VisibleRange.Address <> _
           Union(Cells(3, 3), ActiveWindow.VisibleRange).Address _
        Then Exit Do
        oY = oY + 1
        DoEvents
    Loop
    oY = (oY - 1) * 2
    '====================
    Cells.EntireRow.Hidden = True
    Cells.EntireColumn.Hidden = True
    oX = Ap.Floor(oX / Shirina, 1)
    oY = Ap.Floor(oY / Visota, 1)
    '--------------------
    If oX < 13 Then _
    rn.ColumnWidth = oX / 12
    If oX > 12 Then _
    rn.ColumnWidth = (oX - 12) / 7 + 1
    rn.RowHeight = oY * 0.75
    Cells(1).Select
    '=========================
End Sub
[/vba]

Думаю именно это вам и нужно, так что попробую переделать код под вашу задачу.

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 20:50
ZetMenChavo Дата: Четверг, 01.09.2022, 21:05 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
grh1, попробуте это
[vba]
Код
Private Sub №8_Подготовка_листа()
    Dim oX As Long
    Dim Ap As Application
    Dim СтолбБ As Range
    Dim КрайТабы As Range 'Ячейка справа снизу от нижнего правого угла табы _
                           Ячейка дожна быть видна на экране при запуске макроса
    '=========================
    Set Ap = Application
    Set СтолбБ = Cells(1, "B")
    Set КрайТабы = Cells(104, "G")
    '--------------------
    Cells(1).Select
    СтолбБ.ColumnWidth = 3
    '=========================
    oX = 1
    Do
        If oX < 13 _
        Then СтолбБ.ColumnWidth = oX / 12
        If oX > 12 _
        Then СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
        '----------
        If ActiveWindow.VisibleRange.Address <> _
           Union(КрайТабы, ActiveWindow.VisibleRange).Address _
        Then Exit Do
        oX = oX + 1
        DoEvents
    Loop
    oX = oX - 1
    '====================
    If oX < 13 Then _
    СтолбБ.ColumnWidth = oX / 12
    If oX > 12 Then _
    СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
    Cells(1).Select
    '=========================
End Sub
[/vba]


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 21:06
 
Ответить
Сообщениеgrh1, попробуте это
[vba]
Код
Private Sub №8_Подготовка_листа()
    Dim oX As Long
    Dim Ap As Application
    Dim СтолбБ As Range
    Dim КрайТабы As Range 'Ячейка справа снизу от нижнего правого угла табы _
                           Ячейка дожна быть видна на экране при запуске макроса
    '=========================
    Set Ap = Application
    Set СтолбБ = Cells(1, "B")
    Set КрайТабы = Cells(104, "G")
    '--------------------
    Cells(1).Select
    СтолбБ.ColumnWidth = 3
    '=========================
    oX = 1
    Do
        If oX < 13 _
        Then СтолбБ.ColumnWidth = oX / 12
        If oX > 12 _
        Then СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
        '----------
        If ActiveWindow.VisibleRange.Address <> _
           Union(КрайТабы, ActiveWindow.VisibleRange).Address _
        Then Exit Do
        oX = oX + 1
        DoEvents
    Loop
    oX = oX - 1
    '====================
    If oX < 13 Then _
    СтолбБ.ColumnWidth = oX / 12
    If oX > 12 Then _
    СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
    Cells(1).Select
    '=========================
End Sub
[/vba]

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:05
grh1 Дата: Четверг, 01.09.2022, 21:05 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
ZetMenChavo, спасибо, но применить к своему примеру не получается.
Если код такой длинный, легче выставить какие-либо заданные ширины изначально и не париться.
Мне просто нужно понять, как столбец "В" (2) сделать максимальным а остальные столбцы не трогать.


Vadym Gorokh
 
Ответить
СообщениеZetMenChavo, спасибо, но применить к своему примеру не получается.
Если код такой длинный, легче выставить какие-либо заданные ширины изначально и не париться.
Мне просто нужно понять, как столбец "В" (2) сделать максимальным а остальные столбцы не трогать.

Автор - grh1
Дата добавления - 01.09.2022 в 21:05
ZetMenChavo Дата: Четверг, 01.09.2022, 21:09 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
grh1, нижний правый угол вашей таблицы был виден когда запускали макрос? Без этого не сработает.
Сделайте что бы ячейка G104 была видна в окне и попробуте снова включить макрос


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 21:10
 
Ответить
Сообщениеgrh1, нижний правый угол вашей таблицы был виден когда запускали макрос? Без этого не сработает.
Сделайте что бы ячейка G104 была видна в окне и попробуте снова включить макрос

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:09
grh1 Дата: Четверг, 01.09.2022, 21:13 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
grh1, попробуте это


Не работает


Vadym Gorokh
 
Ответить
Сообщение
grh1, попробуте это


Не работает

Автор - grh1
Дата добавления - 01.09.2022 в 21:13
grh1 Дата: Четверг, 01.09.2022, 21:19 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
grh1, нижний правый угол вашей таблицы был виден

Мне это не подходит, т.к. таблицы бывают и по 1500 и 2000 строк.
Это мне нужно постоянно производить танцы с бубном.
Тем более, что макрос по форматированию столбца должен работать в связке с основным макросом.


Vadym Gorokh

Сообщение отредактировал grh1 - Четверг, 01.09.2022, 21:20
 
Ответить
Сообщение
grh1, нижний правый угол вашей таблицы был виден

Мне это не подходит, т.к. таблицы бывают и по 1500 и 2000 строк.
Это мне нужно постоянно производить танцы с бубном.
Тем более, что макрос по форматированию столбца должен работать в связке с основным макросом.

Автор - grh1
Дата добавления - 01.09.2022 в 21:19
ZetMenChavo Дата: Четверг, 01.09.2022, 21:20 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
grh1, а так? Подправил код что бы вычисления не зивисили от того какие строки видны
[vba]
Код
Private Sub №8_Подготовка_листа()
    Dim oX As Long
    Dim Ap As Application
    Dim СтолбБ As Range
    Dim КрайТабы As Range 'Ячейка справа снизу от нижнего правого угла табы
    '=========================
    Set Ap = Application
    Set СтолбБ = Cells(1, "B")
    Set КрайТабы = Cells(1, "G").EntireColumn
    '--------------------
    Cells(1).Select
    СтолбБ.ColumnWidth = 3
    '=========================
    oX = 1
    Do
        If oX < 13 _
        Then СтолбБ.ColumnWidth = oX / 12
        If oX > 12 _
        Then СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
        '----------
        If ActiveWindow.VisibleRange.EntireColumn.Address <> _
           Union(КрайТабы, ActiveWindow.VisibleRange.EntireColumn).Address _
        Then Exit Do
        oX = oX + 1
        DoEvents
    Loop
    oX = oX - 1
    '====================
    If oX < 13 Then _
    СтолбБ.ColumnWidth = oX / 12
    If oX > 12 Then _
    СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
    Cells(1).Select
    '=========================
End Sub
[/vba]

Если и это не сработает, то я даже не знаю что у вас там с vba. У меня столбец Б в вашей табе подгоняется как надо под размер окна.
К сообщению приложен файл: 2222.xlsm (27.6 Kb)


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 21:29
 
Ответить
Сообщениеgrh1, а так? Подправил код что бы вычисления не зивисили от того какие строки видны
[vba]
Код
Private Sub №8_Подготовка_листа()
    Dim oX As Long
    Dim Ap As Application
    Dim СтолбБ As Range
    Dim КрайТабы As Range 'Ячейка справа снизу от нижнего правого угла табы
    '=========================
    Set Ap = Application
    Set СтолбБ = Cells(1, "B")
    Set КрайТабы = Cells(1, "G").EntireColumn
    '--------------------
    Cells(1).Select
    СтолбБ.ColumnWidth = 3
    '=========================
    oX = 1
    Do
        If oX < 13 _
        Then СтолбБ.ColumnWidth = oX / 12
        If oX > 12 _
        Then СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
        '----------
        If ActiveWindow.VisibleRange.EntireColumn.Address <> _
           Union(КрайТабы, ActiveWindow.VisibleRange.EntireColumn).Address _
        Then Exit Do
        oX = oX + 1
        DoEvents
    Loop
    oX = oX - 1
    '====================
    If oX < 13 Then _
    СтолбБ.ColumnWidth = oX / 12
    If oX > 12 Then _
    СтолбБ.ColumnWidth = (oX - 12) / 7 + 1
    Cells(1).Select
    '=========================
End Sub
[/vba]

Если и это не сработает, то я даже не знаю что у вас там с vba. У меня столбец Б в вашей табе подгоняется как надо под размер окна.

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:20
grh1 Дата: Четверг, 01.09.2022, 21:33 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
ZetMenChavo, запускаю макрос и ширина столбца начинает медленно расширяться до бесконечности, пока насильно не остановлю.
К сообщению приложен файл: 2223.xlsm (26.6 Kb)


Vadym Gorokh
 
Ответить
СообщениеZetMenChavo, запускаю макрос и ширина столбца начинает медленно расширяться до бесконечности, пока насильно не остановлю.

Автор - grh1
Дата добавления - 01.09.2022 в 21:33
ZetMenChavo Дата: Четверг, 01.09.2022, 21:34 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Можно ещё скорость подгона ускорить заменив единицу в уравнениях oX = oX + 1 и oX = oX - 1 на более высоке число, но в коде выше это, с возростанием числа, будет сказываться на точность подгона.
 
Ответить
СообщениеМожно ещё скорость подгона ускорить заменив единицу в уравнениях oX = oX + 1 и oX = oX - 1 на более высоке число, но в коде выше это, с возростанием числа, будет сказываться на точность подгона.

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:34
ZetMenChavo Дата: Четверг, 01.09.2022, 21:36 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Цитата
начинает медленно расширяться

Так и должно быть. Столбец B будет расширять пока столбец G не скроется из видимой части окна. Уменьшите ширину окна и вы быстро увидите как это работает.

А ещё можно поменять oX = oX + 1 и oX = oX - 1
на oX = oX + 5 и oX = oX - 5. Так увеличиться скорость подгонки.


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 21:40
 
Ответить
Сообщение
Цитата
начинает медленно расширяться

Так и должно быть. Столбец B будет расширять пока столбец G не скроется из видимой части окна. Уменьшите ширину окна и вы быстро увидите как это работает.

А ещё можно поменять oX = oX + 1 и oX = oX - 1
на oX = oX + 5 и oX = oX - 5. Так увеличиться скорость подгонки.

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:36
grh1 Дата: Четверг, 01.09.2022, 21:41 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
ZetMenChavo, макрос не подгоняет по ГРАНИЦЕ страницы.
У меня столбец Б в вашей табе подгоняется как надо под размер окна.

Мне не надо подгонять под РАЗМЕР ОКНА, а мне нужно как на листе "как должно быть", т.е. чтобы моя таблица не вылезла ЗА ГРАНИЦЫ СТРАНИЦЫ, при этом столбец "В" растянуть по максимуму.
Вы просто неправильно поняли меня.


Vadym Gorokh

Сообщение отредактировал grh1 - Четверг, 01.09.2022, 21:43
 
Ответить
СообщениеZetMenChavo, макрос не подгоняет по ГРАНИЦЕ страницы.
У меня столбец Б в вашей табе подгоняется как надо под размер окна.

Мне не надо подгонять под РАЗМЕР ОКНА, а мне нужно как на листе "как должно быть", т.е. чтобы моя таблица не вылезла ЗА ГРАНИЦЫ СТРАНИЦЫ, при этом столбец "В" растянуть по максимуму.
Вы просто неправильно поняли меня.

Автор - grh1
Дата добавления - 01.09.2022 в 21:41
ZetMenChavo Дата: Четверг, 01.09.2022, 21:44 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
grh1, А! Сорри, до конца не понял) Сейчас подправля чтоб только до синей было)
 
Ответить
Сообщениеgrh1, А! Сорри, до конца не понял) Сейчас подправля чтоб только до синей было)

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:44
ZetMenChavo Дата: Четверг, 01.09.2022, 21:47 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
grh1, Один вопрос, на листе две синие линии, левая пунктирная. Вам нажно чтобы пунктирная совпала со сплошной справа?


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 21:50
 
Ответить
Сообщениеgrh1, Один вопрос, на листе две синие линии, левая пунктирная. Вам нажно чтобы пунктирная совпала со сплошной справа?

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 21:47
grh1 Дата: Четверг, 01.09.2022, 21:49 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
ZetMenChavo, граница страницы - это пунктирная линия


Vadym Gorokh
 
Ответить
СообщениеZetMenChavo, граница страницы - это пунктирная линия

Автор - grh1
Дата добавления - 01.09.2022 в 21:49
ZetMenChavo Дата: Четверг, 01.09.2022, 22:06 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
grh1, Вроде теперь то. Столбец Б будет расширяться до тез пор, пока пунктирная синяя не залезет между столбцами таблицы E и F, после чего сделает шаг назад, и вся таба будет ровно до пунктирной синий.

Надеюсь теперь то, а то неловко вышло по началу: вы хотели одно, а я думал о другом, сонный совсем :D

Но если всёж до сплошной, 5 мин и будет вариант для сплошной)
К сообщению приложен файл: 33333.xlsm (31.3 Kb)


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 22:10
 
Ответить
Сообщениеgrh1, Вроде теперь то. Столбец Б будет расширяться до тез пор, пока пунктирная синяя не залезет между столбцами таблицы E и F, после чего сделает шаг назад, и вся таба будет ровно до пунктирной синий.

Надеюсь теперь то, а то неловко вышло по началу: вы хотели одно, а я думал о другом, сонный совсем :D

Но если всёж до сплошной, 5 мин и будет вариант для сплошной)

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 22:06
ZetMenChavo Дата: Четверг, 01.09.2022, 22:19 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Вариант где ширина таблицы вписывается до синий сплошной. Вдруг тоже пригодится
К сообщению приложен файл: 44444.xlsm (31.0 Kb)


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 22:26
 
Ответить
СообщениеВариант где ширина таблицы вписывается до синий сплошной. Вдруг тоже пригодится

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 22:19
grh1 Дата: Четверг, 01.09.2022, 22:32 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
ZetMenChavo, к сожалению Ваш макрос подтягивает ГРАНИЦУ, а мне нужно наоборот - расширить столбец ДО границы.
Я не знаю что вот это такое
[vba]
Код
VPageBreaks(1)
[/vba]
могу только догадываться, чтобы макрос сработал, границы страницы и ЛИСТА должные стоять в определенном порядке, и если этот порядок будет нарушен, то макрос не сработает.
Попробуйте сами передвинуть СПЛОШНУЮ линию (это граница листа) на один столбец вправо или влево и запустите макрос - он выдаст ошибку.
А как воздействовать на эту VPageBreaks(1) - я не знаю.


Vadym Gorokh

Сообщение отредактировал grh1 - Четверг, 01.09.2022, 22:33
 
Ответить
СообщениеZetMenChavo, к сожалению Ваш макрос подтягивает ГРАНИЦУ, а мне нужно наоборот - расширить столбец ДО границы.
Я не знаю что вот это такое
[vba]
Код
VPageBreaks(1)
[/vba]
могу только догадываться, чтобы макрос сработал, границы страницы и ЛИСТА должные стоять в определенном порядке, и если этот порядок будет нарушен, то макрос не сработает.
Попробуйте сами передвинуть СПЛОШНУЮ линию (это граница листа) на один столбец вправо или влево и запустите макрос - он выдаст ошибку.
А как воздействовать на эту VPageBreaks(1) - я не знаю.

Автор - grh1
Дата добавления - 01.09.2022 в 22:32
grh1 Дата: Четверг, 01.09.2022, 22:37 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
и этот порядок всегда у меня разный... значит мне его нужно или устанавливать вручную, что совершенно не приемлемо или прописать дополнительным кодом перед Вашим кодом.


Vadym Gorokh
 
Ответить
Сообщениеи этот порядок всегда у меня разный... значит мне его нужно или устанавливать вручную, что совершенно не приемлемо или прописать дополнительным кодом перед Вашим кодом.

Автор - grh1
Дата добавления - 01.09.2022 в 22:37
ZetMenChavo Дата: Четверг, 01.09.2022, 22:38 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 159
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Цитата
мне нужно наоборот - расширить столбец ДО границы.

Т.е вам нужно чтобы пунктир был сразу после столбца B?
Цитата
этот столбец растянуть МАКСИМАЛЬНО, но чтобы таблица не вылезла за синюю границу страницы справа

Просто из этого текста я думал вам нужно что бы всё до стб F было перед пунктиром, но если нужно только Б, то подкоректировать лекго.

В строке "Set КрайТабы = Cells(1, "F").EntireColumn" укажите нужный столбец котроый должен вписываться в рамки.
И начальный oX = 500.


Сообщение отредактировал ZetMenChavo - Четверг, 01.09.2022, 22:40
 
Ответить
Сообщение
Цитата
мне нужно наоборот - расширить столбец ДО границы.

Т.е вам нужно чтобы пунктир был сразу после столбца B?
Цитата
этот столбец растянуть МАКСИМАЛЬНО, но чтобы таблица не вылезла за синюю границу страницы справа

Просто из этого текста я думал вам нужно что бы всё до стб F было перед пунктиром, но если нужно только Б, то подкоректировать лекго.

В строке "Set КрайТабы = Cells(1, "F").EntireColumn" укажите нужный столбец котроый должен вписываться в рамки.
И начальный oX = 500.

Автор - ZetMenChavo
Дата добавления - 01.09.2022 в 22:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » max ширина столбца не выходя за границу страницы (макросом) (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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