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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2013, 16:03   #1
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию Копирование из непрерывного диапозона ячеек по условию.

Уважаемые форумчане, пытаюсь решить следующую задачу:

1) необходимо определить конец непрерывного диапазона ячеек.
2) поднимаясь вверх сравнить сумму двух ячеек (например С6+Е6) в каждой строке с определенной ячейкой не входящей в этот диапазон (G2).
3) если С6+Е6>G2 то копируем эту строчку в конец диапазона (например 15 строка), заменяем значение E6 на (G2-С6) в оригинальной строке,
в скопированной С15=0, E15=C6+E6-G2

Пока получилось сделать условие чтобы в заранее заданном диапазоне при С6+Е6>G2 появлялось сообщение.

Не получается уйти от заранее заданного диапазона и записать условие копирования и замены значения ячеек.


Код:
Sub разделение()

Dim a As Range, c As Range ', LastRow As Long
'LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For Each a In [C4:C30] '(Rows.Count, 4).End(xlUp).Row
  For Each c In [E4:E30] '(Rows.Count, 6).End(xlUp).Row
    If a + c > [G2] Then MsgBox "1"
    

   ' Range("C4:G" & Cells(Rows.Count, 10).End(xlDown).Row).Paste
    Next c
Next a
'ActiveSheet.Range("C4").End(xlDown).Offset(1, 0).Paste
End Sub
P.S работаю в 2007 версии
Заранее огромное спасибо за помошь!
Вложения
Тип файла: zip Лист Microsoft Office Excel.zip (12.2 Кб, 7 просмотров)
Nicolas_46 вне форума Ответить с цитированием
Старый 07.08.2013, 17:40   #2
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

попробуйте так, не быстрый код, но работает вроде...
Код:
Option Explicit

Sub copyClee()
Dim iRow_1 As Integer, iRow_2 As Integer, i As Integer, S As Long
S = Range("G2")
iRow_1 = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
For i = 2 To iRow_1
    If Cells(i, 3) + Cells(i, 5) > S Then
        iRow_2 = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
        Range("B" & iRow_2 & ":" & "E" & iRow_2).Value = Range("B" & i & ":" & "E" & i).Value
        Cells(i, 5) = S - Cells(i, 3)
        Cells(iRow_2, 3) = 0
        Cells(iRow_2, 5) = Cells(i, 3) + Cells(i, 5) - S
    End If
Next i
End Sub
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 08.08.2013, 16:58   #3
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

Спасибо большое!!!! Все работает. Только две строки необходимо поменять местами)
Nicolas_46 вне форума Ответить с цитированием
Старый 08.08.2013, 17:15   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Nicolas_46 Посмотреть сообщение
Спасибо большое!!!! Все работает. Только две строки необходимо поменять местами)
наверное не правильно понял задачу
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 08.08.2013, 17:23   #5
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

Тем не менее пример хороший, все остальное смог сделать самостоятельно. Спасибо.
Nicolas_46 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заполнение ячеек по условию ifeeling Microsoft Office Excel 12 21.10.2012 10:46
копирование строк, соответствующих условию фильтра и копирование на новый лист xorek Microsoft Office Excel 0 09.07.2012 18:13
копирование ячеек из одной книги в другую по условию troyam Microsoft Office Excel 2 22.03.2012 15:17
Копирование данных по условию. sirius24 Microsoft Office Excel 6 06.04.2010 09:17
заполнение ячеек по условию Arcto Microsoft Office Excel 1 17.02.2010 11:21