Solved

Create bookmark marking just part of third paragraph of, using VBA

Posted on 2014-01-15
8
289 Views
Last Modified: 2014-01-15
Dear Experts:

below macro adds a bookmark named 'Date' to the third paragraph of a specific document.

I would like to get this macro tweaked so ...
... that not the whole third paragraph gets bookmarked but just part of it, i.e. just the date (27. Sept. 2013) should be bookmarked without the paragraph mark

Date of Evaluation: 27. Sept. 2013

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

Regards, Andreas


Sub AddBookmark_Date()

Dim myDoc As Document
 
Set myDoc = Documents("Project_Sheet.docm")
 myDoc.Bookmarks.Add Name:="Date", _
 Range:=myDoc.Paragraphs(3).Range
 myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

0
Comment
Question by:AndreasHermle
  • 4
  • 2
  • 2
8 Comments
 
LVL 15

Expert Comment

by:DrTribos
ID: 39782072
Something like this might work - sorry have not been able to test
Sub AddBookmark_Date()

Dim myDoc As Document
dim rngBookMark as Range 

set rngBookMark = myDoc.Paragraphs(3).Range
rngBookMark.End = rngBookMark.End - 1

Set myDoc = Documents("Project_Sheet.docm")
 myDoc.Bookmarks.Add Name:="Date",  rngBookMark 
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

0
 
LVL 50

Expert Comment

by:Rgonzo1971
ID: 39782101
Hi,

pls try

Sub AddBookmark_Date()

Dim myDoc As Document
Dim rngBookMark As Range
Set myDoc = Documents("Project_Sheet.docm")
Set rngBmk = ActiveDocument.Paragraphs(3).Range
rngBmk.Start = InStr(1, rngBmk, ":") + rngBmk.Start + 1

myDoc.Bookmarks.Add Name:="Date", Range:=rngBmk
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

Regards
0
 

Author Comment

by:AndreasHermle
ID: 39782117
Hi DrTribos,

thank you very much for your quick help. I am afraid to tell you that the macro does not work, it is throwing an error message. Moreover I just would like the date bookmarked, i.e. in the above example '27. Sept. 2013

Thank you

Regards, Andreas
0
Secure Your Active Directory - April 20, 2017

Active Directory plays a critical role in your company’s IT infrastructure and keeping it secure in today’s hacker-infested world is a must.
Microsoft published 300+ pages of guidance, but who has the time, money, and resources to implement? Register now to find an easier way.

 

Author Comment

by:AndreasHermle
ID: 39782170
Hi Rgonzo,

thank you very much for your great help. We are almost there, the paragraph mark should not be part of the bookmark, i.e. the range should be reduced by just one character at the end. I guess this is possible.

Thank you very much in advance. Regards, Andreas
0
 

Author Comment

by:AndreasHermle
ID: 39782185
Hi Rgonzo,

found out myself how to tweak your code so that the paragraph mark is not included in the range:

Line 8
rngBmk.MoveEnd wdCharacter, -1

So no need for you to get back with a feedback.

Thank you so much for your valuable help.

Regards, Andreas
0
 
LVL 50

Accepted Solution

by:
Rgonzo1971 earned 500 total points
ID: 39782211
Hi,

I always forget MoveStart

Sub AddBookmark_Date()

Dim myDoc As Document
Dim rngBmk As Range
Set myDoc = Documents("Project_Sheet.docm")
Set rngBmk = ActiveDocument.Paragraphs(3).Range
rngBmk.MoveStart wdCharacter, InStr(1, rngBmk, ":") + 1
rngBmk.MoveEnd wdCharacter, -1
myDoc.Bookmarks.Add Name:="Date", Range:=rngBmk
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

Regards
0
 

Author Closing Comment

by:AndreasHermle
ID: 39783441
Hi Rgonzo, good  job, thank you very much for your professional help.

Regards, Andreas
0
 
LVL 15

Expert Comment

by:DrTribos
ID: 39783987
Hi Andreas,

Thanks for your fast response - sorry I could not provide a tested solution in time.
 
Just for completeness here is the same solution with errors removed. Reading on small screen and missed the date only requirement (so took more notice of the title).

At any rate I was curious as to where my errors were and hope the comments help others better understand the code as well.
Sub AddBookmark_Date2()
Dim myDoc As Document
Dim rngBookMark As Range
Set myDoc = Documents("Project_Sheet.docm")  ' Had to move this line up as my doc is used below
Set rngBookMark = myDoc.Paragraphs(3).Range
rngBookMark.End = rngBookMark.End - 1
myDoc.Bookmarks.Add "Date", rngBookMark  ' Used lazy syntax here (my untested offering was inconsistent)
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

Obviously I'm still missing the bit that finds the date.

Nice work Rgonzo  :-)
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

There is a feature provided by MS Word that lets you create an Table of Contents for your Word document automatically. To use this feature for other documents there are two steps involved,   1.  Prepare your document for a table of contents (he…
I'm writing to share my clumsy experience in using this elegant tool so you can avoid every stupid mistake I made. (I leave it to the authorities to decide if this deserves a place in the Knowledge archives.)  Now that I am on the other side of my l…
This video walks the viewer through the process of creating an MLA formatted document, as well as a bibliography with citations.
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…

713 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