Dimitri H
Dimitri H

Reputation: 36

VB: Highlight Excel cell in worksheet

I was wondering if it was possible to create a vbs file to highlight a cell in an excel workbook.

I have an excel worksheet with multiple computer host-names, I also run a script in batch that pings each host-name in a text document. I want to call the vbs file to highlight the cell in excel if the ping result was successful. Is this possible?

Thanks!

Dimitri

Upvotes: 0

Views: 457

Answers (1)

Bill N.
Bill N.

Reputation: 218

There are plenty of ways to do this, but I must ask why you're using a batch script and a text file to ping the hostnames when you can do that right in Excel?

There are two ways to do this... one is a bit more complex and correct and the other is quick and dirty. Frankly, I recommend the quick and dirty.

Correct Way: Declare the ReadConsole & WriteConsole methods from your Windows kernel32.dll and utilize them to get the results of your ping. It's described well here:

http://visualbasic.about.com/od/learnvb6/l/bldykvb6dosa.htm

Q&D Way: Use the built-in Shell() function in VBA and pipe the output of the ping to a text file. Parse said text file and delete it when you're done.

e.g.

for each currCell in hostnameRange
   ' Ping each hostname and pipe the results to a file
   shell "ping " + currCell.value + " >> ping_result.txt"
next currCell

inFile = FreeFile()
Open "ping_result.txt" for Input as #inFile

fileBuffer = Input$(LOF(inFile ), inFile) ' Open and read the file to a buffer

for each currCell in hostnameRange
   ' Search for ping failures in the buffer
   if instr(1, fileBuffer, "could not find host " + currCell.value) = 0 then
        debug.print "Ping successful."
   end if
next currCell

Upvotes: 1

Related Questions