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

Вход

Регистрация

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

 

= Мир MS Excel/Отделение текста от Цифр и удаление строк при условии - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отделение текста от Цифр и удаление строк при условии (Макросы/Sub)
Отделение текста от Цифр и удаление строк при условии
rever27 Дата: Понедельник, 18.05.2015, 14:42 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Задача в следующем:
Есть таблица. Нужно:
1) Разъединить текст от цифр в колонках X:AA, чтобы сравнить показатели цифр.
2) Удалять полностью всю строчку при условии, если значение StopLoss меньше значений TR_TrailingStart или BE_Start
Строчки, которые нужно удалить, где совпало условие, выделил светло-зеленым.
Темно-зеленым выделил значения, которые больше StopLoss.

Спасибо
К сообщению приложен файл: 3221556.xlsx (10.0 Kb)
 
Ответить
СообщениеЗадача в следующем:
Есть таблица. Нужно:
1) Разъединить текст от цифр в колонках X:AA, чтобы сравнить показатели цифр.
2) Удалять полностью всю строчку при условии, если значение StopLoss меньше значений TR_TrailingStart или BE_Start
Строчки, которые нужно удалить, где совпало условие, выделил светло-зеленым.
Темно-зеленым выделил значения, которые больше StopLoss.

Спасибо

Автор - rever27
Дата добавления - 18.05.2015 в 14:42
KSV Дата: Понедельник, 18.05.2015, 16:54 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
так? (см. вложенный файл)

[p.s.]Кстати, одна из выделенных вами строк, под ваши условия не попадает.[/p.s.]
К сообщению приложен файл: 3221556.xlsm (17.6 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Понедельник, 18.05.2015, 16:55
 
Ответить
Сообщениетак? (см. вложенный файл)

[p.s.]Кстати, одна из выделенных вами строк, под ваши условия не попадает.[/p.s.]

Автор - KSV
Дата добавления - 18.05.2015 в 16:54
rever27 Дата: Вторник, 19.05.2015, 20:39 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Да, отлично работает.
Только диапазон текстовых значений постоянно меняется, с колонок не 3, а неизвестное заранее количество.
Не смог сообразить, как выбирать последнюю заполненную колонку.
И если между данными есть пустые ячейки, он выдает ошибку, хотелось бы просматривать все значения в книге начиная с 3 строчке
 
Ответить
СообщениеДа, отлично работает.
Только диапазон текстовых значений постоянно меняется, с колонок не 3, а неизвестное заранее количество.
Не смог сообразить, как выбирать последнюю заполненную колонку.
И если между данными есть пустые ячейки, он выдает ошибку, хотелось бы просматривать все значения в книге начиная с 3 строчке

Автор - rever27
Дата добавления - 19.05.2015 в 20:39
KSV Дата: Среда, 20.05.2015, 00:06 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Не смог сообразить, как выбирать последнюю заполненную колонку.

вот так:
[vba]
Код
c = Cells(3, Columns.Count).End(xlToLeft).Column
[/vba]

Исправил все, описанные вами ошибки.
Проверяйте - должно работать, как вам надо.
К сообщению приложен файл: 0949586.xlsm (18.5 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Не смог сообразить, как выбирать последнюю заполненную колонку.

вот так:
[vba]
Код
c = Cells(3, Columns.Count).End(xlToLeft).Column
[/vba]

Исправил все, описанные вами ошибки.
Проверяйте - должно работать, как вам надо.

Автор - KSV
Дата добавления - 20.05.2015 в 00:06
rever27 Дата: Четверг, 21.05.2015, 10:15 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Все отлично работает. Спасибо огромное.
Последний вопрос, можно ли приделать счетчик MsgBox количества удаленных значений к подобным макросам?
 
Ответить
СообщениеВсе отлично работает. Спасибо огромное.
Последний вопрос, можно ли приделать счетчик MsgBox количества удаленных значений к подобным макросам?

Автор - rever27
Дата добавления - 21.05.2015 в 10:15
KSV Дата: Четверг, 21.05.2015, 11:08 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
см. вложенный файл
К сообщению приложен файл: 5580636.xlsm (17.2 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениесм. вложенный файл

Автор - KSV
Дата добавления - 21.05.2015 в 11:08
rever27 Дата: Четверг, 21.05.2015, 12:01 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Благодарю. Очень красивый и краткий код.
Если в будущем возникнут загвоздки - обращусь к Вам )


Сообщение отредактировал rever27 - Четверг, 21.05.2015, 12:39
 
Ответить
СообщениеБлагодарю. Очень красивый и краткий код.
Если в будущем возникнут загвоздки - обращусь к Вам )

Автор - rever27
Дата добавления - 21.05.2015 в 12:01
KSV Дата: Четверг, 21.05.2015, 12:36 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
обращайтесь :)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениеобращайтесь :)

Автор - KSV
Дата добавления - 21.05.2015 в 12:36
rever27 Дата: Четверг, 21.05.2015, 12:39 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Еще вопрос к Вам, возможно, немного не по теме про счетчик удаленных значений.
Есть код, он удаляет дубликаты в заданных строчках, и потом удаляет пустые ячейки после удаления.
Как можно так же посчитать, сколько дубликатов было удалено?
[vba]
Код

Sub b_RemoveDuplicates()
        
Dim r As Long, rng As Range, rng1 As Range

      Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)

      rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo          'Q, R, X, Y
      rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo          'R, U, X, Y
      rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo      'R, U, Y, AC, AG
      rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo  'R, U, Y, AA, AB, AJ
      
      For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
          If Application.CountA(Rows(r)) = 0 Then
              If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
             End If
          Next r
      If Not rng Is Nothing Then rng.Delete: _

End Sub
[/vba]
 
Ответить
СообщениеЕще вопрос к Вам, возможно, немного не по теме про счетчик удаленных значений.
Есть код, он удаляет дубликаты в заданных строчках, и потом удаляет пустые ячейки после удаления.
Как можно так же посчитать, сколько дубликатов было удалено?
[vba]
Код

Sub b_RemoveDuplicates()
        
Dim r As Long, rng As Range, rng1 As Range

      Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)

      rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo          'Q, R, X, Y
      rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo          'R, U, X, Y
      rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo      'R, U, Y, AC, AG
      rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo  'R, U, Y, AA, AB, AJ
      
      For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
          If Application.CountA(Rows(r)) = 0 Then
              If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
             End If
          Next r
      If Not rng Is Nothing Then rng.Delete: _

End Sub
[/vba]

Автор - rever27
Дата добавления - 21.05.2015 в 12:39
KSV Дата: Четверг, 21.05.2015, 13:20 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Это новый вопрос - для него нужна новая тема, иначе Александр нам влепит по замечанию! (он за этим строго следит :) )

А вообще, нужно знать, что именно вы подразумеваете под дубликатами?
Что нужно подсчитывать, кол-во удаленных ячеек?
Вам нужно знать общее кол-во ячеек, удаленных макросом, или по отдельности для каждой команды RemoveDuplicates и отдельно сколько удалено пустых ячеек?


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеЭто новый вопрос - для него нужна новая тема, иначе Александр нам влепит по замечанию! (он за этим строго следит :) )

А вообще, нужно знать, что именно вы подразумеваете под дубликатами?
Что нужно подсчитывать, кол-во удаленных ячеек?
Вам нужно знать общее кол-во ячеек, удаленных макросом, или по отдельности для каждой команды RemoveDuplicates и отдельно сколько удалено пустых ячеек?

Автор - KSV
Дата добавления - 21.05.2015 в 13:20
rever27 Дата: Четверг, 21.05.2015, 14:21 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010


Сообщение отредактировал Serge_007 - Суббота, 23.05.2015, 23:16
 
Ответить
Сообщениесоздал

http://www.excelworld.ru/forum/10-17566-1

Автор - rever27
Дата добавления - 21.05.2015 в 14:21
rever27 Дата: Суббота, 23.05.2015, 10:51 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KSV. Подскажите, пожалуйста. Добавились небольшие изменения в расчет.
Помимо параметров TR_TrailingStart или BE_Start теперь также нужно учитывать сумму вот этих двух:
PartClose_Targets_1|PartClose_Targets_2

Т.е. нужно дополнительное сравнение: StopLoss <= PartClose_Targets_1 + PartClose_Targets_2
если да, то так же удаление строки.

Спасибо
 
Ответить
СообщениеKSV. Подскажите, пожалуйста. Добавились небольшие изменения в расчет.
Помимо параметров TR_TrailingStart или BE_Start теперь также нужно учитывать сумму вот этих двух:
PartClose_Targets_1|PartClose_Targets_2

Т.е. нужно дополнительное сравнение: StopLoss <= PartClose_Targets_1 + PartClose_Targets_2
если да, то так же удаление строки.

Спасибо

Автор - rever27
Дата добавления - 23.05.2015 в 10:51
KSV Дата: Суббота, 23.05.2015, 19:26 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Если PartClose_Targets_1 и PartClose_Targets_2 тоже имеют целочисленные значения, то так (см. вложенный файл). А если дробные, то нужно изменить тип переменной p на p! или p# (вместо p&).
К сообщению приложен файл: 5646326.xlsm (19.1 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеДобрый день!
Если PartClose_Targets_1 и PartClose_Targets_2 тоже имеют целочисленные значения, то так (см. вложенный файл). А если дробные, то нужно изменить тип переменной p на p! или p# (вместо p&).

Автор - KSV
Дата добавления - 23.05.2015 в 19:26
rever27 Дата: Суббота, 23.05.2015, 20:06 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
нет, числа цельные.
Все отлично работает. Очень красивый код )
Спасибо
 
Ответить
Сообщениенет, числа цельные.
Все отлично работает. Очень красивый код )
Спасибо

Автор - rever27
Дата добавления - 23.05.2015 в 20:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отделение текста от Цифр и удаление строк при условии (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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