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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2009, 15:31   #1
Riddick
Пользователь
 
Аватар для Riddick
 
Регистрация: 26.12.2007
Сообщений: 18
По умолчанию Перенос строк по двойному клику в Excel 2003

Здравствуйте уважаемые форумчане.

Как в Excel 2003 перенести строку с одного листа на другой по двойному клику левой кнопкой мыши?

ЗЫ Заранее благодарю.
Riddick вне форума Ответить с цитированием
Старый 15.12.2009, 15:45   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Какую строку переносить - понятно (ту, по которой выполнялся щелчок)

А вот в какое место на другом листе вставлять - непонятно.
Может, ниже последней заполненной строки?

Правой кнопкой на ярлычке листа - пункт Исходный текст - вставляем код:
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True ' отменяем редактирование ячейки по двойному щелчку
    Target.EntireRow.Copy Worksheets(2).Rows(10) ' копируем на место 10-й строки второго листа
End Sub
PS: Вообще, такие темы лучше создавать в разделе Microsoft Office Excel

Последний раз редактировалось EducatedFool; 15.12.2009 в 15:49.
EducatedFool вне форума Ответить с цитированием
Старый 15.12.2009, 15:47   #3
Riddick
Пользователь
 
Аватар для Riddick
 
Регистрация: 26.12.2007
Сообщений: 18
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Какую строку переносить - понятно (ту, по которой выполнялся щелчок)

А вот в какое место на другом листе вставлять - непонятно.
Может, ниже последней заполненной строки?
Точно так, немного условие не дописал.
Riddick вне форума Ответить с цитированием
Старый 15.12.2009, 15:52   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Пощелкайте на первом листе в этом примере, и время от времени глядите на лист Результат:



Вот весь код:
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Target.EntireRow.Copy Worksheets("Результат").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 15.12.2009, 16:04   #5
Riddick
Пользователь
 
Аватар для Riddick
 
Регистрация: 26.12.2007
Сообщений: 18
По умолчанию

Спасибо за помошь.

Еще вопросик:

Вот допустим я кликаю два раза по строке - строка переносится, а как сделать, чтобы ячейки выбранной строки переносилились в определенные ячейки друго листа?
Riddick вне форума Ответить с цитированием
Старый 15.12.2009, 16:29   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как сделать, чтобы ячейки выбранной строки переносилились в определенные ячейки друго листа?
Тут ничем помочь не могу - это вопрос для телепатов.

Откуда мне знать, как перенести непонятно что непонятно куда...
Ячеек-то и в строке дофига, а на листе - ещё больше.
EducatedFool вне форума Ответить с цитированием
Старый 15.12.2009, 16:43   #7
Riddick
Пользователь
 
Аватар для Riddick
 
Регистрация: 26.12.2007
Сообщений: 18
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Тут ничем помочь не могу - это вопрос для телепатов.

Откуда мне знать, как перенести непонятно что непонятно куда...
Ячеек-то и в строке дофига, а на листе - ещё больше.
Извините не правильно сформулировал вопрос.

Попробую поснить:

Вот я кликнул по строке и надо чтобы первая ячейка(строки по которой я кликнул) перенеслась в 6 строку 3 ячейку(другого листа).
Так же если кликается еще раз строка повторялось тоже самое только уже в 7 строку 3 ячейку.

Вот что смог придумать:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.EntireRow.Cells(1).Copy Worksheets("Товарный чек").Range("C" & Rows.Count).End(xlUp).Offset(6)
End Sub

Правильно ли?
Riddick вне форума Ответить с цитированием
Старый 15.12.2009, 16:51   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Правильнее будет так:
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Target.EntireRow.Cells(1).Copy Worksheets("Товарный чек").Range("C" & Rows.Count).End(xlUp).Offset(1)
End Sub
Одно условие - перед началом сбора строк 3-я ячейка в 5-й строке должна содержать значение.
Если её по каким-то причинам заполнить нельзя, то надо делать проверку:
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    Dim ЯчейкаДляВставки As Range
    Set ЯчейкаДляВставки = Worksheets("Товарный чек").Range("C" & Rows.Count).End(xlUp).Offset(1)
    If ЯчейкаДляВставки.Row < 6 Then Set ЯчейкаДляВставки = ЯчейкаДляВставки.EntireColumn.Cells(6)
    Target.EntireRow.Cells(1).Copy ЯчейкаДляВставки
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 15.12.2009, 16:59   #9
Riddick
Пользователь
 
Аватар для Riddick
 
Регистрация: 26.12.2007
Сообщений: 18
По умолчанию

Спс большое за помощь.

ЗЫ Теперь понял зачем нужен Offset(1)
Riddick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск программы по двойному клику на файл! SoftKoc Общие вопросы Delphi 15 04.12.2009 22:53
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Перенос строк в ячеке Bu$ter Microsoft Office Excel 5 21.10.2008 23:31
Перенос строк Yuran Общие вопросы Delphi 5 15.07.2008 23:11
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14