+ Reply to Thread
Results 1 to 3 of 3

Write data in Last Row-column "B"

  1. #1
    maperalia
    Guest

    Write data in Last Row-column "B"

    I have I macro that write a database into the last row starting in the column
    A (see program below).
    However, I have a table that has the column A already filled out with
    numbers. Therefore, I would like my macro to start writing the last empty row
    in the column B.
    Could you please tell me what are the modifications I need to do to my macro
    in order to make it work in the way I mentioned above.

    Thanks in advance.
    Maperalia


    'Start Program

    '********************************
    'CREATE DATABASE

    Sub Create database()
    Dim sr As Range
    Dim dr As Range
    Dim dwb As Workbook
    Dim Lr As Long
    Dim hl As String

    'Where:
    'Lr = Last Row
    'dr = destination Range
    'dwb = destination WorkBook
    'sr = source range
    '***************************************************
    '***************************************************
    'OPEN THE FILE TO ARCHIVE INFORMATION

    Application.ScreenUpdating = False

    If bIsBookOpen("Database.xls") Then
    Set dwb = Workbooks("Database.xls")
    Else

    Set dwb = Workbooks.Open("C:\Database\Database.xls")
    End If

    '*******************************************
    'WRITE THE DATABASE

    Application.ScreenUpdating = False

    Lr = LastRow(dwb.Worksheets("Database")) + 1
    Set sr = ThisWorkbook.Worksheets("Form").Range("V2:AE2")

    '***********************************
    'If Shear Log is Open
    On Error Resume Next
    dwb.Close True
    SetAttr "C:\Test\Database.xls", vbNormal
    Set dwb = Workbooks.Open("C:\Test\Database.xls")
    On Error GoTo 0

    '***********************************

    Sheets("Database").Select

    Set dr = dwb.Worksheets("Database").Range("A" & Lr)
    sr.Copy
    dr.PasteSpecial xlPasteValues, , False, False
    Application.CutCopyMode = False

    '********************************************************
    dwb.Close True
    Application.ScreenUpdating = False

    End sub

    '********END CREATE DATABASE*****************************

    Function bIsBookOpen(ByRef szBookName As String) As Boolean

    Application.ScreenUpdating = False

    On Error Resume Next
    bIsBookOpen = Not (Application.Workbooks(szBookName) Is Nothing)

    End Function

    Function LastRow(sh As Worksheet)

    Application.ScreenUpdating = False

    On Error Resume Next
    LastRow = sh.Cells.Find(What:="*", Lookat:=xlPart, LookIn:=xlFormulas,
    SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
    On Error GoTo 0
    End Function

  2. #2
    Tom Ogilvy
    Guest

    RE: Write data in Last Row-column "B"

    Function LastRow(sh As Worksheet)

    Application.ScreenUpdating = False

    On Error Resume Next
    LastRow = sh.Cells.Find(What:="*", Lookat:=xlPart, LookIn:=xlFormulas,
    SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
    On Error GoTo 0
    End Function

    would become

    Function LastRow(sh As Worksheet)
    LastRow = sh.cells(rows.count,"B").End(xlup).Row
    End Function

    --
    Regards,
    Tom Ogilvy


    "maperalia" wrote:

    > I have I macro that write a database into the last row starting in the column
    > A (see program below).
    > However, I have a table that has the column A already filled out with
    > numbers. Therefore, I would like my macro to start writing the last empty row
    > in the column B.
    > Could you please tell me what are the modifications I need to do to my macro
    > in order to make it work in the way I mentioned above.
    >
    > Thanks in advance.
    > Maperalia
    >
    >
    > 'Start Program
    >
    > '********************************
    > 'CREATE DATABASE
    >
    > Sub Create database()
    > Dim sr As Range
    > Dim dr As Range
    > Dim dwb As Workbook
    > Dim Lr As Long
    > Dim hl As String
    >
    > 'Where:
    > 'Lr = Last Row
    > 'dr = destination Range
    > 'dwb = destination WorkBook
    > 'sr = source range
    > '***************************************************
    > '***************************************************
    > 'OPEN THE FILE TO ARCHIVE INFORMATION
    >
    > Application.ScreenUpdating = False
    >
    > If bIsBookOpen("Database.xls") Then
    > Set dwb = Workbooks("Database.xls")
    > Else
    >
    > Set dwb = Workbooks.Open("C:\Database\Database.xls")
    > End If
    >
    > '*******************************************
    > 'WRITE THE DATABASE
    >
    > Application.ScreenUpdating = False
    >
    > Lr = LastRow(dwb.Worksheets("Database")) + 1
    > Set sr = ThisWorkbook.Worksheets("Form").Range("V2:AE2")
    >
    > '***********************************
    > 'If Shear Log is Open
    > On Error Resume Next
    > dwb.Close True
    > SetAttr "C:\Test\Database.xls", vbNormal
    > Set dwb = Workbooks.Open("C:\Test\Database.xls")
    > On Error GoTo 0
    >
    > '***********************************
    >
    > Sheets("Database").Select
    >
    > Set dr = dwb.Worksheets("Database").Range("A" & Lr)
    > sr.Copy
    > dr.PasteSpecial xlPasteValues, , False, False
    > Application.CutCopyMode = False
    >
    > '********************************************************
    > dwb.Close True
    > Application.ScreenUpdating = False
    >
    > End sub
    >
    > '********END CREATE DATABASE*****************************
    >
    > Function bIsBookOpen(ByRef szBookName As String) As Boolean
    >
    > Application.ScreenUpdating = False
    >
    > On Error Resume Next
    > bIsBookOpen = Not (Application.Workbooks(szBookName) Is Nothing)
    >
    > End Function
    >
    > Function LastRow(sh As Worksheet)
    >
    > Application.ScreenUpdating = False
    >
    > On Error Resume Next
    > LastRow = sh.Cells.Find(What:="*", Lookat:=xlPart, LookIn:=xlFormulas,
    > SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
    > On Error GoTo 0
    > End Function


  3. #3
    maperalia
    Guest

    RE: Write data in Last Row-column "B"

    Tom;
    Thank you very much. It is working WORDEFULL!!!...

    Kind regards.
    Maperalia

    "Tom Ogilvy" wrote:

    > Function LastRow(sh As Worksheet)
    >
    > Application.ScreenUpdating = False
    >
    > On Error Resume Next
    > LastRow = sh.Cells.Find(What:="*", Lookat:=xlPart, LookIn:=xlFormulas,
    > SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
    > On Error GoTo 0
    > End Function
    >
    > would become
    >
    > Function LastRow(sh As Worksheet)
    > LastRow = sh.cells(rows.count,"B").End(xlup).Row
    > End Function
    >
    > --
    > Regards,
    > Tom Ogilvy
    >
    >
    > "maperalia" wrote:
    >
    > > I have I macro that write a database into the last row starting in the column
    > > A (see program below).
    > > However, I have a table that has the column A already filled out with
    > > numbers. Therefore, I would like my macro to start writing the last empty row
    > > in the column B.
    > > Could you please tell me what are the modifications I need to do to my macro
    > > in order to make it work in the way I mentioned above.
    > >
    > > Thanks in advance.
    > > Maperalia
    > >
    > >
    > > 'Start Program
    > >
    > > '********************************
    > > 'CREATE DATABASE
    > >
    > > Sub Create database()
    > > Dim sr As Range
    > > Dim dr As Range
    > > Dim dwb As Workbook
    > > Dim Lr As Long
    > > Dim hl As String
    > >
    > > 'Where:
    > > 'Lr = Last Row
    > > 'dr = destination Range
    > > 'dwb = destination WorkBook
    > > 'sr = source range
    > > '***************************************************
    > > '***************************************************
    > > 'OPEN THE FILE TO ARCHIVE INFORMATION
    > >
    > > Application.ScreenUpdating = False
    > >
    > > If bIsBookOpen("Database.xls") Then
    > > Set dwb = Workbooks("Database.xls")
    > > Else
    > >
    > > Set dwb = Workbooks.Open("C:\Database\Database.xls")
    > > End If
    > >
    > > '*******************************************
    > > 'WRITE THE DATABASE
    > >
    > > Application.ScreenUpdating = False
    > >
    > > Lr = LastRow(dwb.Worksheets("Database")) + 1
    > > Set sr = ThisWorkbook.Worksheets("Form").Range("V2:AE2")
    > >
    > > '***********************************
    > > 'If Shear Log is Open
    > > On Error Resume Next
    > > dwb.Close True
    > > SetAttr "C:\Test\Database.xls", vbNormal
    > > Set dwb = Workbooks.Open("C:\Test\Database.xls")
    > > On Error GoTo 0
    > >
    > > '***********************************
    > >
    > > Sheets("Database").Select
    > >
    > > Set dr = dwb.Worksheets("Database").Range("A" & Lr)
    > > sr.Copy
    > > dr.PasteSpecial xlPasteValues, , False, False
    > > Application.CutCopyMode = False
    > >
    > > '********************************************************
    > > dwb.Close True
    > > Application.ScreenUpdating = False
    > >
    > > End sub
    > >
    > > '********END CREATE DATABASE*****************************
    > >
    > > Function bIsBookOpen(ByRef szBookName As String) As Boolean
    > >
    > > Application.ScreenUpdating = False
    > >
    > > On Error Resume Next
    > > bIsBookOpen = Not (Application.Workbooks(szBookName) Is Nothing)
    > >
    > > End Function
    > >
    > > Function LastRow(sh As Worksheet)
    > >
    > > Application.ScreenUpdating = False
    > >
    > > On Error Resume Next
    > > LastRow = sh.Cells.Find(What:="*", Lookat:=xlPart, LookIn:=xlFormulas,
    > > SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
    > > On Error GoTo 0
    > > End Function


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1