View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
NickHK NickHK is offline
external usenet poster
 
Posts: 4,391
Default Routine to restore drag from- and drop to- areas/cells?

May be you can use this to determine a drag/drop operation, as such an
operation fires 2 Worksheet_Change events then the Worksheet_SelectionChange
event.
However, I can't yet diferentiate the first Worksheet_Change event for the
drag/drop from normal entry. Depending what you need to do, this may not
matter.
You will have to Application.CellDragAndDrop = True for drag/drop to be
possible

Dim Cutting As Boolean
Dim DragDropPossible As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Msg As String

With Application
Select Case .CutCopyMode
Case False
If Cutting Then
Msg = "Cut Paste"
Else
If DragDropPossible = True Then
Msg = "Drag & drop operation"
Else
Msg = "Normal Entry"
End If
End If
Case xlCopy
Msg = "Copy Paste"
Case xlCut
'Never this value in a _Change event.
'Need to check for it in _SelectionChange event
End Select
End With
MsgBox Msg

DragDropPossible = True

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cutting = (Application.CutCopyMode = xlCut)
DragDropPossible = False
End Sub

NickHK

"tskogstrom" wrote in message
oups.com...
Hi,
In the worksheet, I have cells of different formats - color,
validation, font etc and I wonder if there are any routines to restore
both cells - both the "drag from" area- and the "drop to"- area.

Maybe you can use Selection_change event to remember the "drag from"
area etc.?

I already have a subroutine what recieve the target areas from
Worksheet_change event and correct the areas (it take each cell and
check the row and column to know how the cell should be formated like,
even if I change more than one area). If I could send the two cell
areas effected in draganddrop, I could just use the same routine.

Earlier, I blocked the draganddrop with routines like:
Application.OnKey "^x"
Application.CommandBars("Edit").Controls(3).Enable d = True
Application.CellDragAndDrop = True

But CellDragAndDrop kill the content in the clipboard making the user
not to be able to paste betrween the sheets. Therefore, I try to find
another solutions.

Happy to any suggestions and if possible, code snippets ready to use
...:-)

Kind regards
tskogstrom