TheCoffeeTree
New Member
- Joined
- Mar 24, 2015
- Messages
- 1
Our company recently moved most of our files onto SharePoint in an effort to backup our files. A byproduct of this is some of the macros in place no longer work. In particular, I have one that copies and pastes a row of information (from lets call it the CM form) onto the next available row within a spreadsheet to create a central database (CM Database) holding all the inputs each time the original sheet has information put into it. This was not a problem when the CM database could be easily traced within our in-house server. I am having trouble doing the same thing for its online SharePoint location. The macro is attached below:
Sub DatabaseTransfer()
Dim SourceRange As Range
Dim DestRange As Range
Dim DestWB As Workbook
Dim DestSh As Worksheet
Dim Lr As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Change the file name (2*) and the path/file name to your file
If bIsBookOpen_RB("Case Managment Database.xlsm") Then
Set DestWB = Workbooks("Case Managment Database.xlsm")
Else
'I imagine the location of the DestWB is the issue'
Set DestWB = Workbooks.Open("M:\***\********\*********\Case Managment Forms & Database\Case Managment Database.xlsm")
End If
'Change the Source Sheet and range
Set SourceRange = ThisWorkbook.Sheets("C.M. Worksheet").Range("A101:BY101")
'Change the sheet name of the database workbook
Set DestSh = DestWB.Worksheets("Database")
Lr = LastRow(DestSh)
Set DestRange = DestSh.Range("A" & Lr + 1)
'We make DestRange the same size as SourceRange and use the Value
'property to give DestRange the same values
With SourceRange
Set DestRange = DestRange.Resize(.Rows.Count, .Columns.Count)
End With
DestRange.Value = SourceRange.Value
DestWB.Close savechanges:=True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
Function LastCol(sh As Worksheet)
On Error Resume Next
LastCol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function
Function bIsBookOpen_RB(ByRef szBookName As String) As Boolean
On Error Resume Next
bIsBookOpen_RB = Not (Application.Workbooks(szBookName) Is Nothing)
End Function
Sub DatabaseTransfer()
Dim SourceRange As Range
Dim DestRange As Range
Dim DestWB As Workbook
Dim DestSh As Worksheet
Dim Lr As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Change the file name (2*) and the path/file name to your file
If bIsBookOpen_RB("Case Managment Database.xlsm") Then
Set DestWB = Workbooks("Case Managment Database.xlsm")
Else
'I imagine the location of the DestWB is the issue'
Set DestWB = Workbooks.Open("M:\***\********\*********\Case Managment Forms & Database\Case Managment Database.xlsm")
End If
'Change the Source Sheet and range
Set SourceRange = ThisWorkbook.Sheets("C.M. Worksheet").Range("A101:BY101")
'Change the sheet name of the database workbook
Set DestSh = DestWB.Worksheets("Database")
Lr = LastRow(DestSh)
Set DestRange = DestSh.Range("A" & Lr + 1)
'We make DestRange the same size as SourceRange and use the Value
'property to give DestRange the same values
With SourceRange
Set DestRange = DestRange.Resize(.Rows.Count, .Columns.Count)
End With
DestRange.Value = SourceRange.Value
DestWB.Close savechanges:=True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
Function LastCol(sh As Worksheet)
On Error Resume Next
LastCol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function
Function bIsBookOpen_RB(ByRef szBookName As String) As Boolean
On Error Resume Next
bIsBookOpen_RB = Not (Application.Workbooks(szBookName) Is Nothing)
End Function