+ Reply to Thread
Results 1 to 6 of 6

Trapping error from Empty Dynamic Named Range

  1. #1
    Forum Contributor
    Join Date
    01-06-2004
    Location
    Carbondale CO
    Posts
    245

    Trapping error from Empty Dynamic Named Range

    Hi,
    I have a UserForm with 8 command buttons which set the RowSource for the listBox on the UserForm. The 8 RowSources are all Dynamic Named Ranges on a Worksheet.
    The problem is trapping the error that occurs when one of these Dynamic Named Ranges is empty of data. I have tried IsEmpty, IsNull, IsError, IsMissing but I can't get any of these to work. Can someone give me some direction on this one?

    Here is my current code:
    This code throws a run-time error 1004 App or Obj defined error. Debug highlights the Set Rng8......Statement.

    Private Sub CommandButton8_Click()
    Dim Msg As Integer
    Dim Rng8 As Variant
    Set Rng8 = Worksheets("DataBase").Range("FutureCatIIDB")
    If IsMissing(Rng8) Then
    Msg = MsgBox("The database you are trying to access is empty" _
    & (Chr(13)) & "Return to the DataBase Worksheet enter items." _
    & (Chr(13)) & "Each database must have at least one item.", _
    vbOK + vbInformation, "Database Empty")
    Else
    ListBox1.RowSource = "FutureCatIIDB"
    OptionButton1.Value = False
    OptionButton2.Value = False
    ListBox1.SetFocus
    End If
    End Sub
    Casey

  2. #2
    Dave Peterson
    Guest

    Re: Trapping error from Empty Dynamic Named Range

    Maybe...

    Private Sub CommandButton8_Click()
    Dim Msg As Integer
    Dim Rng8 As Range 'changed
    set Rng8 = nothing
    on error resume next
    Set Rng8 = Worksheets("DataBase").Range("FutureCatIIDB")
    on error goto 0

    if rng8 is nothing then
    msgbox "No range named Futurecatiidb on the database worksheet"
    exit sub
    end if

    if application.counta(rng8) = 0 then
    Msg = MsgBox("The database you are trying to access is empty" _
    & (Chr(13)) & "Return to the DataBase Worksheet enter items." _
    & (Chr(13)) & "Each database must have at least one item.", _
    vbOK + vbInformation, "Database Empty")
    Else
    ListBox1.RowSource = "FutureCatIIDB"
    OptionButton1.Value = False
    OptionButton2.Value = False
    ListBox1.SetFocus
    End If
    End Sub

    Casey wrote:
    >
    > Hi,
    > I have a UserForm with 8 command buttons which set the RowSource for
    > the listBox on the UserForm. The 8 RowSources are all Dynamic Named
    > Ranges on a Worksheet.
    > The problem is trapping the error that occurs when one of these Dynamic
    > Named Ranges is empty of data. I have tried IsEmpty, IsNull, IsError,
    > IsMissing but I can't get any of these to work. Can someone give me
    > some direction on this one?
    >
    > Here is my current code:
    > This code throws a run-time error 1004 App or Obj defined error. Debug
    > highlights the Set Rng8......Statement.
    >
    > Private Sub CommandButton8_Click()
    > Dim Msg As Integer
    > Dim Rng8 As Variant
    > Set Rng8 = Worksheets("DataBase").Range("FutureCatIIDB")
    > If IsMissing(Rng8) Then
    > Msg = MsgBox("The database you are trying to access is empty" _
    > & (Chr(13)) & "Return to the DataBase Worksheet enter items." _
    > & (Chr(13)) & "Each database must have at least one item.", _
    > vbOK + vbInformation, "Database Empty")
    > Else
    > ListBox1.RowSource = "FutureCatIIDB"
    > OptionButton1.Value = False
    > OptionButton2.Value = False
    > ListBox1.SetFocus
    > End If
    > End Sub
    >
    > --
    > Casey
    >
    > ------------------------------------------------------------------------
    > Casey's Profile: http://www.excelforum.com/member.php...fo&userid=4545
    > View this thread: http://www.excelforum.com/showthread...hreadid=551205


    --

    Dave Peterson

  3. #3
    Forum Contributor
    Join Date
    01-06-2004
    Location
    Carbondale CO
    Posts
    245
    Dave,
    Just what I needed, works exactly as I need it too when the Named range is empty and just as I would expect it to when the Named range has data, however I'm confused why there appears to be 2 checks on Rng8 to go through. One if Rng8 is nothing and then one if CountA (Rng8) = 0.
    Are they both necessary or were you just modeling my code so as not to confuse my tired brain?
    If they are necessary, could I ask you what part each test plays in trapping potential errors.

  4. #4
    Dave Peterson
    Guest

    Re: Trapping error from Empty Dynamic Named Range

    The first check
    if rng8 is nothing then
    Checks to see if there was an actual range named FutureCatIIDB on that
    worksheet. If that's something that could never happen, you can remove that
    check.

    The second check
    if application.counta(rng8) = 0 then
    checks to see if there is at least one cell in that range that isn't empty.

    ==
    You may want to keep the first check--just in case someone deletes the name or
    the range that the name refers to.

    Casey wrote:
    >
    > Dave,
    > Just what I needed, works exactly as I need it too when the Named range
    > is empty and just as I would expect it to when the Named range has data,
    > however I'm confused why there appears to be 2 checks on Rng8 to go
    > through. One if Rng8 is nothing and then one if CountA (Rng8) = 0.
    > Are they both necessary or were you just modeling my code so as not to
    > confuse my tired brain?
    > If they are necessary, could I ask you what part each test plays in
    > trapping potential errors.
    >
    > --
    > Casey
    >
    > ------------------------------------------------------------------------
    > Casey's Profile: http://www.excelforum.com/member.php...fo&userid=4545
    > View this thread: http://www.excelforum.com/showthread...hreadid=551205


    --

    Dave Peterson

  5. #5
    Forum Contributor
    Join Date
    01-06-2004
    Location
    Carbondale CO
    Posts
    245
    Dave,
    Thank you very much for the help and the tutorial. I really appreciate the time. I will keep both checks even though the "if rng8 is nothing then" is, as you suspected, a very remote possibility. Thanks again.

  6. #6
    Dave Peterson
    Guest

    Re: Trapping error from Empty Dynamic Named Range

    If you can think of other things to check, you may want to add them to your
    code, too.

    The stuff that is only a remote possibility will happen the hour before your
    vacation starts!

    Casey wrote:
    >
    > Dave,
    > Thank you very much for the help and the tutorial. I really appreciate
    > the time. I will keep both checks even though the "if rng8 is nothing
    > then" is, as you suspected, a very remote possibility. Thanks again.
    >
    > --
    > Casey
    >
    > ------------------------------------------------------------------------
    > Casey's Profile: http://www.excelforum.com/member.php...fo&userid=4545
    > View this thread: http://www.excelforum.com/showthread...hreadid=551205


    --

    Dave Peterson

+ 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