Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос копирования ячеек на другой лист, как исправить?
 
ЭХ)) вместо копирования диапазона, которому я так и не дал ума, пришлось копировать построчно с объединением ячеек
Код
Sheets("PL").Range("A" & rplcont).FormulaR1C1 = Sh.Range("A" & rcont).FormulaR1C1
Sheets("PL").Range("A" & rplcont & ":A" & rplcont + Sh.Range("A" & rcont).MergeArea.Rows.Cells.Count - 1).Merge
Макрос копирования ячеек на другой лист, как исправить?
 
Не совсем понял, куда эти формулы прописывать... в какие ячейки?
:(((
Макрос копирования ячеек на другой лист, как исправить?
 
в файле закомментировал почти все в модуле книги на событие изменения листа,т.к. окончательно запутался :(
Макрос копирования ячеек на другой лист, как исправить?
 
Добрый день всем!
Подскажите, добрые люди, как победить копирование данных на другой лист?
Есть диапазон, в котором несколько ячеек объединены по вертикали, и несколько не объединены.
Нужно макросом скопировать этот диапазон, и вставить на другой лист.
Я попробовал записать действия записью макросов, все срабатывает. когда то же самое сделал в своей процедуре, пишет "Изменить часть объединенной ячейки невозможно".
Как правильно копировать диапазон с объединенными ячейками?
фрагмент макроса, на котором запнулся:
Код
  Sh.Range("A" + CStr(BegRow + 1) + ":A" + CStr(EndRow - 1)).Copy
   Sheets("PL").Paste (Sheets("PL").Range("A" + CStr(BegRowPL + 1) + ":A" + CStr(BegRowPL + 1)))
диапазон простой - 1 столбец, 6 строк, из них 3 объединены...
Как отловить событие вставки/удаления строки?, при вставке строки вставлять строку и на другом листе
 
Ура! всем спасибо огромное!
Как отловить событие вставки/удаления строки?, при вставке строки вставлять строку и на другом листе
 
Добрый день!
Собственно, макрос вставки строки я честно скопипастил (в написании макросов Excel новичок...), задача лишь в том, чтобы отловить событие вставки строки на первом листе. Подскажите, куда копать?
Изменено: axelerleo - 13.07.2015 16:35:03
Как запретить ручное редактирование ячейки, но оставить программное?
 
Спасибо! получилось!
Как запретить ручное редактирование ячейки, но оставить программное?
 
Добрый день!
Я в событиях экселя не силен совсем, поэтому не серчайте...
Подскажите, уважаемые !

Значения в колонке должны подставляться макросом, но при этом нужно запретить редактирование этой колонки вручную.
Защита листа не подходит, т.к. при этом макрос также не может записать в ячейку.

что нужно дописать в макрос, чтобы, например, снять защиту с ячейки, записать, поставить обратно защиту.
Или процедура перед началом редактирования ячейки (двойной щелчок, энтер, или еще как-то), чтобы конкретную колонку запрещала редактировать...
Как ограничить выпадающий список при проверке данных?
 
Длинные наименования очень, нужно сделать так, чтобы при частичном подборе текста список выбора показывал только те строки, которые начинаются с введенного текста. надстройка эта задачу закрывает, хоть и не совсем удобно (для меня удобно, для китайцев, боюсь, будет тяжко  :D )
Как ограничить выпадающий список при проверке данных?
 
Тем, что вряд ли китайцы смогут сами настроить эту надстройку... А так - это пока что лучшее решение, однозначно.

Добавлено.
Как сделать, чтобы вышеуказанная надстройка не сохраняла изменения?
получается, после каждого добавления номенклатуры через надстройку, документ сразу сохранен, и нельзя отменить изменения...
Изменено: axelerleo - 30.06.2015 12:13:48
Как ограничить выпадающий список при проверке данных?
 
Добрый день!
Подскажите, кто может, как победить следующую задачу:
В одну таблицу подставляются значения из списка выбора (через проверку данных) из второй таблицы.  Все корректно работает, если писать наименование полностью или использовать копировать/вставить.
Собственно вопрос: как сделать, чтобы при частичном вводе текста ограничить список выбора подходящими значениями?
Например, есть
Иванов Иван
Иванов Петр
Петров Иван
Сидоров Иван
Иванов Филипп

Как при начале подбора текста в ячейку "Ива" сделать ограничение выпадающего списка
Иванов Иван
Иванов Петр
Иванов Филипп

?

В макросах пока что плаваю, бросили на амбразуру, приходится во всем на ходу разбираться:(

Добавление.
Нашел здесь на форуме ссылку на http://excelvba.ru/code/DropDownList
Но увы, это решение не подходит, т.к. файл будет отправляться за границу, а там эту настройку вряд ли кто-то будет устанавливать... Остаются только макросы
Изменено: axelerleo - 30.06.2015 09:47:27
Как избежать циклического вызова макросов при изменении ячеек?
 
Огромное спасибо!! Помогло!

А можно ли в экселе ...
вопрос не по теме удален
Изменено: axelerleo - 29.06.2015 19:20:35
Как избежать циклического вызова макросов при изменении ячеек?
 
Добрый день! Помогите, пожалуйста, разобраться! В макросах чуть более чем ноль, может, проблема решается просто...
Есть две колонки - Код и Наименование. При смене кода из второго листа через макрос подставляется наименование.
При смене наименования из второго листа должен подставляться код. Но получается бесконечное зацикливание (поменяли код, подставили наименование, поменяли наименование, подставили код, опять поменяли код, подставили наименование...)
Как этого можно избежать?

код процедур:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 2 Then
      Call on_code_change(Target) 'при изменении кода подставляем наименование
   ElseIf Target.Column = 3 Then
      Call on_name_change(Target) 'при изменении наименования подставляем код
   End If
End Sub

Sub on_code_change(ByVal Target As Range)
Dim rngFind As Excel.Range    
    'Параметры команды "Find" получены с помощью макрорекордера и изменены мной.
    'У команды "Find" нужно указывать все параметры, т.к. команда "Find"
        'связана с Excel-окном "Найти и заменить". И если не указать какой-то параметр,
        'то параметр может быть подставлен из окна "Найти и заменить" и макрос
        'может дать неправильный результат.
    'Если будет найдено, то найденной ячейке будет присвоено VBA-имя "rngFind".
        'С помощью этого имени можно воздействовать на найденную ячейку.
    ' LookAt:=xlWhole - ищется полное совпадение.
    Set rngFind = Worksheets(2).Range("A1:A900").Find(What:=Target.Text, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    
    'Если не найдено, то в переменной "rngFind" будет слово "Nothing".
    If rngFind Is Nothing Then
        MsgBox "Не найдено.", vbExclamation
        Exit Sub
    End If
    
    'Offset позволяет обратиться к нужной ячейке относительно другой ячейки.
    'Offset(0, 2) - обращение к ячейке, которая находится в той же строки, но вправо на два столбца.
    'MsgBox rngFind.Offset(0, 1).Value
    Target.Offset(0, 1).Value = rngFind.Offset(0, 1).Value
'MsgBox ("Поменяли код")
End Sub

Sub on_name_change(ByVal Target As Range)
    Dim rngFind As Excel.Range 
  
    'Параметры команды "Find" получены с помощью макрорекордера и изменены мной.
    'У команды "Find" нужно указывать все параметры, т.к. команда "Find"
        'связана с Excel-окном "Найти и заменить". И если не указать какой-то параметр,
        'то параметр может быть подставлен из окна "Найти и заменить" и макрос
        'может дать неправильный результат.
    'Если будет найдено, то найденной ячейке будет присвоено VBA-имя "rngFind".
        'С помощью этого имени можно воздействовать на найденную ячейку.
    ' LookAt:=xlWhole - ищется полное совпадение.
    Set rngFind = Worksheets(2).Range("B1:B900").Find(What:=Target.Text, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    
    'Если не найдено, то в переменной "rngFind" будет слово "Nothing".
    If rngFind Is Nothing Then
        MsgBox "Не найдено.", vbExclamation
       Exit Sub
    End If
    
    'Offset позволяет обратиться к нужной ячейке относительно другой ячейки.
    'Offset(0, 2) - обращение к ячейке, которая находится в той же строки, но вправо на два столбца.
    MsgBox rngFind.Offset(0, -1).Value
    MsgBox Target.Offset(0, -1).Value
    'Target.Offset(0, -1).Value = rngFind.Offset(0, -1).Value
End Sub
Изменено: axelerleo - 29.06.2015 17:22:18
Страницы: 1
Наверх