Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 След.
Не работает вставка данных, если копирование внутри листа происходит.
 
Ребят, подскажите в чем причина, если копирую данные внутри листа и пытаюсь вставить на этот же лист, то вставка не работает?

если копирую из "внешней среды" все гуд.

пример кода
Код
Private Sub Worksheet_Change(ByVal rg As Range)
  Dim Nv, Ov, Lv
  If Intersect(rg, Range("O:O", "S:T")) Is Nothing Or rg.Count > 1 Then Exit Sub
  If Len(rg) = 0 Then Exit Sub
  Application.EnableEvents = False:  Nv = rg:  Application.Undo:  Ov = rg
  If Ov = Nv Then rg = "": Application.EnableEvents = True: Exit Sub
  If Len(Ov) = 0 Then
    rg = Nv
  Else
    Lv = NvInOv(CStr(Nv), Ov): If Lv = False Then rg = rg & ";" & Nv Else rg = Lv
  End If
  Application.EnableEvents = True
End Sub
 
 
Function NvInOv(Nv$, Ov)
  Dim v, i&
  v = Split(Ov, ";"): NvInOv = False
  For i = LBound(v) To UBound(v)
    If v(i) = Nv Then
      v(i) = Empty: NvInOv = Replace(Join(v, ";"), ";;", ";"): v = Split(NvInOv, ";")
      If v(UBound(v)) = "" Then NvInOv = Left(NvInOv, Len(NvInOv) - 1)
      If Left(NvInOv, 1) = ";" Then NvInOv = Right(NvInOv, Len(NvInOv) - 1)
      Exit Function
    End If
  Next
End Function

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim myRange As Range
    Set myRange = Worksheets("Заявка на подключение").Range("A:O")

    If Application.Intersect(Target, myRange) Is Nothing Then
    Application.CellDragAndDrop = False
  
    Else
     Application.CellDragAndDrop = True
  
 End If

 End Sub
 
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Not Intersect(Target, Range("M:T")) Is Nothing Then Cancel = True

End Sub
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
справилась:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim myRange As Range
 Set myRange = Worksheets("Çàÿâêà íà ïîäêëþ÷åíèå").Range("O:R")

 If Application.Intersect(Target, myRange) Is Nothing Then
  Application.CellDragAndDrop = True
  
 Else
  Application.CellDragAndDrop = False
  
 End If
 
 End Sub
 
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("O:R")) Is Nothing Then Cancel = True

End Sub
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
нет...все же актуально
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
сама справилась..

может кому нужно будет:
https://www.extendoffice.com/documents/excel/4289-excel-disable-cut-copy-paste.html
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Цитата
Который? Я всего лишь дал ссылки, где рассматривались подобные проблемы. В простейшем случае используется обработка события листа SelectionChange с кодом
я вас перепутала ..вы просто участвовали в переписке..пример был такой
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Андрей VG, так дело то в диапазоне..а не в листе..как мне диапазон задать?
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
поправила..но он все равно не блокирует вставку
VBA. Копирование диапазонов
 
поправила..но он все равно вставляет(((
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Андрей VG, да я использовала Ваш пример...я не понимаю почему не работает..он же простецкий..((

Можете посмотреть пример((
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Ігор Гончаренко, что-то про это не знала:
Цитата
б) если в ячейку скопировать другую ячейку то из ячейки источника копируется ВСЕ, в том числе копируется проверка данных для, и если в исходной проверки не было, то из в ячейки, в которую скопировали данные, "жившее" там условие проверки данных сносится. новая ячейка становится копией ячейки-источника (копируются данные, форматы, проверки и пр.)
но конечно надо было подумать.

все верно..вопрос в этом
Цитата
как запретить копирование данных в определенный диапазон
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Может я не понятно объясняю, попробую еще раз:
на данный момент в предложенном примере в файле, вписать данные нельзя, но вставить по средствам копирования и вставки можно.
нужно как-то сделать так, чтобы вставить значения в указанные  ячейки было нельзя.
Изменено: Lilo_255 - 9 Ноя 2017 16:47:17
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Ігор Гончаренко, если использовать этот макрос, то не работает накопление в ячейке. можно выбрать только одно значение в выпадающем списке.
А возможность "множественного" выбора отсутствует.
Изменено: Lilo_255 - 9 Ноя 2017 14:32:42
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Ігор Гончаренко, так ввести нельзя... а копи паст можно))
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Ігор Гончаренко,прошу прощения, все же полный диапазон, который выделен зеленым:  Q, R, S, T.
Наверное, надо было написать Range("O:R") :)
В файле все так. Но нужно сделать так, чтобы у пользователя не было возможности вставить и ввести свои какие-то значения, а только выбрать их из выпадающего списка.
Изменено: Lilo_255 - 9 Ноя 2017 16:47:02
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
ребят я нашла пример на сайте http://www.excelworld.ru/forum/2-22969-1 написала Manyasha..но не пойму как он работает..хотяяяя

Код
Sub Merge_Cell_With_Format()
Dim rRange As Range, rMrgRange As Range, wsTempSh As Worksheet, wsActSh As Worksheet
Application.ScreenUpdating = False: Application.DisplayAlerts = False
Set wsActSh = ActiveSheet: Set wsTempSh = Sheets.Add(, Sheets(Sheets.Count)): wsTempSh.Name = "Áðàêîçÿáóëà_âîò_òàê_ñàì_â_øîêå"
wsActSh.Activate
Set rRange = Selection: rRange.Copy wsTempSh.Range(rRange.Address)
Set rMrgRange = wsTempSh.Range(rRange.Address)
rMrgRange.Merge: rMrgRange.Copy: rRange.PasteSpecial xlPasteFormats: wsTempSh.Delete
Set wsActSh = Nothing: Set wsTempSh = Nothing: Set rMrgRange = Nothing: Set rRange = Nothing
Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub
Изменено: Lilo_255 - 9 Ноя 2017 14:04:12
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
хотела просто блокировку поставить макросом..но после ввода макрос падает и все всеравно вставляется..не выход это..и еще сломался выпадающий список в ячейке...он не работает-нет его.. сломала я все..эх
Изменено: Lilo_255 - 9 Ноя 2017 13:36:24
Накопление значений в ячейке. Как избежать удаления записей из выпадающего списка
 
Всем огромное спасибо))
Заблокировать вставку и ввод данных. Открыть доступ только выбору значений из выпадающего списка
 
Ребят, подскажите, пожалуйста, как сделать так, чтобы пользователь не смог ни ввести данные ни вставить в диапазон O:P, (полностью столбцы) только смог выбрать из выпадающего списка значения?

Пример во вложении.
Зеленым выделила то, что необходимо заблокировать для вставки и ввода.
Накопление значений в ячейке. Как избежать удаления записей из выпадающего списка
 
Ігор Гончаренко,пасибо большое!
Все работает! То, что нужно было.

Огромное спасибо)))
Накопление значений в ячейке. Как избежать удаления записей из выпадающего списка
 
Ребятттт?(
Накопление значений в ячейке. Как избежать удаления записей из выпадающего списка
 
Коллеги, подскажите пожалуйста, сделала по примеру выпадающий список с накоплением.

Если поочередно выбирать данные выпадающем списке, то они через точку с запятой перечисляются в ячейке.
А как прописать так, если выбираешь то значение которое уже есть в ячейке, то оно из ячейки удаляется.
То есть если ты выбираешь то значение, которое было выбрано раньше, то оно удаляется из ячейки.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Range("C15:C18")) Is Nothing And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        newVal = Target
        Application.Undo
        oldval = Target
        If Len(oldval) <> 0 And oldval <> newVal Then
            Target = Target & ";" & newVal
        Else
            Target = newVal
        End If
        If Len(newVal) = 0 Then Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
Пример во вложении. Макрос на Лист2 (Лист1), лист самый первый. желтым выделена ячейка для примера.
Как в рамках выделенного диапазона определить столбец в котором нужно изменить данные
 
Пытливый, спасибо большое за понятные комментарии и разъяснения!!!
Как в рамках выделенного диапазона определить столбец в котором нужно изменить данные
 
Пытливый,спасибо я разобралась..вот так нужно
Код
For Each cCell In ActiveWindow.RangeSelection.columns(1)
Изменено: Lilo_255 - 31 Окт 2017 16:30:18
Как в рамках выделенного диапазона определить столбец в котором нужно изменить данные
 
Пытливый, упала ошибка
Как в рамках выделенного диапазона определить столбец в котором нужно изменить данные
 
Пытливый, так, не очень понятно, а мне нужен дополнительный цикл

Код
For each 

я вот так написала

Код
Sub Кнопка2_Щелчок()
Dim cCell As Range
For Each cCell In ActiveWindow.RangeSelection.column(1)
Application.CutCopyMode = False
Selection.Hyperlinks.Delete
Selection.NumberFormat = "General"
Selection.Value = Selection.Value
     
Next
 
End Sub

но наверное это бред

Изменено: Lilo_255 - 31 Окт 2017 16:16:27
Как в рамках выделенного диапазона определить столбец в котором нужно изменить данные
 
Пытливый, да только по первому...таааак..сейчас попробую
Как в рамках выделенного диапазона определить столбец в котором нужно изменить данные
 
Ребят, научите работать с выделенным диапазоном.

Есть задача, с множеством условий, мне нужно понять как задавать условие в рамках выделенного диапазона(диапазон динамический).

Пример:

Пользователь выделяет диапазон, нажимает на кнопку "поехали" в первом столбце выделенного диапазона должны удалиться гиперссылки и данные должны преобразоваться в текст, я написала так:
Код
Sub Кнопка2_Щелчок()
Dim cCell As Range
For Each cCell In ActiveWindow.RangeSelection
Application.CutCopyMode = False
Selection.Hyperlinks.Delete
Selection.NumberFormat = "General"
Selection.Value = Selection.Value
    
Next

End Sub
но тут нет ограничения работы только в первом столбце он работает по всему выделенному диапазону, как мне сделать, чтобы цикл отработал только по выделенному диапазону первого столбца?

Пример прикрепляю, модуль 5
Открыть окно вставки гиперссылки макросом
 
Подскажите пожалуйста, как вызвать окно вставки гиперссылки макросом, что-то типо при нажатии на кнопку открыть окно вставки гиперссылки
Можно ли снять блокировку по одному столбцу если заблокирован весь лист
 
Так, а можно как-то открыть макросом работу с гиперссылкой.

Объясняю, у меня для работы с файлом есть разграничения по правам редактирования...и вот нужно чтобы несколько человек могли работать с гиперссылкам
Можно ли снять блокировку по одному столбцу если заблокирован весь лист
 
Коллеги, у меня заблокирован весь лист, но мне нужно при определенных условиях снять защиту с одного столбца..

Можно ли как-то написать типо  Worksheets("лист 2017").Columns("Н").Unprotect Password:="987"
Страницы: 1 2 3 4 5 6 7 8 След.
Наверх