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

Вход

Регистрация

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

 

= Мир MS Excel/Как запретить сохранить определенный лист в книге? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как запретить сохранить определенный лист в книге? (Настройки Excel/Setup)
Как запретить сохранить определенный лист в книге?
Димарик Дата: Четверг, 17.06.2021, 16:47 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Здравствуйте. Подскажите пожалуйста, как запретить сохранять изменения в определенном листе книги эксель. Например у нас есть файл в нем много листов, один из них бланк заказа, так вот юзер может дополнять строки в листе бланк заказа, удалять строки, но при сохранении всей книги, бланк не сохранялся, а если есть изменения на других листах то должно сохранится, потому что на других листах содержится номенклатура, а бланк мы проста с помощью выпадающих списков наполняем, как наполнили распечатали или сохранили как и все!
 
Ответить
СообщениеЗдравствуйте. Подскажите пожалуйста, как запретить сохранять изменения в определенном листе книги эксель. Например у нас есть файл в нем много листов, один из них бланк заказа, так вот юзер может дополнять строки в листе бланк заказа, удалять строки, но при сохранении всей книги, бланк не сохранялся, а если есть изменения на других листах то должно сохранится, потому что на других листах содержится номенклатура, а бланк мы проста с помощью выпадающих списков наполняем, как наполнили распечатали или сохранили как и все!

Автор - Димарик
Дата добавления - 17.06.2021 в 16:47
Serge_007 Дата: Четверг, 17.06.2021, 16:50 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
Здравствуйте

В Excel нет такой опции, как сохранение определенного листа внутри книги, сохраняется вся книга целиком
Для решения Вашей задачи могу предложить вариант, когда лист, который не должен сохранятся, будет вынесен в отдельную книгу, но связан с нужными листами исходной книги (той, которую сохранять необходимо)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте

В Excel нет такой опции, как сохранение определенного листа внутри книги, сохраняется вся книга целиком
Для решения Вашей задачи могу предложить вариант, когда лист, который не должен сохранятся, будет вынесен в отдельную книгу, но связан с нужными листами исходной книги (той, которую сохранять необходимо)

Автор - Serge_007
Дата добавления - 17.06.2021 в 16:50
Димарик Дата: Четверг, 17.06.2021, 17:04 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Serge_007, так, а как его связать, у меня куча макросов?
 
Ответить
СообщениеSerge_007, так, а как его связать, у меня куча макросов?

Автор - Димарик
Дата добавления - 17.06.2021 в 17:04
Serge_007 Дата: Четверг, 17.06.2021, 17:29 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
Димарик, что Вам ответить на этот вопрос, не видя файла?
Связями связать :)

[p.s.]Вопрос аналогичен вопросу пациента доктору по телефону: "Доктор как мне вылечиться?", на что доктор отвечает: "Приходите на прием, сначала надо узнать чем Вы болеете"


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеДимарик, что Вам ответить на этот вопрос, не видя файла?
Связями связать :)

[p.s.]Вопрос аналогичен вопросу пациента доктору по телефону: "Доктор как мне вылечиться?", на что доктор отвечает: "Приходите на прием, сначала надо узнать чем Вы болеете"

Автор - Serge_007
Дата добавления - 17.06.2021 в 17:29
Димарик Дата: Четверг, 17.06.2021, 18:08 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Serge_007, у меня есть многоуровневый выпадающий список, сейчас я сделал связь между бланком и основной книгой, первый уровень у меня получилось связать (я могу выбирать значение в выпадающем списке, вот код:
[vba]
Код

Private Sub UserForm_Initialize()
    Dim pointcoordinates As pointcoordinatestype, horizontaloffsetinpoints As Double, verticaloffsetinpoints As Double
    With Me
        horizontaloffsetinpoints = (.Width - .InsideWidth) / 2
        verticaloffsetinpoints = 1
        Call GetPointCoordinates(ActiveCell.Offset(0, 1), pointcoordinates)
        .StartUpPosition = 0
        .Top = pointcoordinates.Top - verticaloffsetinpoints
        .Left = pointcoordinates.Left - horizontaloffsetinpoints
    End With
    Dim ws          As Worksheet

'    Set wbCurrent = ActiveWorkbook("Бланк заказа") это как было в одной книге, а ниже я пытаюсь обратиться к той книге
    Set wbCurrent = Workbooks("Прайс Общий с макросами и многовыпадающитм списком")
   
    For Each ws In wbCurrent.Worksheets
        If InStr(1, ws.Name, ".", vbTextCompare) > 0 Then
            n = n + 1
            Level1.ListBox1.AddItem (ws.Name)
            If Len(ws.Name) > lenT Then lenT = Len(ws.Name)
        End If
    Next

    Dim ihWnd, hStyle
    If Val(Application.Version) < 9 Then
        ihWnd = FindWindow("ThunderXFrame", Me.Caption)
    Else
        ihWnd = FindWindow("ThunderDFrame", Me.Caption)
    End If
    hStyle = GetWindowLong(ihWnd, GWL_STYLE)
    hStyle = hStyle And Not WS_CAPTION And Not WS_BORDER
    SetWindowLong ihWnd, GWL_STYLE, hStyle
    SetWindowLong ihWnd, GWL_EXSTYLE, 0
    DrawMenuBar ihWnd
    Level1.Height = n * 20
    Level1.Height = Level1.Height + GWL_EXSTYLE
    Level1.Width = lenT * 2
    Level1.ListBox1.Height = Level1.Height
    Level1.ListBox1.Width = Level1.Width

End Sub
[/vba]
Но теперь при переходе на другой уровень выпадающего списка, видимо тоже нужно указать ссылку на другую книгу, а как не знаю: вот код второго уровня:
[vba]
Код

Private Sub UserForm_Initialize()
    lr = Sheets(wsLevel).Cells(Sheets(wsLevel).Rows.Count, 1).End(xlUp).Row
    For i = 2 To lr
        prise = Sheets(wsLevel).Cells(i, 2).Value
        'prise = Sheets("3Контрагент").Cells(i, 2).Value
        n = n + 1
        Level2.ListBox1.AddItem (prise)
        If Len(prise) > lenT Then lenT = Len(prise)
    Next
    Dim ihWnd, hStyle
    If Val(Application.Version) < 9 Then
        ihWnd = FindWindow("ThunderXFrame", Me.Caption)
    Else
        ihWnd = FindWindow("ThunderDFrame", Me.Caption)
    End If
    hStyle = GetWindowLong(ihWnd, GWL_STYLE)
    hStyle = hStyle And Not WS_CAPTION And Not WS_BORDER
    SetWindowLong ihWnd, GWL_STYLE, hStyle
    SetWindowLong ihWnd, GWL_EXSTYLE, 0
    DrawMenuBar ihWnd

    Level2.Height = n * 2
'    Level2.Height = Level2.Height + GWL_EXSTYLE

    Level2.Width = lenT * 2
    Level2.ListBox1.Height = Level2.Height
    Level2.ListBox1.Width = Level2.Width
    Level2.Left = Level1.Left + Level1.Width
    Level2.Top = Level1.Top + Level1.Height

End Sub
[/vba]
Есть еще 3 уровень, но ядумаю там будет аналогично


Сообщение отредактировал Димарик - Четверг, 17.06.2021, 18:09
 
Ответить
СообщениеSerge_007, у меня есть многоуровневый выпадающий список, сейчас я сделал связь между бланком и основной книгой, первый уровень у меня получилось связать (я могу выбирать значение в выпадающем списке, вот код:
[vba]
Код

Private Sub UserForm_Initialize()
    Dim pointcoordinates As pointcoordinatestype, horizontaloffsetinpoints As Double, verticaloffsetinpoints As Double
    With Me
        horizontaloffsetinpoints = (.Width - .InsideWidth) / 2
        verticaloffsetinpoints = 1
        Call GetPointCoordinates(ActiveCell.Offset(0, 1), pointcoordinates)
        .StartUpPosition = 0
        .Top = pointcoordinates.Top - verticaloffsetinpoints
        .Left = pointcoordinates.Left - horizontaloffsetinpoints
    End With
    Dim ws          As Worksheet

'    Set wbCurrent = ActiveWorkbook("Бланк заказа") это как было в одной книге, а ниже я пытаюсь обратиться к той книге
    Set wbCurrent = Workbooks("Прайс Общий с макросами и многовыпадающитм списком")
   
    For Each ws In wbCurrent.Worksheets
        If InStr(1, ws.Name, ".", vbTextCompare) > 0 Then
            n = n + 1
            Level1.ListBox1.AddItem (ws.Name)
            If Len(ws.Name) > lenT Then lenT = Len(ws.Name)
        End If
    Next

    Dim ihWnd, hStyle
    If Val(Application.Version) < 9 Then
        ihWnd = FindWindow("ThunderXFrame", Me.Caption)
    Else
        ihWnd = FindWindow("ThunderDFrame", Me.Caption)
    End If
    hStyle = GetWindowLong(ihWnd, GWL_STYLE)
    hStyle = hStyle And Not WS_CAPTION And Not WS_BORDER
    SetWindowLong ihWnd, GWL_STYLE, hStyle
    SetWindowLong ihWnd, GWL_EXSTYLE, 0
    DrawMenuBar ihWnd
    Level1.Height = n * 20
    Level1.Height = Level1.Height + GWL_EXSTYLE
    Level1.Width = lenT * 2
    Level1.ListBox1.Height = Level1.Height
    Level1.ListBox1.Width = Level1.Width

End Sub
[/vba]
Но теперь при переходе на другой уровень выпадающего списка, видимо тоже нужно указать ссылку на другую книгу, а как не знаю: вот код второго уровня:
[vba]
Код

Private Sub UserForm_Initialize()
    lr = Sheets(wsLevel).Cells(Sheets(wsLevel).Rows.Count, 1).End(xlUp).Row
    For i = 2 To lr
        prise = Sheets(wsLevel).Cells(i, 2).Value
        'prise = Sheets("3Контрагент").Cells(i, 2).Value
        n = n + 1
        Level2.ListBox1.AddItem (prise)
        If Len(prise) > lenT Then lenT = Len(prise)
    Next
    Dim ihWnd, hStyle
    If Val(Application.Version) < 9 Then
        ihWnd = FindWindow("ThunderXFrame", Me.Caption)
    Else
        ihWnd = FindWindow("ThunderDFrame", Me.Caption)
    End If
    hStyle = GetWindowLong(ihWnd, GWL_STYLE)
    hStyle = hStyle And Not WS_CAPTION And Not WS_BORDER
    SetWindowLong ihWnd, GWL_STYLE, hStyle
    SetWindowLong ihWnd, GWL_EXSTYLE, 0
    DrawMenuBar ihWnd

    Level2.Height = n * 2
'    Level2.Height = Level2.Height + GWL_EXSTYLE

    Level2.Width = lenT * 2
    Level2.ListBox1.Height = Level2.Height
    Level2.ListBox1.Width = Level2.Width
    Level2.Left = Level1.Left + Level1.Width
    Level2.Top = Level1.Top + Level1.Height

End Sub
[/vba]
Есть еще 3 уровень, но ядумаю там будет аналогично

Автор - Димарик
Дата добавления - 17.06.2021 в 18:08
Димарик Дата: Четверг, 17.06.2021, 18:31 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Все допетрил, спасибо.
 
Ответить
СообщениеВсе допетрил, спасибо.

Автор - Димарик
Дата добавления - 17.06.2021 в 18:31
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как запретить сохранить определенный лист в книге? (Настройки Excel/Setup)
  • Страница 1 из 1
  • 1
Поиск:

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