Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2013, 20:19   #1
w00t
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 29
Печаль Ввод значения в ячейку=новый лист (существующий макрос)

Помогите, пожалуйста.

Есть два макроса (переименовать лист по вводу в ячейку и обратное действие) - располагаются в исходном коде листа "Оглавление"

Код:
Private Sub Worksheet_Change(ByVal Target As Range) 
    If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub 
    Worksheets(Target.Row).Name = Target.Value 
    Hyperlinks.Add anchor:=Target, Address:="", _ 
    SubAddress:="'" & Target.Value & "'" & "!A1" 
    Range("A1:A100").Select 
    With Selection.Font 
        .Bold = True 
        .Name = "Verdana" 
        .Size = 10 
    End With 
    ActiveCell.Select 
End Sub 
 
Private Sub Worksheet_Activate() 
    Application.EnableEvents = False 
    Call SheetList 
    Application.EnableEvents = True 
End Sub
Есть макрос - который создает меню/оглавление - отдельный модуль

Код:
Sub SheetList() 
    Dim sheet As Worksheet 
    Dim cell As Range 
    With ActiveWorkbook 
        For Each sheet In ActiveWorkbook.Worksheets 
            Set cell = Worksheets(1).Cells(sheet.Index, 1) 
            .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", _ 
            SubAddress:="'" & sheet.Name & "'" & "!A1" 
            cell.Formula = sheet.Name 
        Next 
    End With 
    Range("A1:A100").Select 
    With Selection.Font 
        .Bold = True 
        .Name = "Verdana" ' указать шрифт
        .Size = 10 ' Размер шрифта
    End With 
    Range("A1:C1").Interior.Color = RGB(102, 102, 153) 
    Range("A1:C1").Font.Color = RGB(255, 255, 255) 
     'Range("A" & Range("A1").End(xlDown).Row + 1).Select
    ActiveCell.Select 
End Sub
Суть в том, что требуется одно действие... если создаю новую запись в ячейке пустой диапазона - создается новый лист с тем же именем... Я не понимаю, как это реализовать.
И при удалении данных ячейки макрос ругается.. (например - удаление листа - удаление левой записи в ячейке оглавления)

Есть у меня свои мысли по этому - последнее сообщение http://planetaexcel.ru/techniques/3/60/#741 Но я только изучаю vba, буду признателен кто подскажет что и как я делаю не так... Что нужно сделать... И как.

Последний раз редактировалось w00t; 06.02.2013 в 01:19.
w00t вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос формулы на новый лист gamer92 Помощь студентам 8 05.01.2013 22:06
Как в существующий макрос добавить еще одно условие выборки? ХочуЗнать Microsoft Office Excel 20 05.12.2012 16:01
Запись на новый лист jojorr Microsoft Office Excel 0 07.08.2011 20:04
Переход на новый лист в VBA Юнлинг Microsoft Office Excel 7 05.12.2008 10:02
Новый лист Berrimor Microsoft Office Excel 1 08.09.2008 10:37