Solved

Inputbox to enter column number that gets deleted

Posted on 2013-07-01
4
351 Views
Last Modified: 2013-07-05
Dear Experts:

below code prompts a user to enter a column number, this column then gets subsequently deleted on all tables (all of them have identical numbers of columns).

I would like to have a better inputbox error handling, i.e. ...

(1) just integers greater than 0 are allowed as entry
(2) If an integer greater than the maximum count of columns is entered, a msgbox should say that the number entered is greater than the max. number of columns and the inputbox is to re-appear.

Help is much appreciated. Thank you very much in advance.

Regards, Andreas

Sub AllTables_Delete_One_Column()

Dim tbl As Table
Dim ColumnNumberDelete As String
'Just numbers are allowed and the number should be between 1 and maximum count of columns)

Application.ScreenUpdating = False

ColumnNumberDelete = Inputbox("Which column number is to be deleted?", "Deletion of Column")

If ColumnNumberDelete = "" Then Exit Sub
    
For Each tbl In ActiveDocument.Tables

           tbl.Columns(ColumnNumberDelete).Delete
    
Next

End Sub

Open in new window

0
Comment
Question by:AndreasHermle
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 51

Accepted Solution

by:
Rgonzo1971 earned 350 total points
ID: 39300179
Hi,

pls examine this doc

I have created an Input user form

Regards
DelCol.doc
0
 
LVL 59

Assisted Solution

by:Chris Bottomley
Chris Bottomley earned 150 total points
ID: 39301218
It seems to me there is an implicit need to preTest all tables to find an acceptable number for the columns since ALL tables need to have that column number ... we could assume the tables are all the same size but the small amount of processing to be sure will prevent an error:

Sub AllTables_Delete_One_Column()
Dim intColCount As Integer
Dim tbl As Table
Dim ColumnNumberDelete As Variant
Dim bolOK As Boolean
'Just numbers are allowed and the number should be between 1 and maximum count of columns)

    Application.ScreenUpdating = False
' Initialise the loop control to prevent excessive column number
    intColCount = 99
    For Each tbl In ActiveDocument.Tables
        If tbl.Columns.Count < intColCount Then intColCount = tbl.Columns.Count
    Next
    bolOK = False
    Do While Not bolOK
        ColumnNumberDelete = InputBox("Which column number is to be deleted?", "Deletion of Column")
        If ColumnNumberDelete = "" Then Exit Sub
        bolOK = (IsNumeric(ColumnNumberDelete) And (ColumnNumberDelete >= 1) And (ColumnNumberDelete <= intColCount))
    Loop
    
    For Each tbl In ActiveDocument.Tables
        tbl.Columns(ColumnNumberDelete).Delete
    Next

End Sub

Open in new window


Chris
0
 

Author Comment

by:AndreasHermle
ID: 39301436
Hi Chris,

thank you very much for your post. OOOPs, I should have stated, that all of the tables have the same number of columns. I am sorry about this. Thank you very much for considering that it could be different. I will do some testing this afternoon.

Hi Rgonzo: thank you very much. I will do some testing and then let you know.

Regards, Andreas
0
 

Author Closing Comment

by:AndreasHermle
ID: 39302273
Dear both,

both codes work fine. Thank you very much for your professional help.

It is great to have both approaches, a concise code by Chris and a more 'complicated' one using an Input User Form.

Again thank you very much for your great help.

Regards, Andreas
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Do you ever need to create a 20 page Word document for some testing purpose? Are you tired of copying & pasting old boring "lorem ipsum" text over and over again, increasing font size and line space in order to make the document 20+ pages long? Look…
I would like to show you some basics you can do with Mailings in MS Word. It´s quite handy feature you can use for creating envelopes, labels, personalized letters etc. First question could be what is this feature good for? Mailing can really he…
This video teaches the viewer how to align pictures around text while keeping the text properly aligned in the document.
Office 365 is currently available in five editions. Three of them are for business use: Office 365 Business Essentials, Office 365 Business, and Office 365 Business Premium. Two of them are for home/personal use: Office 365 Home and Office 365 Perso…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question