Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / September 2007

Tip: Looking for answers? Try searching our database.

Runtime Error 6028: The Range Cannot be Deleted? HELP!

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Dan the Man - 16 Sep 2007 23:12 GMT
Don't know if anyone can help me with this or not.

I have a Userform on my spreadsheet for inputting "comments" into. This form
also has a variety of function buttons on it which work just fine, with the
exception of 2 of those buttons (Post Comments-Button 3, and Update
Comments-Button 4).

Whenever I attempt to "click" on either Post or Update Comments, I receive
the following popup: "Run Time Error 6028: The Range Cannot Be Deleted". I'm
not exactly sure what this message means, or how to rectify the problem.
This code exists in my "Word" VB editor. The line of code (for each command
button) that highlights in "yellow" (where I suspect is the problem) is:

mytable.Cell(nrows + 1, 1) = TextBox1.Text

If someone could give me an idea of what I need to look for in order to
attack this problem I would appreciate it. I'm a "noobie" to all of this so
I'm sure that doesn't help. Below is the full code information.

Dan

--------------------------------------------------------------------------------------------------------
Public nrows As Integer
Public nr As Integer
Public incr As Integer
Public mytable As Object

Private Sub cmbNext_Click()
nr = nr + 1
cmbNext.Visible = True
cmbPrevious.Visible = True
If nr >= nrows Then
   cmbNext.Visible = False
End If
With mytable
   TextBox2.Text = Left(.Cell(nr + 1, 2), Len(.Cell(nr + 1, 2)) - 2)
   TextBox1.Text = Left(.Cell(nr + 1, 1), Len(.Cell(nr + 1, 1)) - 2)
End With
End Sub
Private Sub cmbPrevious_Click()
nr = nr - 1
cmbNext.Visible = True
cmbPrevious.Visible = True
If nr = 1 Then
   cmbPrevious.Visible = False
End If
With mytable
   TextBox2.Text = Left(.Cell(nr + 1, 2), Len(.Cell(nr + 1, 2)) - 2)
   TextBox1.Text = Left(.Cell(nr + 1, 1), Len(.Cell(nr + 1, 1)) - 2)
End With
End Sub

Private Sub cmbPrintComment_Click()

Documents.Add DocumentType:=wdNewBlankDocument

Selection.TypeText Text:="Client Name:  " & TextBox3.Text
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText Text:="Date of Progress Note:  " & TextBox2.Text
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText Text:=TextBox1.Text

Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
       wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
       ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
       False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
       PrintZoomPaperHeight:=0
     

End Sub

Private Sub cmbPrintAll_Click()
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
       wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
       ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
       False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
       PrintZoomPaperHeight:=0
End Sub

Private Sub CommandButton11_Click()
TextBox1.Text = ""
End Sub

Private Sub UserForm_Initialize()
Set mytable = ActiveDocument.Tables(1)
With mytable
   TextBox3.Text = Left(.Cell(1, 1), Len(.Cell(1, 1)) - 2)
   TextBox2.Text = Left(.Cell(2, 2), Len(.Cell(2, 2)) - 2)
   TextBox1.Text = Left(.Cell(2, 1), Len(.Cell(2, 1)) - 2)
   nr = 1
   nrows = 0
   incr = 1
   For n = 2 To .Rows.Count
   If Len(.Cell(n, 1)) <> 2 Then
      nrows = nrows + 1
   End If
   Next n
   cmbPrevious.Visible = False
 
End With
End Sub

Private Sub CommandButton3_Click()
nrows = nrows + 1
mytable.Cell(nrows + 1, 1) = TextBox1.Text
mytable.Cell(nrows + 1, 2) = Now()
incr = 1
nr = nrows
End Sub
Private Sub CommandButton4_Click()
nrows = nr
mytable.Cell(nrows + 1, 1) = TextBox1.Text
mytable.Cell(nrows + 1, 2) = Now()
End Sub
Private Sub CommandButton5_Click()
mytable.Cell(nr + 1, 1).Row.Delete
TextBox1.Text = ""
TextBox2.Text = ""
nrows = nrows - 1
End Sub
Private Sub CommandButton8_Click()
UserForm1.hide
End Sub
Jay Freedman - 17 Sep 2007 01:44 GMT
Try modifying that line to

 mytable.Cell(nrows + 1, 1).Range.Text = TextBox1.Text

Make a similar change to all the other lines that try to assign text
to a table cell.

--
Regards,
Jay Freedman
Microsoft Word MVP        FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.

>Don't know if anyone can help me with this or not.
>
[quoted text clipped - 125 lines]
>UserForm1.hide
>End Sub
Dan the Man - 17 Sep 2007 02:26 GMT
Jay thank you for your suggestion. I get excited whenever I get new code in
the hopes that the problem will resolve. Alas, the "Runtime 6028 Error" still
occurs. Any other suggestions?

Dan

> Try modifying that line to
>
[quoted text clipped - 139 lines]
> >UserForm1.hide
> >End Sub
Jay Freedman - 17 Sep 2007 03:17 GMT
What is the nature of the document, table, and cell at the time the
userform is displayed? Is it "protected" in any way, for forms or
comments, etc.? Is there anything already in the cell?

When I try to use a macro to enter text in a cell in a document that's
protected for forms, I get error 6124, "You are not allowed to edit
this region because document protection is in effect". I'm not sure
what circumstances lead to error 6028 instead. Although a Google
search for that error number turns up several posts, I think they
confuse the issue rather than solving it.

>Jay thank you for your suggestion. I get excited whenever I get new code in
>the hopes that the problem will resolve. Alas, the "Runtime 6028 Error" still
[quoted text clipped - 145 lines]
>> >UserForm1.hide
>> >End Sub

--
Regards,
Jay Freedman
Microsoft Word MVP        FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit.
Dan the Man - 17 Sep 2007 14:00 GMT
Hi Jay:

Again, I'm new to the world of Excel and Word vba coding, so excuse my
neivity. I do not believe that the document, table, or cell at the time the
Userform is displayed is protected in any way. Below is a bit of history
about what was created and how things used to work just fine until we
modified the code. I too "Googled" the applicable Runtime Error before
posting to this group, and did not achieve results either.

I am working with Excel and Word. I have an Excel Spreadsheet, and a Macro
button on that Spreadsheet (entitled Userform Comments) which brings up a
dropdown list of names. When a name is chosen, Excel calls Word, and brings
up my Userform (which works off of Word and not Excel).

Originally I had to create the Word Documents separately in order for the
Userform to work. The modified code is great, because it "automatically"
searches to see if the Word Document already exists, and if it does not, Word
creates it. This saves me the step of creating the Word Document on my own.
So if I have a name on my Excel spreadsheet entitled: Harry Potter, the code
will create a Word Document entitled "PotterHarry.doc" (Column A of my
spreadsheet is last name, and Column B is first name). If I already have a
document created, Word and the Userform will merely open.

I also have 2 separate Excel Worksheets (within my workbook) which contain
some identical names (a worksheet containing OLD Client names and one
containing NEW Client names). The modified code attaches "_old" to a name
existing on the "OLD" spreadsheet that is duplicated on the "NEW" one (e.g.
PotterHarry.doc vs. PotterHarry_Old.doc). This way Word can create the
appropriate document, and not accidentally overwrite one for the other when a
name exists on both spreadsheets.  

The odd thing is this. The original version of the spreadsheet and Word
based Userform (where I had to create the Word Documents myself) worked
PERFECTLY. When we modified the code to allow for automatic creation of Word
documents however, the runtime error 6028 was triggered. Previous to this,
all function buttons worked just fine. The other ironic thing is this: "the
code for the Userform-where the function buttons work off of) has NOT
changed.

Code alterations were made to Excel:

Userform 3-which references the dropdown list of names on my Excel
Spreadsheet, allowing me to chose a name from a dropdown list and open the
Word based Userform.

Module 2-the code which creates the individual Word Documents for inputing
comments (using the Userform).

Code alterations were made to Word:

Module 1 "Normal"-which interacts with Excel, allowing the Userform to be
called up (again I'm a noobie so I'm not 100% as to how this code interacts
however I believe it is designed to check Word to see if a Word document has
previously been created for a particular person, or needs to be created).

The code which impacts the actual Userform interface (Userform 1) for
inputting comments has NOT changed, and thus I am perplexed as to why I am
getting the Runtime 6028 error here (the debugger only highlights the code
associated with this Userform that I previously mentioned and posted a copy
of).

Dan

> What is the nature of the document, table, and cell at the time the
> userform is displayed? Is it "protected" in any way, for forms or
[quoted text clipped - 162 lines]
> Microsoft Word MVP        FAQ: http://word.mvps.org
> Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.