+ Reply to Thread
Results 1 to 5 of 5

Help with vba, if record exists overwrite ?

Hybrid View

  1. #1
    Registered User
    Join Date
    09-16-2010
    Location
    NY
    MS-Off Ver
    Excel 2003
    Posts
    50

    Help with vba, if record exists overwrite ?

    I have this small excel sheet im using to add projects to a hidden project tab.
    right now no matter what i put in it will add no problems.

    but what i would like for it to do is.. if the IPS number is found, to overwrite the row, if not found just add it.

    can anyone help with this ?

    i have attached the xls.
    Attached Files Attached Files

  2. #2
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & 2010
    Posts
    23,259

    Re: Help with vba, if record exists overwrite ?

    Hello vsantoro,

    Here is the amended macro for the "Add" button. This change has been added to the attached workbook.
    Private Sub cmdAdd_Click()
    
      Dim iRow As Long
      Dim Rng As Range
      Dim ws As Worksheet
      
        Set ws = Worksheets("Project_DB")
    
       'find  first empty row in database
        iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    
       'get all the database entires
        Set Rng = ws.Range("A2", ws.Cells(iRow, "A"))
    
       'check for a part number
        If Trim(Me.txtPart.Value) = "" Then
          Me.txtPart.SetFocus
          MsgBox "Please enter IPS Number"
          Exit Sub
        End If
    
       'Check if part exits in database
        If Not Rng.Find(txtPart, , xlValues, xlWhole, xlByRows, xlPrevious, False) Is Nothing Then
          MsgBox "Part Number '" & txtPart & "' has already been entered."
          Exit Sub
        End If
       
       'copy the data to the database
        ws.Cells(iRow, 1).Value = Me.txtPart.Value
        ws.Cells(iRow, 2).Value = Me.txtLoc.Value
        ws.Cells(iRow, 3).Value = Me.txtDate.Value
    
       'clear the data
        Me.txtPart.Value = ""
        Me.txtLoc.Value = ""
        Me.txtDate.Value = ""
        Me.txtPart.SetFocus
    
    End Sub
    Attached Files Attached Files
    Sincerely,
    Leith Ross

    Remember To Do the Following....

    1. Use code tags. Place [CODE] before the first line of code and [/CODE] after the last line of code.
    2. Thank those who have helped you by clicking the Star below the post.
    3. Please mark your post [SOLVED] if it has been answered satisfactorily.


    Old Scottish Proverb...
    Luathaid gu deanamh maille! (Rushing causes delays!)

  3. #3
    Registered User
    Join Date
    09-16-2010
    Location
    NY
    MS-Off Ver
    Excel 2003
    Posts
    50

    Re: Help with vba, if record exists overwrite ?

    Thank you Leith. I see now when I add a project it says it has already been entered which is great, but is there a way to now overwrite that row in the project_DB tab with the new data ?

  4. #4
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & 2010
    Posts
    23,259

    Re: Help with vba, if record exists overwrite ?

    Hello vsantoro,

    The macro will now ask if you want to overwrite the record. Here is the code. It has been added to the attached workbook also.
    Private Sub cmdAdd_Click()
    
      Dim Answer As Integer
      Dim iRow As Long
      Dim Msg As String
      Dim PartCell As Range
      Dim Rng As Range
      Dim RngEnd As Range
      Dim ws As Worksheet
      
        Set ws = Worksheets("Project_DB")
    
       'get all the database entires
        Set Rng = ws.Range("A2")
        Set RngEnd = ws.Cells(Rows.Count, "A").End(xlUp)
        Set Rng = IIf(RngEnd.Row < Rng.Row, Rng, ws.Range(Rng, RngEnd))
    
       'check for a part number
        If Trim(Me.txtPart.Value) = "" Then
          Me.txtPart.SetFocus
          MsgBox "Please enter IPS Number"
          Exit Sub
        End If
    
       'Check if part exits in database
        Set PartCell = Rng.Find(txtPart, , xlValues, xlWhole, xlByRows, xlPrevious, False)
          If Not PartCell Is Nothing Then
            Msg = "Part Number '" & txtPart & "' has already been entered." & vbCrLf _
                & "Do wish to overwrite this record?"
            Answer = MsgBox(Msg, vbQuestion + vbYesNo)
            If Answer = vbNo Then Exit Sub
            iRow = PartCell.Row
          Else
            iRow = RngEnd.Row + 1
          End If
       
       'copy the data to the database
        ws.Cells(iRow, 1).Value = Me.txtPart.Value
        ws.Cells(iRow, 2).Value = Me.txtLoc.Value
        ws.Cells(iRow, 3).Value = Me.txtDate.Value
    
       'clear the data
        Me.txtPart.Value = ""
        Me.txtLoc.Value = ""
        Me.txtDate.Value = ""
        Me.txtPart.SetFocus
    
    End Sub
    Attached Files Attached Files

  5. #5
    Registered User
    Join Date
    09-16-2010
    Location
    NY
    MS-Off Ver
    Excel 2003
    Posts
    50

    Re: Help with vba, if record exists overwrite ?

    Thank you very much for your help.

+ 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