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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2010, 01:17   #1
sergey77
Новичок
Джуниор
 
Регистрация: 17.08.2010
Сообщений: 2
По умолчанию Выбор и перенос данных в другой лист

Ребята помоги, пожалуйста, очень надо.
Суть проблемы: Есть прайс - лист, в нем выборочно, в графе количество проставляются цифры и надо что бы при нажатии кнопки « сформировать заказ» все строки, где проставлено графа кол-во, перенеслись в новый лист.
Пример прилагаю, заранее Большое спасибо.
Вложения
Тип файла: rar Price1.rar (5.5 Кб, 28 просмотров)
sergey77 вне форума Ответить с цитированием
Старый 17.08.2010, 03:30   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

PHP код:
Sub СформироватьЗаказ()
    
Dim XAs LongAs LongAs Integer
    X 
Range("A2:F" Cells(Rows.Count1).End(xlUp).Row).Value
    Application
.ScreenUpdating False1
        
For 1 To UBound(X1)
            If 
X(i6) > 0 Then
                
For 1 To 6
                    X
(jk) = X(ik)
                    If 
j Then X(ik) = Empty
                
Next k1
            
Else
                For 
1 To 6X(ik) = Empty: Next k
            End 
If
        
Next i
    Sheets
("Zakaz").Activate
    With Range
("A2").Resize(UBound(X1), UBound(X2))
        .
EntireRow.Hidden False
        
.Value X
        
.Columns(1).SpecialCells(4).EntireRow.Hidden True
    End With
    Application
.ScreenUpdating True
End Sub 
Вложения
Тип файла: rar Price1.rar (19.1 Кб, 40 просмотров)
nilem вне форума Ответить с цитированием
Старый 17.08.2010, 07:07   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А я опять про то, что Excel - мощный инструмент. Если можно применить его методы, то нужно это использовать. Данная задача решается в две строки, без всяких циклов:
Код:
Private Sub Main()
    Application.ScreenUpdating = False: Sheets("Zakaz").Activate
    Cells.Delete: Sheets("Price").Cells.Copy [A1]
    Range([A1], Cells(Rows.Count, 1).End(xlUp)).Offset(, 5).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Пример во вложении.
Вложения
Тип файла: rar Price1_2.rar (13.9 Кб, 75 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 17.08.2010 в 10:11.
SAS888 вне форума Ответить с цитированием
Старый 17.08.2010, 11:28   #4
A_L_E_X
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 45
Хорошо

Уважаемый SAS888.

Ваш код работает. Это хорошо.
У меня аналогичная задача решается кодом в 50 строк - и это обидно.

Но обиднее всего - я совершенно не понимаю Ваш код.

Может расшифруете?
Если у вас и седьмой блин комом, к чёрту блины - пеките комочки!!!
A_L_E_X вне форума Ответить с цитированием
Старый 17.08.2010, 12:09   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Тот же код с подробными комментариями:
Код:
Private Sub Main()

'Запрещаем обновление экрана и активируем лист "Zakaz"
    Application.ScreenUpdating = False: Sheets("Zakaz").Activate
    
'Очищаем лист от предыдущих данных и копируем все значения из листа "Price"
'Если копировать лист целиком, то скопируется и кнопка, чего нам не нужно.
    Cells.Delete: Sheets("Price").Cells.Copy [A1]
    
'Определяем диапазон от ячейки "A1" до последней заполненной ячейки столбца "A" со смещением 5 (столбец "F"),
'содержащий пустые значения и удаляем эти строки целиком. Определять диапазон сразу по столбцу "F"
'будет не правильно, т.к. этот столбец может быть заполнен произвольно.
    Range([A1], Cells(Rows.Count, 1).End(xlUp)).Offset(, 5).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.08.2010, 12:46   #6
A_L_E_X
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 45
По умолчанию

Огромное спасибо!!!
Если у вас и седьмой блин комом, к чёрту блины - пеките комочки!!!
A_L_E_X вне форума Ответить с цитированием
Старый 17.08.2010, 17:10   #7
sergey77
Новичок
Джуниор
 
Регистрация: 17.08.2010
Сообщений: 2
По умолчанию

"nilem"
"SAS888"
ОГРОМНОЕ Спасибо!
sergey77 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос строки на другой лист по условию TimoXEi Microsoft Office Excel 12 24.01.2013 16:21
Перенос на другой лист по значению столбца ElenaNTro Microsoft Office Excel 5 17.03.2011 14:50
Выбор из столбца по критерию и копировать ячейку из этой строки на другой лист Тетя Мотя Microsoft Office Excel 1 17.09.2009 16:46
Перенос данных с формы на лист Lyubov1990 Microsoft Office Excel 2 07.04.2009 15:08
Выбор и перенос данных в другой лист, книгу. Avald Microsoft Office Excel 1 16.06.2008 10:44