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

Вход

Регистрация

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

 

= Мир MS Excel/проверка имен листов и создание нового - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » проверка имен листов и создание нового (Макросы/Sub)
проверка имен листов и создание нового
DreOne Дата: Четверг, 14.01.2016, 20:11 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
В ячейке ввожу символы, нажимаю на кнопку - создается лист с таким именем.
возможно ли запустить проверку в книге по названию листов?
Задача:
если лист с названием таким, как значение в ячейке есть, то открывается тот лист, если нет, то создается новый.
Заранее спасибо!
К сообщению приложен файл: -v2.2-.xlsm(76Kb)


Саморазвитие - это всё...
 
Ответить
СообщениеЗдравствуйте!
В ячейке ввожу символы, нажимаю на кнопку - создается лист с таким именем.
возможно ли запустить проверку в книге по названию листов?
Задача:
если лист с названием таким, как значение в ячейке есть, то открывается тот лист, если нет, то создается новый.
Заранее спасибо!

Автор - DreOne
Дата добавления - 14.01.2016 в 20:11
Pelena Дата: Четверг, 14.01.2016, 20:16 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11028
Репутация: 2462 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
Здраствуйте.
Здесь хорошо написано
http://www.excel-vba.ru/chto-um....v-knige


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЗдраствуйте.
Здесь хорошо написано
http://www.excel-vba.ru/chto-um....v-knige

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

Excel 2010
Здраствуйте.
Здесь хорошо написано
http://www.excel-vba.ru/chto-um....v-knige

Да, наткнулся на этот пост, просто не смог разобраться, к сожалению.
Всё равно спасибо


Саморазвитие - это всё...
 
Ответить
Сообщение
Здраствуйте.
Здесь хорошо написано
http://www.excel-vba.ru/chto-um....v-knige

Да, наткнулся на этот пост, просто не смог разобраться, к сожалению.
Всё равно спасибо

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

Excel 2010
Буду пробовать вникать или смотреть в других источниках.
там описывается функция, но до них я пока еще не дошел...(


Саморазвитие - это всё...
 
Ответить
СообщениеБуду пробовать вникать или смотреть в других источниках.
там описывается функция, но до них я пока еще не дошел...(

Автор - DreOne
Дата добавления - 14.01.2016 в 20:26
_Boroda_ Дата: Четверг, 14.01.2016, 21:13 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 10334
Репутация: 4357 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вот как-то так можно, например. В модуле листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub
    On Error Resume Next
    Sheets(Target.Value).Select
    If Err Then
        Application.ScreenUpdating = 0
        Sheets.Add.Name = Target
        Me.Select
    End If
End Sub
[/vba]
К сообщению приложен файл: 168764.xlsm(19Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВот как-то так можно, например. В модуле листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub
    On Error Resume Next
    Sheets(Target.Value).Select
    If Err Then
        Application.ScreenUpdating = 0
        Sheets.Add.Name = Target
        Me.Select
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 14.01.2016 в 21:13
DreOne Дата: Пятница, 15.01.2016, 12:04 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, буду пробовать добавить в свой код


Саморазвитие - это всё...
 
Ответить
СообщениеСпасибо, буду пробовать добавить в свой код

Автор - DreOne
Дата добавления - 15.01.2016 в 12:04
Wasilich Дата: Пятница, 15.01.2016, 12:06 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1195
Репутация: 316 ±
Замечаний: 0% ±

2003
А если так?
К сообщению приложен файл: DreOne.xls(28Kb)
 
Ответить
СообщениеА если так?

Автор - Wasilich
Дата добавления - 15.01.2016 в 12:06
DreOne Дата: Пятница, 15.01.2016, 17:43 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А если так?
К сообщению приложен файл: DreOne.xls(28Kb)

а как сделать, чтобы он не выдавал msg, а открывал лист, если есть такой?


Саморазвитие - это всё...
 
Ответить
Сообщение
А если так?
К сообщению приложен файл: DreOne.xls(28Kb)

а как сделать, чтобы он не выдавал msg, а открывал лист, если есть такой?

Автор - DreOne
Дата добавления - 15.01.2016 в 17:43
DreOne Дата: Пятница, 15.01.2016, 17:53 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот как-то так можно, например. В модуле листа

Получается, что он постоянно проверяет эту ячейку?
Если Вам не сложно, можно в кратце про строки?
[moder]Не нужно цитировать посты целиком - это нарушение Правил форума.
Удалила лишнее.[/moder]


Саморазвитие - это всё...

Сообщение отредактировал Manyasha - Пятница, 15.01.2016, 17:57
 
Ответить
Сообщение
Вот как-то так можно, например. В модуле листа

Получается, что он постоянно проверяет эту ячейку?
Если Вам не сложно, можно в кратце про строки?
[moder]Не нужно цитировать посты целиком - это нарушение Правил форума.
Удалила лишнее.[/moder]

Автор - DreOne
Дата добавления - 15.01.2016 в 17:53
Manyasha Дата: Пятница, 15.01.2016, 17:56 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 1832
Репутация: 766 ±
Замечаний: 0% ±

Excel 2007, 2010
не выдавал msg

вместо строчки
[vba]
Код
MsgBox "Лист " & im & " уже есть"
[/vba]
напишите [vba]
Код
Sh.Activate
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
не выдавал msg

вместо строчки
[vba]
Код
MsgBox "Лист " & im & " уже есть"
[/vba]
напишите [vba]
Код
Sh.Activate
[/vba]

Автор - Manyasha
Дата добавления - 15.01.2016 в 17:56
_Boroda_ Дата: Пятница, 15.01.2016, 18:37 | Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 10334
Репутация: 4357 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Получается, что он постоянно проверяет эту ячейку?

Ну, не постоянно, а
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)'при любом изменении на листе
If Target.Address(0, 0) <> "A1" Then Exit Sub'смотрит - если менялась ячейка А1 и только она одна, то идем дальше, иначе выход из макроса
    On Error Resume Next'если будет ошибка, то продолжаем работу макроса
    Sheets(Target.Value).Select'активировать лист с именем из ячейки А1, если такого листа нет, то будет ошибка
    If Err Then'условие если ошибка, то
        Application.ScreenUpdating = 0'отключаем обновление экрана
        Sheets.Add.Name = Target'вставляем новый лист и называем его по значению в А1
        Me.Select'снова активируем тот лист, в котором макрос и в котором мы до этого работали
    End If'окончание условия
End Sub'окончание макроса
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Получается, что он постоянно проверяет эту ячейку?

Ну, не постоянно, а
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)'при любом изменении на листе
If Target.Address(0, 0) <> "A1" Then Exit Sub'смотрит - если менялась ячейка А1 и только она одна, то идем дальше, иначе выход из макроса
    On Error Resume Next'если будет ошибка, то продолжаем работу макроса
    Sheets(Target.Value).Select'активировать лист с именем из ячейки А1, если такого листа нет, то будет ошибка
    If Err Then'условие если ошибка, то
        Application.ScreenUpdating = 0'отключаем обновление экрана
        Sheets.Add.Name = Target'вставляем новый лист и называем его по значению в А1
        Me.Select'снова активируем тот лист, в котором макрос и в котором мы до этого работали
    End If'окончание условия
End Sub'окончание макроса
[/vba]

Автор - _Boroda_
Дата добавления - 15.01.2016 в 18:37
Wasilich Дата: Пятница, 15.01.2016, 20:10 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1195
Репутация: 316 ±
Замечаний: 0% ±

2003
а как сделать, чтобы он не выдавал msg, а открывал лист, если есть такой?
Не, ну, я не думал, что это проблема, активировать лист который уже есть. Это был пример для размышления. Смотрите сообщение № 10 от Manyasha.


Сообщение отредактировал Wasilic - Пятница, 15.01.2016, 20:11
 
Ответить
Сообщение
а как сделать, чтобы он не выдавал msg, а открывал лист, если есть такой?
Не, ну, я не думал, что это проблема, активировать лист который уже есть. Это был пример для размышления. Смотрите сообщение № 10 от Manyasha.

Автор - Wasilich
Дата добавления - 15.01.2016 в 20:10
DreOne Дата: Понедельник, 18.01.2016, 13:31 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
спасибо всем огромное, буду дорабатывать файл.


Саморазвитие - это всё...
 
Ответить
Сообщениеспасибо всем огромное, буду дорабатывать файл.

Автор - DreOne
Дата добавления - 18.01.2016 в 13:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » проверка имен листов и создание нового (Макросы/Sub)
Страница 1 из 11
Поиск:

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