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

Вход

Регистрация

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

 

= Мир MS Excel/макрос определить диапазон с данными и итог - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » макрос определить диапазон с данными и итог
макрос определить диапазон с данными и итог
foty Дата: Вторник, 12.03.2013, 22:35 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

может кто подскажет новичку...в автоматически созданном макросе:

[vba]
Код
Range("C5").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-2],Аванс!R1C1:R540C2,2,0)),0,VLOOKUP(RC[-2],Аванс!R1C1:R540C2,2,0))"
Range("C5").Select
Selection.AutoFill Destination:=Range("C5:C493"), Type:=xlFillDefault
Range("C5:C493").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-5],Зарплата!R1C1:R540C2,2,0)),0,VLOOKUP(R[-3]C[-5],Зарплата!R1C1:R540C2,2,0))"
Range("F5").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-5],Зарплата!R1C1:R540C2,2,0)),0,VLOOKUP(RC[-5],Зарплата!R1C1:R540C2,2,0))"
Range("F5").Select
Selection.AutoFill Destination:=Range("F5:F493"), Type:=xlFillDefault
Range("F5:F493").Select
Range("D5").Select
ActiveCell.FormulaR1C1 = "=RC[-1]+RC[-2]"
Range("D5").Select
Selection.AutoFill Destination:=Range("D5:D493"), Type:=xlFillDefault
Range("D5:D493").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="=-1", Formula2:="=1"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0 [/FONT][/COLOR][/B][/SIZE][/SIZE]
End Wit
[/vba]
необходимо диапазоны ("D5:D493") ("С5:С493") ("F5:F493") заменить значениями с подсчетом строк, т.е. чтобы вставлял формулы только в строки где есть данные и затем их же и просуммировал...(сейчас строчку 493 вставляет нули)...
К сообщению приложен файл: 6430452.xlsx (15.8 Kb)
 
Ответить
Сообщениеможет кто подскажет новичку...в автоматически созданном макросе:

[vba]
Код
Range("C5").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-2],Аванс!R1C1:R540C2,2,0)),0,VLOOKUP(RC[-2],Аванс!R1C1:R540C2,2,0))"
Range("C5").Select
Selection.AutoFill Destination:=Range("C5:C493"), Type:=xlFillDefault
Range("C5:C493").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-5],Зарплата!R1C1:R540C2,2,0)),0,VLOOKUP(R[-3]C[-5],Зарплата!R1C1:R540C2,2,0))"
Range("F5").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-5],Зарплата!R1C1:R540C2,2,0)),0,VLOOKUP(RC[-5],Зарплата!R1C1:R540C2,2,0))"
Range("F5").Select
Selection.AutoFill Destination:=Range("F5:F493"), Type:=xlFillDefault
Range("F5:F493").Select
Range("D5").Select
ActiveCell.FormulaR1C1 = "=RC[-1]+RC[-2]"
Range("D5").Select
Selection.AutoFill Destination:=Range("D5:D493"), Type:=xlFillDefault
Range("D5:D493").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="=-1", Formula2:="=1"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0 [/FONT][/COLOR][/B][/SIZE][/SIZE]
End Wit
[/vba]
необходимо диапазоны ("D5:D493") ("С5:С493") ("F5:F493") заменить значениями с подсчетом строк, т.е. чтобы вставлял формулы только в строки где есть данные и затем их же и просуммировал...(сейчас строчку 493 вставляет нули)...

Автор - foty
Дата добавления - 12.03.2013 в 22:35
alx74 Дата: Вторник, 12.03.2013, 22:52 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 209
Репутация: 32 ±
Замечаний: 0% ±

Случайно не кросс ли это? http://www.cyberforum.ru/ms-excel/thread806885.html


Срочность обратно пропорциональна степени важности.
Яндекс-money:41001687631447
 
Ответить
СообщениеСлучайно не кросс ли это? http://www.cyberforum.ru/ms-excel/thread806885.html

Автор - alx74
Дата добавления - 12.03.2013 в 22:52
foty Дата: Вторник, 12.03.2013, 23:14 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Да и то мое...ваш форум мне понравился..решила и тут совета спросить...
 
Ответить
СообщениеДа и то мое...ваш форум мне понравился..решила и тут совета спросить...

Автор - foty
Дата добавления - 12.03.2013 в 23:14
Матраскин Дата: Среда, 13.03.2013, 10:10 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
foty,
[vba]
Код
Sub macros()
Dim i As Integer
i = 1
     While Worksheets("зарплата").Cells(i, 1) <> 0
         If (Worksheets("зарплата").Cells(i, 1) & " " & _
             Worksheets("зарплата").Cells(i, 2) & " " & _
             Worksheets("зарплата").Cells(i, 3)) = Worksheets("Лист10").Cells(i + 3, 1) Then
             Worksheets("зарплата").Cells(i, 5) = Worksheets("Лист10").Cells(3 + i, 2)
         End If
         i = i + 1
     Wend
End Sub
[/vba]
макрос сравнивает ФИО на листе зарплата с ФИО на странице лист10 и если совпадает, то в столбец 5 листа зарплата вставляет значение ячейки из столбца 2 листа лист10. Он делает не то что вам надо, но если минимально подправить под вашу задачу получится то что надо happy Если напишете задачу понятней, я или кто то ещё поможет вам написать этот несложный макрос


в интернете опять кто-то не прав
 
Ответить
Сообщениеfoty,
[vba]
Код
Sub macros()
Dim i As Integer
i = 1
     While Worksheets("зарплата").Cells(i, 1) <> 0
         If (Worksheets("зарплата").Cells(i, 1) & " " & _
             Worksheets("зарплата").Cells(i, 2) & " " & _
             Worksheets("зарплата").Cells(i, 3)) = Worksheets("Лист10").Cells(i + 3, 1) Then
             Worksheets("зарплата").Cells(i, 5) = Worksheets("Лист10").Cells(3 + i, 2)
         End If
         i = i + 1
     Wend
End Sub
[/vba]
макрос сравнивает ФИО на листе зарплата с ФИО на странице лист10 и если совпадает, то в столбец 5 листа зарплата вставляет значение ячейки из столбца 2 листа лист10. Он делает не то что вам надо, но если минимально подправить под вашу задачу получится то что надо happy Если напишете задачу понятней, я или кто то ещё поможет вам написать этот несложный макрос

Автор - Матраскин
Дата добавления - 13.03.2013 в 10:10
foty Дата: Среда, 13.03.2013, 18:52 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Спасибо..я буду оч благодарна вашей помощи...у меня в лист 10 формируется сводная таблица мне нужно чтобы данные из листа зарплата 123 столбцы это фио и 4 столбец сумма сравнились с первым столбцом из листа 10 фио и сумма столбец 2...сравнились и вывел либо разницу на страницу проверка либо ноль,если суммы равны...я знаю что это простая задачка,но мне в силу неопытности тяжело сделать это быстро...поэтому и пробую разными путями! А ваш вариант я тоже прикину!
 
Ответить
СообщениеСпасибо..я буду оч благодарна вашей помощи...у меня в лист 10 формируется сводная таблица мне нужно чтобы данные из листа зарплата 123 столбцы это фио и 4 столбец сумма сравнились с первым столбцом из листа 10 фио и сумма столбец 2...сравнились и вывел либо разницу на страницу проверка либо ноль,если суммы равны...я знаю что это простая задачка,но мне в силу неопытности тяжело сделать это быстро...поэтому и пробую разными путями! А ваш вариант я тоже прикину!

Автор - foty
Дата добавления - 13.03.2013 в 18:52
Матраскин Дата: Среда, 13.03.2013, 19:26 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
foty, если я верно понял. хотя слово СУММА настораживает
[vba]
Код
Sub macros()
Dim i As Integer
i = 1
       While Worksheets("зарплата").Cells(i, 1) <> 0
           If (Worksheets("зарплата").Cells(i, 1) & " " & _
               Worksheets("зарплата").Cells(i, 2) & " " & _
               Worksheets("зарплата").Cells(i, 3)) = Worksheets("Лист10").Cells(i + 3, 1) Then
               Worksheets("проверка").Cells(i, 1) = Worksheets("зарплата").Cells(i, 4) - Worksheets("Лист10").Cells(3 + i, 2)
           End If
           i = i + 1
       Wend
End Sub
[/vba]


в интернете опять кто-то не прав

Сообщение отредактировал Матраскин - Среда, 13.03.2013, 19:27
 
Ответить
Сообщениеfoty, если я верно понял. хотя слово СУММА настораживает
[vba]
Код
Sub macros()
Dim i As Integer
i = 1
       While Worksheets("зарплата").Cells(i, 1) <> 0
           If (Worksheets("зарплата").Cells(i, 1) & " " & _
               Worksheets("зарплата").Cells(i, 2) & " " & _
               Worksheets("зарплата").Cells(i, 3)) = Worksheets("Лист10").Cells(i + 3, 1) Then
               Worksheets("проверка").Cells(i, 1) = Worksheets("зарплата").Cells(i, 4) - Worksheets("Лист10").Cells(3 + i, 2)
           End If
           i = i + 1
       Wend
End Sub
[/vba]

Автор - Матраскин
Дата добавления - 13.03.2013 в 19:26
Foty Дата: Четверг, 14.03.2013, 07:30 | Сообщение № 7
Группа: Гости
Матраскин angry ну почему он у меня не работает...просто не исполняет его и все...не ругается ...не останавливется ..не пойму
 
Ответить
СообщениеМатраскин angry ну почему он у меня не работает...просто не исполняет его и все...не ругается ...не останавливется ..не пойму

Автор - Foty
Дата добавления - 14.03.2013 в 07:30
foty Дата: Четверг, 14.03.2013, 08:17 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

ой сорри....работает...но вот суммы подставляет неправильно..может вы мне напишите на fotinys@mail.ru ....свой email...если можно я вам вопросики позадаю...хотелось бы довести до конца...может вы поможете советами
 
Ответить
Сообщениеой сорри....работает...но вот суммы подставляет неправильно..может вы мне напишите на fotinys@mail.ru ....свой email...если можно я вам вопросики позадаю...хотелось бы довести до конца...может вы поможете советами

Автор - foty
Дата добавления - 14.03.2013 в 08:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » макрос определить диапазон с данными и итог
  • Страница 1 из 1
  • 1
Поиск:

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