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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
удаление строки и вставка столбца копированием через макрос
карандаш Дата: Понедельник, 18.02.2013, 20:19 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
есть лист, на котором список фамилий и фирм

на листе применено УФ

при использовании стандартных средств эксела удаление строки приводит к "сбитию настроек"
а именно
- последовательная нумерация в стролбце Е нарушается (это я победил более сложной чем А2=А1+1 формулой инкремента индекса)
- нарушается УФ
- для восстановления структуры строки (в ячейках есть ссылка на список) на новую строку нужно натягивать имеющуюся

поэтому попробовал решить проблему вставки и удаления строк макросом
т.к. имею только 2010 (и не имею опыта внедрения кнопок АктивХ, которые бы перемещались по листу) , то в качестве кнопки добавления и удаления воспользовался УФ

вот макрос (недоделанный)
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       ' проверяем, что в фокусе одна ячейка, а не диапазон
           If Target.Cells.Count > 1 Then Exit Sub
       ' проверка нахождения фокуса в целевом диапазоне
           If Not Intersect(Target, Range("f3:j64")) Is Nothing Then
               Range("A3:A64").ClearContents
               Cells(Target.Row, 1) = " " ' помечаем строку для УФ
               Exit Sub
           End If
       ' проверяем попадание на столбец удаления
           If Not Intersect(Target, Range("d3:d64")) Is Nothing Then
               If Cells(Target.Row, 1) = " " Then  ' проверяем, виден ли КРЕСТ УДАЛЕНИЯ
               'Target.Row.Select
               'Selection.Delete Shift:=xlUp
               End If
           End If
       ' проверяем попадание на столбец вставки
           If Not Intersect(Target, Range("c3:c64")) Is Nothing Then
               If Cells(Target.Row, 3) = 1 Then  ' проверяем есть ли ПЛЮС ВСТАВКИ
               'Target.Row.Insert
               End If
           End If
End Sub
[/vba]

*** крестов удаления столько же, сколько строк. Плюсов вставки - по одному на фамилию. Может хватит и просто одной кнопки на всех?

*** т.к. доступ к книге расшарен, то хотелось бы после каждой правки задействовать команду сохранения.
подскажите, как сохранить файл командой из макроса.

помогите, пожалуйста, с командой вставки строки и удалением
мои жалки потуги ни к чему не привели, хелп тоже не помог

может есть более простой способ?
правильно ли будет удалять сроку, а не сдвигать диапазон, не затрагивая нецелевые столбцы?

*** прим. Как сделать так, чтобы при копировании кода из VBA кириллица не превращалась в абракадабру?

файл сделан в 2010. Если конвертации что-то не будет работать, могу выслать в 2010. Скажите куда

*** промахнулся в названии - столбец ни при чем, речь исключительно о строках
К сообщению приложен файл: go-02.xls (73.5 Kb)


Сообщение отредактировал карандаш - Понедельник, 18.02.2013, 20:27
 
Ответить
Сообщениеесть лист, на котором список фамилий и фирм

на листе применено УФ

при использовании стандартных средств эксела удаление строки приводит к "сбитию настроек"
а именно
- последовательная нумерация в стролбце Е нарушается (это я победил более сложной чем А2=А1+1 формулой инкремента индекса)
- нарушается УФ
- для восстановления структуры строки (в ячейках есть ссылка на список) на новую строку нужно натягивать имеющуюся

поэтому попробовал решить проблему вставки и удаления строк макросом
т.к. имею только 2010 (и не имею опыта внедрения кнопок АктивХ, которые бы перемещались по листу) , то в качестве кнопки добавления и удаления воспользовался УФ

вот макрос (недоделанный)
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       ' проверяем, что в фокусе одна ячейка, а не диапазон
           If Target.Cells.Count > 1 Then Exit Sub
       ' проверка нахождения фокуса в целевом диапазоне
           If Not Intersect(Target, Range("f3:j64")) Is Nothing Then
               Range("A3:A64").ClearContents
               Cells(Target.Row, 1) = " " ' помечаем строку для УФ
               Exit Sub
           End If
       ' проверяем попадание на столбец удаления
           If Not Intersect(Target, Range("d3:d64")) Is Nothing Then
               If Cells(Target.Row, 1) = " " Then  ' проверяем, виден ли КРЕСТ УДАЛЕНИЯ
               'Target.Row.Select
               'Selection.Delete Shift:=xlUp
               End If
           End If
       ' проверяем попадание на столбец вставки
           If Not Intersect(Target, Range("c3:c64")) Is Nothing Then
               If Cells(Target.Row, 3) = 1 Then  ' проверяем есть ли ПЛЮС ВСТАВКИ
               'Target.Row.Insert
               End If
           End If
End Sub
[/vba]

*** крестов удаления столько же, сколько строк. Плюсов вставки - по одному на фамилию. Может хватит и просто одной кнопки на всех?

*** т.к. доступ к книге расшарен, то хотелось бы после каждой правки задействовать команду сохранения.
подскажите, как сохранить файл командой из макроса.

помогите, пожалуйста, с командой вставки строки и удалением
мои жалки потуги ни к чему не привели, хелп тоже не помог

может есть более простой способ?
правильно ли будет удалять сроку, а не сдвигать диапазон, не затрагивая нецелевые столбцы?

*** прим. Как сделать так, чтобы при копировании кода из VBA кириллица не превращалась в абракадабру?

файл сделан в 2010. Если конвертации что-то не будет работать, могу выслать в 2010. Скажите куда

*** промахнулся в названии - столбец ни при чем, речь исключительно о строках

Автор - карандаш
Дата добавления - 18.02.2013 в 20:19
Pelena Дата: Понедельник, 18.02.2013, 20:42 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата (карандаш)
Как сделать так, чтобы при копировании кода из VBA кириллица не превращалась в абракадабру?

Поиск по слову "кракозябры"
http://www.excelworld.ru/forum/3-511-5928-16-1307346897


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата (карандаш)
Как сделать так, чтобы при копировании кода из VBA кириллица не превращалась в абракадабру?

Поиск по слову "кракозябры"
http://www.excelworld.ru/forum/3-511-5928-16-1307346897

Автор - Pelena
Дата добавления - 18.02.2013 в 20:42
карандаш Дата: Пятница, 22.02.2013, 14:48 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Pelena,
спасибо
но не получилось убить (или переименовать) 1252
винда упорно сопротивляется, даже статус админа не возымел успеха sad
 
Ответить
СообщениеPelena,
спасибо
но не получилось убить (или переименовать) 1252
винда упорно сопротивляется, даже статус админа не возымел успеха sad

Автор - карандаш
Дата добавления - 22.02.2013 в 14:48
карандаш Дата: Пятница, 22.02.2013, 14:51 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
выход из положения - наделать побольше "запасных" (пустых) строк и защитить лист
тогда удаление и вставка строк невозможны
остается ручками время от времени добавлять строки и расширять диапазон для редактирования и обработки макросом

 
Ответить
Сообщениевыход из положения - наделать побольше "запасных" (пустых) строк и защитить лист
тогда удаление и вставка строк невозможны
остается ручками время от времени добавлять строки и расширять диапазон для редактирования и обработки макросом


Автор - карандаш
Дата добавления - 22.02.2013 в 14:51
RAN Дата: Пятница, 22.02.2013, 15:20 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Читать внимательнее надо. Особенно выделенное красным.
Цитата (Alex_ST)
Зато по совету того же KukLP я попробовал удалить файл с помощью программы Unlocker - получилось!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЧитать внимательнее надо. Особенно выделенное красным.
Цитата (Alex_ST)
Зато по совету того же KukLP я попробовал удалить файл с помощью программы Unlocker - получилось!

Автор - RAN
Дата добавления - 22.02.2013 в 15:20
карандаш Дата: Суббота, 23.02.2013, 11:54 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
da, с вниманием проблемы...
спасибо
unlocker помог )))
 
Ответить
Сообщениеda, с вниманием проблемы...
спасибо
unlocker помог )))

Автор - карандаш
Дата добавления - 23.02.2013 в 11:54
  • Страница 1 из 1
  • 1
Поиск:

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