PDA

View Full Version : Got mail?



malik641
10-11-2006, 01:44 PM
Hey guys,

I'm using the following code to login to gmail, which works perfectly. What I want to know is how to know if there are any new emails in your inbox.

Here's the code:

Sub GMAIL(MyLogin As String, MyPass As String)
Dim ie As Object
Dim ieForm As Variant
Dim WebPage As String

Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com (http://mail.google.com/)"
ie.Visible = True
ie.Navigate WebPage
'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop
'Look for userform Form by finding test "Userform"
For Each ieForm In ie.Document.forms
'Debug.Print ieForm.innertext
If InStr(ieForm.innertext, "Username") <> 0 Then
ieForm(0) = MyLogin
ieForm(1) = MyPass

ieForm.submit
End If

Next
Set ie = Nothing
End Sub

Now, that may sound difficult....but all I need to do is be able to read the window's full caption and I'll be able to tell right away because the caption (when you have mail) is:

Gmail - Inbox(1) - Microsoft Internet Explorer

so I can just check out the caption for a number and find out how many new emails I have (if any).

Problem is, I can't find the right property to display the full window name (or seperately "Inbox(1)"). The only things I found were:

ie.Name - which turns up "Microsoft Internet Explorer"
ie.LocationName - which says "Gmail"

And others that point to website addresses or application paths.

Any ideas?
Thanks :thumb

Ken Puls
10-11-2006, 02:33 PM
Joseph,

I'm curious why you're doing this... Gmail has two cool little apps available for this sort of thing:
There is the Desktop Notifier (http://mail.google.com/mail/help/notifier/index.html), which will installs on your PC and checks your gmail for you. Pops up an alert and changes colour when you get a notif.

There is also a plugin for Firefox called the gmail notifier (https://addons.mozilla.org/firefox/173/) which installs a similar thing in Firefox. You load up Firefox, and it will pop up a little box whenever someone sends you an email.

Lastly, you can also customize your own Googel homepage at www.google.com/ig to also show a snapshot from your inbox.

Lots of ways to get at it, so why from Excel?

malik641
10-11-2006, 02:45 PM
Glad you asked Ken :)

First off, I'm going to look at those items you pointed out...they sound pretty nice.


Anyway, this is mostly outta curiosity...kinda like, "well, how does the Desktop Notifier do it?" type of thing.

I have a spreadsheet of my production and it has nice little buttons to it, like the one that executes the code I have above...and another just to open to my subscriptions page at this site....and others that have to do with my daily tasks (like hyperlinking my drawings, moving files, opening PDF files...etc)...so a good amount of my time is spent in this spreadsheet...and it's nice to have everything in one place. I'm sure this is the case with a lot of people here :) and I just want some more functionality.

Plus, I won't have an additional application running just to inform me I have mail (besides outlook, of course)...and I can check it whenever I want to....and it's just cool to know how to do in VBA :cool:

...Ever since this new job, I've been getting ideas left and right...automating everything and anything I can. I guess some of my ideas are getting a little silly, lol.

Ken Puls
10-11-2006, 02:50 PM
Okay, no worries. I totally understand the research for the point of learning. :)


I won't have an additional application running just to inform me I have mail (besides outlook, of course)
See, this is where I say that it might actually be a better idea. The notifier apps are specifically built to do this. They take the overhead out of Excel (cause that's what you're doing is adding overhead), and put them where they are built to to work efficiently. The desktop notifier is pretty slick, and only takes up as much screen real estate as any other item in the system tray. That way, also, you don't need to be looking at your Excel worksheet. You could be in Outlook, IE, windows explorer, or whatever, and the notif still pops up. :)

malik641
10-11-2006, 02:58 PM
I see your point.


The desktop notifier is pretty slick, and only takes up as much screen real estate as any other item in the system tray. That way, also, you don't need to be looking at your Excel worksheet. You could be in Outlook, IE, windows explorer, or whatever, and the notif still pops up. :)
It's funny you say this....I was thinking if there was a way I can do this too (not to interfere with any running program) :) but then I thought "now that's WAY outta my league!" :giggle

Charlize
10-12-2006, 12:54 AM
I've noticed that when you select 'file - save as' internet explorer suggests a name to save it to. In my case he proposed "Gmail - postvak in (3)" = "Gmail - Inbox (3)". So if you copy the proposed name - paste this in some cell - read contents of cell to search for (). Just an idea.

I was wondering how did your code worked for you. Tried it but no luck. Do I have to set a reference to something ?

Charlize

malik641
10-12-2006, 04:53 AM
Hey Charlize,

The code uses late binding, so no reference is necessary....what exactly is going wrong? Where's the error rising?

Unfortunately, I'm still not sure how the InternetExplorer object works (entirely) yet...as well as reading web pages through VBA...for example: I'm not sure why each "ieForm" is an array of other forms (ieForm(0) & ieForm(1))....and I haven't found decent information on how to program to web pages through VBA.


Anyway, about your idea, I like that idea...It sounds like there's underlying info about what IE would name the file (must be stored somewhere....). I'll see what I can come up with :thumb

xld
10-12-2006, 04:59 AM
Doesn't work for me either, doesn't log me in.

malik641
10-12-2006, 05:07 AM
Does Gmail say "Incorrect Username and/or password" ???

It works fine for me....

I commented out the IF statement for the Submit method....

Sub GMAIL(MyLogin As String, MyPass As String)
Dim ie As Object
Dim ULogin As Boolean
Dim ieForm As Variant
Dim WebPage As String

Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com"
ie.Visible = True
ie.Navigate WebPage
'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop
'Look for password Form by finding test "Password"
For Each ieForm In ie.Document.forms
Debug.Print ieForm.innertext
' If InStr(ieForm.innertext, "Username") <> 0 Then
' ULogin = True
' ieForm(0) = MyLogin
' ieForm(1) = MyPass
'
' ieForm.submit
' End If
Next

'If ULogin = False Then MsgBox "User is aleady logged in"
Set ie = Nothing
End Sub
And I end up with the following


Sign in to Gmail with your Account

Username:
Password:
Remember me on this computer.

I cannot access my account

And to my understanding, ieForm(0) is the Username form, and ieForm(1) is the Password form.....maybe it's different for you guys??? Try this out and could you post what it says?

Not sure if this matters...but you guys are in different countries too...

xld
10-12-2006, 05:21 AM
I get the same text, but if I uncomment, this line

ieForm(0) = MyLogin

errors.

malik641
10-12-2006, 05:26 AM
Automation error or an error on the web page itself?

And what does it say?

malik641
10-12-2006, 05:48 AM
Well this sucks. Now I'm getting the error :banghead:


"Object doesn't support this action"

at ieForm(0) = MyLogin

...back to the drawing board....

(I should've just stuck with the SendKeys method I was using...)

Charlize
10-12-2006, 06:01 AM
This is for the reading of the caption. When you've got mail the message box will show it. Had to set reference to "internet controls". This is inlogpage of gmail. Try another page to see if capturing is ok. Code must be in module.
Option Explicit
Global ie As SHDocVw.InternetExplorer
Sub testmail()
Dim ie As Object
Dim WebPage As String
Dim saving_as As Variant
Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com"
ie.Visible = True
ie.Navigate WebPage
'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop
saving_as = ie.Document.all.Item(2).innerHTML
MsgBox ("Caption of window : " & saving_as)
End Sub
Charlize

malik641
10-12-2006, 06:10 AM
Nice one Charlize :thumb that'll be just fine :)

Now how to login (again...)

malik641
10-12-2006, 06:25 AM
Hey, this also works for the caption of the window:


saving_as = ie.Document.Title

:thumb

malik641
10-12-2006, 07:36 AM
Okay guys...please tell me if this works for you:

This was after testing and testing and testing (and research and research and research)...and it worked for me...sooo

Sub GMAIL(MyLogin As String, MyPass As String)
Dim ie As Object, oDoc As Object
Dim ULogin As Boolean
Dim ieForm As Variant
Dim WebPage As String
Dim saving_as As String

Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com"

ie.Visible = True
'ie.visible = false

ie.Navigate WebPage

'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Set oDoc = ie.Document
Set ieForm = oDoc.forms(0)

ieForm(6).innerText = MyLogin
ieForm(7).innerText = MyPass
ie.Document.forms(0).Submit

Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Debug.Print ie.Document.Title
Set ie = Nothing
End Sub

xld
10-12-2006, 07:50 AM
Yeah, that worked for me also. But I don't see the point in logging in from VBA. And what happens if Google change the interface (which they will)?

malik641
10-12-2006, 07:57 AM
Why from VBA? ...why not?

lol seriously I'm just curious on how to do it, really.


And what happens if Google change the interface (which they will)?
Yeah I thought about that too....this is just a small step for this procedure of logging in. I will expand it....once I learn more about it (and I'm trying...but I don't believe that I'm finding the best info for what I want to know).


And unfortunately at this line:
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop
Debug.Print ie.Document.Title


Doesn't show what I want ("Gmail - Inbox (1)")...so for now, I replaced it with this:
Application.Wait (Now() + TimeSerial(0, 0, 3))

Debug.Print ie.Document.Title
But this is ugly coding to me...and I'll need to find an alternative method.

malik641
10-12-2006, 08:26 AM
I'm going to have to continue this later, but I came up with a way to run though the forms collection in the "ie.Document.Forms(0)":

Sub GMAIL(MyLogin As String, MyPass As String)
Dim ie As Object, oDoc As Object
Dim ieForm As Variant, form As Variant
Dim WebPage As String
Dim saving_as As String
Dim i As Integer

Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com"

ie.Visible = True
'ie.Visible = False

ie.Navigate WebPage

'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Set oDoc = ie.Document
Set ieForm = oDoc.forms(0)

For Each form In ieForm
Debug.Print form.outerHTML, i

If form.ID = "Email" Then
form.innertext = MyLogin
ElseIf form.ID = "Passwd" Then
form.innertext = MyPass
End If

i = i + 1
Next
ie.Document.forms(0).Submit

Application.Wait (Now() + TimeSerial(0, 0, 3))

Debug.Print ie.Document.Title

Set ie = Nothing
End Sub
It's not the best...but it works for now.....

Charlize
10-12-2006, 03:25 PM
This zip contains two modules. One with the gmail thing and one for using * when asking for username and password.
After saving the Title tag to a variable, a logout link is fired and ie is closed.

Run the macro "Acces_To_Gmail".

Charlize

Ken Puls
10-13-2006, 08:56 AM
Interesting...

One slight modification I would make, I think, is to avoid masking the email address entered. I do like the addition of that masking code though.

Seems to work for what you're after, Joseph. :)

malik641
10-13-2006, 09:16 AM
That masking function is nice, but for me I won't be using it...cause I just have my username and password stored in a module (cause it gets annoying to keep typing it in). But this is nice to have for future projects :) so thanks Charlize :thumb

And I'll stick with what I have now...especially cause of these lines of code:

For Each form In ieForm
Debug.Print form.outerHTML, i
If form.ID = "Email" Then
form.innertext = MyLogin
ElseIf form.ID = "Passwd" Then
form.innertext = MyPass
End If
i = i + 1
Next
So it will log you in even if Gmail changes something (at least I think it will).

I'm still not happy with this line, though:

Application.Wait (Now() + TimeSerial(0, 0, 1))
Debug.Print ie.Document.Title
For my internet connection at work, this is fine...but I would need to adjust it some for my home...or maybe another computer....and I know there has to be a better way to determine when Gmail has logged you in (which you would then fire the ie.Document.Title line).

For some reason if you do another Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE --> Loop when you submit the login and password, then fire the ie.Document.Title line, it returns the title of the previous window (before login).....so how can you tell when Gmail is finished logging in?

malik641
10-13-2006, 10:05 AM
Okay, this line will work for now to wait for the right page to load (it kinda worries me though incase there's a page that loads that doesn't have "Inbox" in it...like if the username or password was wrong...):

Do Until InStr(1, ie.Document.Title, "Inbox") <> 0
Loop

malik641
10-13-2006, 12:07 PM
I'm going to improve this...but it's what I have for now and it works so far :thumb

Sub GMAIL(MyLogin As String, MyPass As String)
Dim ie As Object, oDoc As Object
Dim blnHasMail As Boolean
Dim ieForm As Variant, form As Variant
Dim WebPage As String
Dim savingAs As String, MailItems As Variant
Dim i As Integer

Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com"

ie.Visible = False

ie.Navigate WebPage

'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

If ie.Document.Title = "Gmail" Then GoTo LoggedIn

Set oDoc = ie.Document
Set ieForm = oDoc.forms(0)

For Each form In ieForm
Debug.Print form.outerHTML, i
If form.ID = "Email" Then
form.innertext = MyLogin
ElseIf form.ID = "Passwd" Then
form.innertext = MyPass
End If
i = i + 1
Next
ie.Document.forms(0).Submit

Do Until InStr(1, ie.Document.Title, "Inbox") <> 0
Loop

LoggedIn:
savingAs = ie.Document.Title

savingAs = Replace(Replace(savingAs, "(", ""), ")", "")
MailItems = Split(savingAs, " ")

For i = LBound(MailItems) To UBound(MailItems)
If IsNumeric(MailItems(i)) Then
blnHasMail = True
Application.Visible = True
If MsgBox("You have " & MailItems(i) & " messages. Would you like to view?", _
vbYesNo) = vbYes Then
ie.Visible = True
GoTo ExitHere
End If
Exit For
End If
Next

If blnHasMail = False Then
Application.Visible = True
MsgBox "No mail."
End If

ie.Navigate "http://mail.google.com/mail/?logout&hl=en"
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

ie.Quit
Set ie = Nothing
Exit Sub

ExitHere:
ie.Visible = True
Set ie = Nothing
End Sub

Charlize
10-13-2006, 03:41 PM
After some wandering in msdn I found (maybe) another usefull thing to determine if a link is finished with loading. It's 'navigatecomplete' and 'navigatecomplete2'. Could we check if a page is loaded after a link is fired ? Haven't got the time to try something. Maybe later ?

Charlize

malik641
10-19-2006, 12:04 PM
I'm not sure how I would use that event :dunno


Anybody know how to access the lists in the webpage? This could be a better way to determine how many new mail items you may have. Not to mention it could be a very easy way to determine that the web page is completely logged in...much nicer than my Do Until Instr(1,ie.Document.Title,"Inbox") <> 0: Loop statment.

Charlize
10-25-2006, 02:16 PM
Maybe another usefull piece of code. It's not completely finished yet because I can read the subjectline of a mail but not the sender or date/time. Maybe someone else has an idea (i've also tried saving as html and other types).

Sub GetLatestGmailMails()

Dim ie As Object, oDoc As Object
Dim ULogin As Boolean
Dim ieForm As Variant
Dim WebPage As String
Dim saving_as As String
Dim i, i2 As Long
Dim sAllMail As String

Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com"

ie.Visible = True
'ie.visible = false

ie.navigate WebPage

'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Set oDoc = ie.Document
Set ieForm = oDoc.forms(0)

'ieForm(6).innerText = Loginname
ieForm(6).InnerText = ""
'maybe ask password with inputboxdk
'ieForm(7).innerText = Password
ieForm(7).InnerText = ""
ie.Document.forms(0).Submit

Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Application.Wait (Now + TimeValue("0:00:05"))

'Create a new Worksheet "GMAIL - emails"
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = "GMAIL - emails"

On Error GoTo error_handler

'Go to the simple version html
ie.navigate "http://mail.google.com/mail/?ui=html&zy=f"

Do Until ie.ReadyState = 4
Loop

Application.Wait (Now + TimeValue("0:00:05"))

i2 = 1
With ie.Document
For i = 0 To .Links.Length - 1
If Left(.Links(i).href, 28) = "http://mail.google.com/mail/" Then
sAllMail = sAllMail & .Links(i).InnerText & Chr(13)
Worksheets(Worksheets.Count).Range("A2").Offset(i2, 0).Value = .Links(i).InnerText
i2 = i2 + 1
End If
Next i
End With

ie.navigate "http://mail.google.com/mail/?logout"

Application.Wait (Now + TimeValue("0:00:05"))
'Unload Internet Explorer instance from memory before exit
ie.Quit
Set ie = Nothing
'Left out because there some rubbish in the string
'MsgBox ("Latest mails on Gmail:" & Chr(13) & Chr(13) & sAllMail)
Application.Wait (Now + TimeValue("0:00:05"))

Worksheets("GMAIL - emails").Select
With Range("A1")
.Value = "Subject of latest mails on Gmail:"
.Font.Bold = True
End With
Worksheets("GMAIL - emails").Range("A:A").Columns.AutoFit
Range("A3:A17").Select
Selection.EntireRow.Delete
Selection.End(xlDown).Select
ActiveCell.Offset(-4, 0).Range("A1:A5").Select
ActiveCell.Activate
Selection.EntireRow.Delete
Range("A1").Select
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
ie.navigate "http://mail.google.com/mail/?logout"
ie.Quit
Set ie = Nothing
End Sub
Charlize

Charlize
10-31-2006, 04:26 AM
Another possible way to go. Trying to use the table tag.

Charlize


Sub GetLatestGmailMails()
Dim ie As Object, oDoc As Object
Dim ULogin As Boolean
Dim ieForm As Variant
Dim WebPage As String
Dim saving_as As String
Dim i, i2 As Long
Dim sAllMail As String
Dim vSenders As String
Dim doc As Object, Tbl As Object
Dim DocElemsCnt As Long, BoxScoreCnt As Long, RwLen As Long
Dim TbRw As Object
Set ie = CreateObject("InternetExplorer.Application")

WebPage = "http://mail.google.com (http://mail.google.com/)"

ie.Visible = True
'ie.visible = false

ie.navigate WebPage

'Loop until IE pages is fully loaded
Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Set oDoc = ie.Document
Set ieForm = oDoc.forms(0)

'ieForm(6).innerText = Loginname
ieForm(6).innerText = ""
'maybe ask password with inputboxdk
'ieForm(7).innerText = Password
ieForm(7).innerText = ""
ie.Document.forms(0).Submit

Do Until ie.ReadyState = 4 'READYSTATE_COMPLETE
Loop

Application.Wait (Now + TimeValue("0:00:05"))

'Create a new Worksheet "GMAIL - emails"
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = "GMAIL - emails"

On Error GoTo error_handler

'Go to the simple version html
ie.navigate "http://mail.google.com/mail/?ui=html&zy=f"

Do Until ie.ReadyState = 4
Loop

Application.Wait (Now + TimeValue("0:00:05"))

'a new tryout with the table tag
Set doc = ie.Document
BoxScoreCnt = 1
For DocElemsCnt = 0 To doc.all.Length - 1
If doc.all.Item(DocElemsCnt).tagname = "TABLE" Then
Set Tbl = doc.all.Item(DocElemsCnt)
' If Left(Tbl.innertext, 1) = "" Then
' Wanted to check for a checkbox ? How ???
For RwLen = 0 To Tbl.Rows.Length - 1
Cells(65536, 1).End(xlUp).Offset(1, 0).Value = _
Tbl.Rows(RwLen).Cells(0).innerText
Cells(65536, 1).End(xlUp).Offset(1, 1).Value = _
Tbl.Rows(RwLen).Cells _
(Tbl.Rows(RwLen).Cells.Length - 1).innerText
Next RwLen
'Debug.Print k
'Cells(j, 1).Value = Tbl.innertext
BoxScoreCnt = BoxScoreCnt + 1
' End If
End If
Next DocElemsCnt
Application.Wait (Now + TimeValue("0:00:05"))
ie.navigate "http://mail.google.com/mail/?logout"
Application.Wait (Now + TimeValue("0:00:05"))
'Unload Internet Explorer instance from memory before exit
ie.Quit
Set ie = Nothing

Application.Wait (Now + TimeValue("0:00:05"))

Worksheets("GMAIL - emails").Select
' B18 contains a list of the messages. How to strip the above two lines ???
' make a list of possible senders to split the list up and/or ad a - between name
' and subject
vSenders = Range("B18").Value
Worksheets("GMAIL - emails").Range("A:Z").ClearContents
Application.DisplayAlerts = False
Worksheets("GMAIL - emails").Delete

MsgBox ("Latest mails on Gmail:" & Chr(13) & Chr(13) & vSenders)
Application.DisplayAlerts = True
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
ie.navigate "http://mail.google.com/mail/?logout"
ie.Quit
Set ie = Nothing
End Sub

malik641
02-13-2007, 03:47 PM
Check this out :)

Make sure you have installed the most current version of MSXML:
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1&displaylang=en

In VBA, set a reference to "Microsoft XML, v6.0".

Also make sure you have signed into Gmail once before:

Run this and check it out:
Option Explicit

Const docPath As String = "http://mail.google.com/mail/feed/atom"
Public Sub GetEmailCount_GMAIL()
' Reads the xml file from GMAIL and returns the integer
' of new emails (unread)
Dim xmlDoc As DOMDocument
Dim xmlTopNode As IXMLDOMNode
Dim strEmailCount As String
' Load the document.
Set xmlDoc = New DOMDocument
xmlDoc.Load docPath '& "GMAIL XML.xml"
Do
DoEvents
Loop Until xmlDoc.readyState = 4
Set xmlTopNode = xmlDoc.documentElement
strEmailCount = GetNodeValue(xmlTopNode, "fullcount", "???")
MsgBox "You have " & strEmailCount & " new emails."
End Sub

Private Function GetNodeValue(ByVal start_at_node As IXMLDOMNode, _
ByVal node_name As String, _
Optional ByVal default_value As String = "") As String
' Return the node's value.
Dim value_node As IXMLDOMNode
Set value_node = start_at_node.selectSingleNode(".//" & node_name)
If value_node Is Nothing Then
GetNodeValue = default_value
Else
GetNodeValue = value_node.Text
End If
End Function
Function thanks to InformIT (http://www.informit.com/articles/article.asp?p=25084&redir=1&rl=1)'s tutorial. :thumb

Way cool :cool: this opens a lot of doors now :yes

dansam
02-17-2007, 12:53 AM
Hi ,
And how to Use a web query with this ? I mean I want to log on to g-mail using this code and then use a web query of the INBOX page like I found an example of Breaking News in excel from the kb entries ?

So is there a way ?

malik641
02-17-2007, 12:02 PM
Hey dansam,

I'm not sure if I understand exactly what you're looking for. But if what I think you're trying to do is correct, then you don't need code to do that (unless you wanted a code example).

You can create a web query in excel and go to the Gmail site and click the yellow arrow next to the Inbox table. You should receive the info from your inbox in an excel web query table.

The reason I say "should" is because while trying to test it (3 times) my Excel instance froze up while trying to load the Gmail page. Nothing would close the Excel instance except Restarting the computer. I'll try later, but I'm sorry I can't give you a more complete answer at the moment.....but based on my Excel instincts, I say "Yes, it is possible...I just don't know how yet..."

dansam
02-18-2007, 05:21 AM
Hi malik,
yes you are right but when I open gmail.com from an excel web qurey there are'nt any yellow arrows I found but when I open other websites they have !!
SO what is the reason ?