Спасибо за ответы..Пока разбежались глаза...Как что получится - обезательно отпишусь.
» Excel FAQ (часть 4)
А в таком варианте и формулы скопируются
Sub Макрос1()
Range("E60:G60").Copy
Range("H60:J60").PasteSpecial
End Sub
кстати вместо Range("E60:G60").Copy можно использовать Selection.Copy - зацикливания не будет, тогда макрос будет выглядеть так:
Sub Макрос1()
Selection.Copy
Range("H60").PasteSpecial
End Sub
Справка F1 рулит!
Добавлено:
CEMEH, не надо мулек!
Sub Макрос1()
Range("E60:G60").Copy
Range("H60:J60").PasteSpecial
End Sub
кстати вместо Range("E60:G60").Copy можно использовать Selection.Copy - зацикливания не будет, тогда макрос будет выглядеть так:
Sub Макрос1()
Selection.Copy
Range("H60").PasteSpecial
End Sub
Справка F1 рулит!
Добавлено:
CEMEH, не надо мулек!
Help! Помогите кто-нибудь... Есть огромное кол-во файлов, с абсолютно одинаковой структурой, регулярно собираются со всей страны. Как можно "слить" их в единую таблицу?
Цитата:
зацикливания не будет
Сделал бытсрую пробу Зацикливания действительно нет, вот только "небольшая" проблема: после написания слова в ячейку и, как следствие, исполенния макроса, после нажатия на любую ячейку в листе он опять исполняется....
Записал так- Макрос:
Range("E60:G60").Copy
Range("H60:J60").PasteSpecial
End Sub
Условие - так:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D1").Value = "земля" Then
имя_макроса.
End If
End Sub
Пошел дальше копаться...
:D логично! у тебя ведь и вправду в D1
Цитата:
Добавлено:
Цитата:
когда вставляешь необязательно весь диапазон указывать, можно просто первую ячейку
Цитата:
Цитата:
"земля"написано - так чтож условию не выполняться то......
Добавлено:
Цитата:
Range("H60:J60").PasteSpecial
когда вставляешь необязательно весь диапазон указывать, можно просто первую ячейку
Цитата:
Range("H60").PasteSpecial
УУУУУУРРРРРРРРРРРРРРАААААААААААААААА!!!!!!!!!!!!!! РАБОТАЕТ - это я.
Конкретно писать, что было не так по пунктам не буду, - напишу сразу готовый вариант. Чтоб работало - писать надо ВСЕ:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("M7").Value = "слово" Then
имя_макроса1
End If
Application.EnableEvents = True
End Sub
От варианта написания самого макроса результат, в итоге, не зависит.
Вот так. Забавно, что 2 дня назад я незнал, что такое макрос. - это опять я
Конкретно писать, что было не так по пунктам не буду, - напишу сразу готовый вариант. Чтоб работало - писать надо ВСЕ:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("M7").Value = "слово" Then
имя_макроса1
End If
Application.EnableEvents = True
End Sub
От варианта написания самого макроса результат, в итоге, не зависит.
Вот так. Забавно, что 2 дня назад я незнал, что такое макрос. - это опять я
Pravoved90
у меня абсолютно нет времени, но и промолчать не могу.
параметров в функцию Worksheet_Change передаётся Target - это адрес ячейки, которая изменилась.
Принято, чтобы ЗНАЧИТЕЛЬНО повысить быстродействие - в начале макроса проверять, попадает ли изменившиеся ячейка в контролируемый диапазон. т.е. если пользовтель изменить ячейку Z1000 Ваш макрос всё равно проверит М7 и если там "слово" то выполнит копирование данных. Оно Вам надо?
проверить попадание в диапазон можно так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
' If Target.Cells.Count > 1 Then Exit Sub ' это по необходимости - проверка, что изменилась только ОДНА ячейка, если больше - ничего не делаем.
If Not Intersect(Target, Range("M7")) Is Nothing Then 'Изменилось M7
... <полностью Ваш код>
End if
у меня абсолютно нет времени, но и промолчать не могу.
параметров в функцию Worksheet_Change передаётся Target - это адрес ячейки, которая изменилась.
Принято, чтобы ЗНАЧИТЕЛЬНО повысить быстродействие - в начале макроса проверять, попадает ли изменившиеся ячейка в контролируемый диапазон. т.е. если пользовтель изменить ячейку Z1000 Ваш макрос всё равно проверит М7 и если там "слово" то выполнит копирование данных. Оно Вам надо?
проверить попадание в диапазон можно так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
' If Target.Cells.Count > 1 Then Exit Sub ' это по необходимости - проверка, что изменилась только ОДНА ячейка, если больше - ничего не делаем.
If Not Intersect(Target, Range("M7")) Is Nothing Then 'Изменилось M7
... <полностью Ваш код>
End if
q1wed
Цитата:
Пробовал не подходит, бывает что надо внести изменения, и снова расфасовать обратно. Есть еще какие-то варианты?
Цитата:
Консолидация (объединение) данных из нескольких таблиц в одну
Пробовал не подходит, бывает что надо внести изменения, и снова расфасовать обратно. Есть еще какие-то варианты?
А помогите решить задачу.
Есть три ячейки. Последняя - есть результат деления второй на первую. Только первая иногда может иметь значение =0 и тогда получается не оч хорошо. В таком случае результат в третьей ячейке должен быть равен значению во второй.
Думал использовать функцию ЕСЛИ, но в ней нельзя применять выражения. Посоветуйте что-нибудь.
Есть три ячейки. Последняя - есть результат деления второй на первую. Только первая иногда может иметь значение =0 и тогда получается не оч хорошо. В таком случае результат в третьей ячейке должен быть равен значению во второй.
Думал использовать функцию ЕСЛИ, но в ней нельзя применять выражения. Посоветуйте что-нибудь.
SERGE_BLIZNUK
Да, действительно, я сразу и не заметил такой фокус. Крайне признателен за помощь.
ИТАК, после изнурительной борьбы интеллекта против американской машины коллективный разум одержал безоговорочную победуУРА.
Итого для достижения поставленной цели пишем следующее колдовство:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Not Intersect(Target, Range("M7")) Is Nothing Then
Application.EnableEvents = False
If Range("M7").Value = "слово" Then
имя_макроса1
End If
Application.EnableEvents = True
End If
End Sub
Вот так. Можно и в шапочку это действо поместить. Благодарю ВСЕХ за содействие и помощь в этом нелегком деле
Добавлено:
cluster
Как раз недавно делал нечто подобное
=ЕСЛИ(E18)=0;A1;((E18-K18)*(100/МАКС(E18;K18))))
, где Е18 - ваше первое значение
A1 - ваше второе значение, которое исполняется в случае если, "первое значение =0"
((E18-K18)*(100/МАКС(E18;K18)))) - ваша основная формула, которая будет исполняться во всех остальных случаях.
Удачи
Да, действительно, я сразу и не заметил такой фокус. Крайне признателен за помощь.
ИТАК, после изнурительной борьбы интеллекта против американской машины коллективный разум одержал безоговорочную победуУРА.
Итого для достижения поставленной цели пишем следующее колдовство:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Not Intersect(Target, Range("M7")) Is Nothing Then
Application.EnableEvents = False
If Range("M7").Value = "слово" Then
имя_макроса1
End If
Application.EnableEvents = True
End If
End Sub
Вот так. Можно и в шапочку это действо поместить. Благодарю ВСЕХ за содействие и помощь в этом нелегком деле
Добавлено:
cluster
Как раз недавно делал нечто подобное
=ЕСЛИ(E18)=0;A1;((E18-K18)*(100/МАКС(E18;K18))))
, где Е18 - ваше первое значение
A1 - ваше второе значение, которое исполняется в случае если, "первое значение =0"
((E18-K18)*(100/МАКС(E18;K18)))) - ваша основная формула, которая будет исполняться во всех остальных случаях.
Удачи
cluster
=ЕСЛИ(A1=0;B1;B1/A1)
=ЕСЛИ(A1=0;B1;B1/A1)
Еще одна "новинка". Когда под первым условием пишу идентичное, только с другими ячейками и названиями, выпадает ошибка с ссылокой на новое условие:
ambiguous name detected work_sheet change
Что это значит и как с этим бороться?
Вроде - это значит, что строчки Private Sub Worksheet_Change(ByVal Target As Range) не должны повторяться...Но не могу правильно изменить имя...
ambiguous name detected work_sheet change
Что это значит и как с этим бороться?
Вроде - это значит, что строчки Private Sub Worksheet_Change(ByVal Target As Range) не должны повторяться...Но не могу правильно изменить имя...
haruspik
Цитата:
Ну тогда, если хочешь помощи, максимально подробно описывай свою ситуацию, что пробовал и что не подходит.
Цитата:
Пробовал не подходит
Ну тогда, если хочешь помощи, максимально подробно описывай свою ситуацию, что пробовал и что не подходит.
В принципе решил проблему записью всех идентичных данных под один макрос..Но вопрос остается актуальным..И еще - можно ли сделать таку себе визуальную разделительную черту в самом макросе, чтобы визуально данные не путать?
Добавлено:
Добрый вечер, Господа. Помогите решить такую задачу.
Есть ячейки а1 в1 с1 d1. Нужно сделать формулу в ячейке a1, чтобы в случае, если в1 = от 1 до 5, a1 = d1, если b1 = от 5 до 10, a1 =c1.
Можно ли єто сделать в одной формуле, или надо макрос писать?
ПС Хотелось бы первый вариант, но не могу сообразить..Спасибо
Добавлено:
Добрый вечер, Господа. Помогите решить такую задачу.
Есть ячейки а1 в1 с1 d1. Нужно сделать формулу в ячейке a1, чтобы в случае, если в1 = от 1 до 5, a1 = d1, если b1 = от 5 до 10, a1 =c1.
Можно ли єто сделать в одной формуле, или надо макрос писать?
ПС Хотелось бы первый вариант, но не могу сообразить..Спасибо
Pravoved90
Чего там делать. =ЕСЛИ(ИЛИ(B1<1;B1>10);"нет данных";ЕСЛИ(B1<5;D1;C1))
Чего там делать. =ЕСЛИ(ИЛИ(B1<1;B1>10);"нет данных";ЕСЛИ(B1<5;D1;C1))
Mushroomer
Спасибо за ответ, просто после макросов голова на полуавтомате)))
Еще скромный вопрос: Как задать в формулу - сложить все числа столбика, кроме ячеек, залитых красным цветом? Спасибо
Спасибо за ответ, просто после макросов голова на полуавтомате)))
Еще скромный вопрос: Как задать в формулу - сложить все числа столбика, кроме ячеек, залитых красным цветом? Спасибо
Цитата:
И еще - можно ли сделать таку себе визуальную разделительную черту в самом макросе, чтобы визуально данные не путать?
а чем комментирование кода не подходит?!
Код:
макрос1
`____________________________
макрос2
Добрый день! Помогите, пожалуйста, решить следующую задачу.
Есть список институтов (например, МГУ, МАИ, МИИТ и т.д.). По каждому институту есть список факультетов. Например:
- МГУ фак 1, МГУ фак 2, МГУ фак 3
- МАИ фак 1, МАИ фак 2
- МИИТ фак 1, МИИТ фак 2, МИИТ фак 3, МИИТ фак 4
Я хочу создать два выпадающих списка. В первом я выбираю институт. И после выбора конкретного института автоматически формируется второй список, содержащий факультеты выбранного института. Т.е. после выбора института при нажатии на ячейку со вторым списком, я должен увидеть только те факультеты, которые относятся к выбранному ранее институту.
Как это сделать? Буду очень благодарен, если вы сможете описать полное решение данной задачи, начиная с того, как правильно завести справочники институтов и факультетов, как правильно задать между ними связь и т.д. Большая просьба, по возможности не использовать макросы и попробовать решить эту задачу через формулы (если такое решение конечно существует).
Спасибо
Есть список институтов (например, МГУ, МАИ, МИИТ и т.д.). По каждому институту есть список факультетов. Например:
- МГУ фак 1, МГУ фак 2, МГУ фак 3
- МАИ фак 1, МАИ фак 2
- МИИТ фак 1, МИИТ фак 2, МИИТ фак 3, МИИТ фак 4
Я хочу создать два выпадающих списка. В первом я выбираю институт. И после выбора конкретного института автоматически формируется второй список, содержащий факультеты выбранного института. Т.е. после выбора института при нажатии на ячейку со вторым списком, я должен увидеть только те факультеты, которые относятся к выбранному ранее институту.
Как это сделать? Буду очень благодарен, если вы сможете описать полное решение данной задачи, начиная с того, как правильно завести справочники институтов и факультетов, как правильно задать между ними связь и т.д. Большая просьба, по возможности не использовать макросы и попробовать решить эту задачу через формулы (если такое решение конечно существует).
Спасибо
DrMihalich
почитайте для начала Приемы, хитрости, трюки и нюансы работы в Microsoft Excel: Связанные выпадающие списки
почитайте для начала Приемы, хитрости, трюки и нюансы работы в Microsoft Excel: Связанные выпадающие списки
SERGE_BLIZNUK
Оргомное спасибо! То, что нужно.
Оргомное спасибо! То, что нужно.
q1wed
Цитата:
Описываю ситуацию: раз в две недели собирается примерно 120 одинаковых по структуре отчетов, необходимо их собрать в единое целое, проанализировать информацию, внести корректировку и разослать обратно. Проблема в том что, сейчас приходиться вносить изменения в исходных файлах, а при таком их количестве - сущее наказание, я ищу решение как все объединить, изменить прямо в общей таблице, снова разобрать на составляющие, но со сделанными изменениями. Заранее море благодарности))
Цитата:
Ну тогда, если хочешь помощи, максимально подробно описывай свою ситуацию, что пробовал и что не подходит.
Описываю ситуацию: раз в две недели собирается примерно 120 одинаковых по структуре отчетов, необходимо их собрать в единое целое, проанализировать информацию, внести корректировку и разослать обратно. Проблема в том что, сейчас приходиться вносить изменения в исходных файлах, а при таком их количестве - сущее наказание, я ищу решение как все объединить, изменить прямо в общей таблице, снова разобрать на составляющие, но со сделанными изменениями. Заранее море благодарности))
haruspik
Думаю, без конкретики тут не обойтись...
Думаю, без конкретики тут не обойтись...
haruspik
делай раз: открываешь исходный файл, Ctrl+A, затем Ctrl+C
делай два: переходишь в общий файл, Ctrl+V
Цикл повторить n раз, где n - количество файлов с данными.
На выходе получишь один общий файл, в котором сможешь спокойно работать.)))))
Ну разве не ответ? По твоему рассказу ответ получается исключительный!
делай раз: открываешь исходный файл, Ctrl+A, затем Ctrl+C
делай два: переходишь в общий файл, Ctrl+V
Цикл повторить n раз, где n - количество файлов с данными.
На выходе получишь один общий файл, в котором сможешь спокойно работать.)))))
Ну разве не ответ? По твоему рассказу ответ получается исключительный!
Добрый день, Господа..Я правильно понял, что выпадающий список в ячейке может ссылаться только на значения в пределе одного листа? Если нет, то как сделать правильно ссылку? Спасибо
Добавлено:
В общем можно, если у ссылаемых списков есть название. Тем не менее - можно ли сделать путем простого копирования данных со списком в другой лист?
Добавлено:
В общем можно, если у ссылаемых списков есть название. Тем не менее - можно ли сделать путем простого копирования данных со списком в другой лист?
У меня все работает на разных листах: справочники на одном листе, а сами списки на другом.
Pravoved90? можно http://www.planetaexcel.ru/tip.php?aid=34 способ2 - твой
Добавлено:
между прочим эту ссылку я тебе уже второй раз даю - посмотри первую страницу этой ветки
Добавлено:
между прочим эту ссылку я тебе уже второй раз даю - посмотри первую страницу этой ветки
Цитата:
способ2 - твой- спасибо, ссылочкой твоей пользуюсь. Я немного не по ней делал - не назначал имя выделенной группе, а сразу выделял диапазон вставляемых в список ячеек в меню "проверка" - оттого и не копировалось..
Помогите встать на верный путь: В разных листах есть такие столбики с идентичными значениями и выпадающими списками. Задача состоит следующем: При выборе конкретного значения из выпадающего списка в Листе1, такое же действо должно произойти в идентичной таблице в Листе2.
Вариант сделать "значение в Листе1 = значение Листе2" не подходит, поскольку на слово в Листе2 ссылается исполнение макроса - не будет работать.
Помогите написать условие, типа: если в листе1 выбрать из выпадающего списка слово "добро", то в листе2 тоже выбрать из выпадающего списка слово "добро". Спасибо.
Pravoved90
Цитата:
а я так и понял что сразу диапазон пытаешся назначить
Цитата:
почему не будет? если ты не изменил свой макрос, то условие у тебя такое стоит: If Range("M7").Value = "слово" условие идет именно на значение ячейки, а не на формулу
так что ставь
Цитата:
Цитата:
не назначал имя
а я так и понял что сразу диапазон пытаешся назначить
Цитата:
макроса - не будет работать.
почему не будет? если ты не изменил свой макрос, то условие у тебя такое стоит: If Range("M7").Value = "слово" условие идет именно на значение ячейки, а не на формулу
так что ставь
Цитата:
"значение в Листе1 = значение Листе2"
Цитата:
почему не будет?
В том и дело что не работает. Точнее макрос на слово срабатвыает только при первом изменении. Также срабатывает, если сделать по ячейке двойной клик(как для ввода слова).
По логике вещей я понимаю процесс так: Макрос срабатывает, если происходит непосредственное взаимодействие с ячейкой(или есть соотвествующий процесс в коде ).
В этом же случае значение меняется без непосредственного взаимодействия с ячейкой => макрос не видит изменения.
Вывод:
a) что-то прописать в макрос, чтобы менялся при любых изменениях
б) написать макрос на автоматическое действие по изменению ячейки под нужные условия.
Вот...
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
Предыдущая тема: Какой поставить ведеоплеер под Vista
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.