get information from email into excel

deviation

Board Regular
Joined
Dec 17, 2004
Messages
171
Hello all,

I have searched the board for awhile now and I am unable to locate anything that is similar to my situation..

I have an excel file that generates an email... (other users will use this).

Now what I would like to do is search my inbox for the messages (they all have the same subject line).. and import the messages into excel (preferrably into a userform) but to import into an excel sheet would be acceptable as well (I think this would be the easiest option)

Right now the email that is generated by the sendmail macro creates a table and enters the information in it (this could be modified if necessary)

Name: Smoe, Joe
field2: Number
Field3: data

etc (there are 18 rows in the table and 2 columns)

i would like to extract the data from the email and place it all on one row in an excel sheet (looping thru the inbox for each message)..

any suggestions?

Thanks in advance for your help
 
Hello deviation,

I almost have a solution for this, most of the work is done. As you've got this solved, I can still post it if you'd like. Sorry I didn't message you earlier to let you know, been really busy. If you don't want me to post it, can you post how you solved it?
 
Upvote 0

Excel Facts

Excel Wisdom
Using a mouse in Excel is the work equivalent of wearing a lanyard when you first get to college
Okay, guess it's getting the better of me, I'll post my code anyway...




<font face=Tahoma New><SPAN style="color:#00007F">Option</SPAN> <SPAN style="color:#00007F">Explicit</SPAN>

<SPAN style="color:#00007F">Sub</SPAN> GetEmailDataPlz()
    
    <SPAN style="color:#007F00">'requires reference (Tools | References) to:</SPAN>
    <SPAN style="color:#007F00">'  Microsoft Outlook xx.0 Object Library</SPAN>
    <SPAN style="color:#007F00">'where xx is your version number.  11=ol2003, 10=ol2002, etc.</SPAN>
    
    <SPAN style="color:#00007F">Dim</SPAN> OL <SPAN style="color:#00007F">As</SPAN> Outlook.Application
    <SPAN style="color:#00007F">Dim</SPAN> OLinbox <SPAN style="color:#00007F">As</SPAN> Outlook.MAPIFolder
    <SPAN style="color:#00007F">Dim</SPAN> OLmsg <SPAN style="color:#00007F">As</SPAN> Outlook.MailItem
    <SPAN style="color:#00007F">Dim</SPAN> wb <SPAN style="color:#00007F">As</SPAN> Workbook
    <SPAN style="color:#00007F">Dim</SPAN> ws <SPAN style="color:#00007F">As</SPAN> Worksheet, TmpWs <SPAN style="color:#00007F">As</SPAN> Worksheet
    <SPAN style="color:#00007F">Dim</SPAN> bWork <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>
    <SPAN style="color:#00007F">Dim</SPAN> Cnt <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
    <SPAN style="color:#00007F">Dim</SPAN> strSubject <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
    
    <SPAN style="color:#00007F">If</SPAN> ActiveWorkbook <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN>
        MsgBox "There needs to be an active workbook!", vbInformation
        <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
    <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
    
    <SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">Resume</SPAN> <SPAN style="color:#00007F">Next</SPAN>
    
    <SPAN style="color:#00007F">Set</SPAN> OL = GetObject(, "Outlook.Application")
    <SPAN style="color:#00007F">If</SPAN> Err <> 0 <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Set</SPAN> OL = CreateObject("Outlook.Application")
    <SPAN style="color:#00007F">If</SPAN> OL <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN>
        MsgBox "Outlook could not be accessed!", vbInformation
        <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
    <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
    
    <SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> 0
    
    Application.DisplayAlerts = <SPAN style="color:#00007F">False</SPAN>
    Application.EnableEvents = <SPAN style="color:#00007F">False</SPAN>
    Application.ScreenUpdating = <SPAN style="color:#00007F">False</SPAN>
    
    <SPAN style="color:#00007F">Set</SPAN> wb = ActiveWorkbook
    <SPAN style="color:#00007F">Set</SPAN> ws = wb.Worksheets.Add
    ws.Name = "TempInfo"
    
    strSubject = "ENTER SUBJECT HERE" <SPAN style="color:#007F00">'****!!!!****</SPAN>
    
<SPAN style="color:#007F00">'    Set OLinbox = OL.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> OLinbox = OL.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    Cnt = 1
    
    <SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> OLmsg <SPAN style="color:#00007F">In</SPAN> OLinbox.Items
        
        <SPAN style="color:#00007F">If</SPAN> OLmsg.Subject = str<SPAN style="color:#00007F">Sub</SPAN>ject <SPAN style="color:#00007F">Then</SPAN>
            
            <SPAN style="color:#00007F">Set</SPAN> TmpWs = wb.Worksheets.Add(after:=wb.Worksheets(wb.Worksheets.Count))
            ws.Cells(Cnt, 1).Value = OLmsg.Body
            ParseCell ws.Cells(Cnt, 1), TmpWs
            TmpWs.Name = OLmsg.SenderName
            Cnt = Cnt + 1
            bWork = <SPAN style="color:#00007F">True</SPAN>
            
        <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
        
    <SPAN style="color:#00007F">Next</SPAN> OLmsg
    
    ws.Delete
    <SPAN style="color:#00007F">Set</SPAN> OL = <SPAN style="color:#00007F">Nothing</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> OLinbox = <SPAN style="color:#00007F">Nothing</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> OLmsg = <SPAN style="color:#00007F">Nothing</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> wb = <SPAN style="color:#00007F">Nothing</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> ws = <SPAN style="color:#00007F">Nothing</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> TmpWs = <SPAN style="color:#00007F">Nothing</SPAN>
    
    Application.DisplayAlerts = <SPAN style="color:#00007F">True</SPAN>
    Application.EnableEvents = <SPAN style="color:#00007F">True</SPAN>
    Application.ScreenUpdating = <SPAN style="color:#00007F">True</SPAN>
    
    MsgBox IIf(bWork, "Complete!", "No emails processed.")
    
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>

<SPAN style="color:#00007F">Sub</SPAN> ParseCell(celRef <SPAN style="color:#00007F">As</SPAN> Range, <SPAN style="color:#00007F">Optional</SPAN> NewWs <SPAN style="color:#00007F">As</SPAN> Worksheet)

    <SPAN style="color:#00007F">Dim</SPAN> NewRow <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">New</SPAN> Collection, NewCol <SPAN style="color:#00007F">As</SPAN> New Collection
    <SPAN style="color:#00007F">Dim</SPAN> i <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, n <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, Pos <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
    <SPAN style="color:#00007F">Dim</SPAN> Arr() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>, Tmp() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
    <SPAN style="color:#00007F">Dim</SPAN> bStart <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>, bRow <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>
    <SPAN style="color:#00007F">Dim</SPAN> TmpStr <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
    <SPAN style="color:#00007F">Dim</SPAN> MyVal <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>, TmpVal <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>, iElm <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>
    
    n = 1
    Pos = 1
    bRow = <SPAN style="color:#00007F">True</SPAN>
    TmpVal = celRef.Value
    MyVal = celRef.Value
    
    <SPAN style="color:#00007F">For</SPAN> i = 1 <SPAN style="color:#00007F">To</SPAN> Len(MyVal)
    
        <SPAN style="color:#00007F">If</SPAN> Asc(Mid(celRef.Value, i, 1)) = 9 <SPAN style="color:#00007F">Then</SPAN>
        
            <SPAN style="color:#00007F">If</SPAN> bRow <SPAN style="color:#00007F">Then</SPAN>
            
                TmpVal = <SPAN style="color:#00007F">CStr</SPAN>(WorksheetFunction.Clean(Mid(MyVal, Pos, i - Pos)))
                NewRow.Add TmpVal, TmpVal
                bStart = <SPAN style="color:#00007F">True</SPAN>
                bRow = <SPAN style="color:#00007F">False</SPAN>
                
            <SPAN style="color:#00007F">Else</SPAN>
            
                TmpVal = <SPAN style="color:#00007F">CStr</SPAN>(WorksheetFunction.Clean(Mid(MyVal, Pos, i - Pos)))
                NewCol.Add TmpVal, TmpVal
                
            <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
            
        <SPAN style="color:#00007F">ElseIf</SPAN> Asc(Mid(MyVal, i, 1)) = 13 <SPAN style="color:#00007F">Then</SPAN>
        
            bRow = <SPAN style="color:#00007F">True</SPAN>
            bStart = <SPAN style="color:#00007F">True</SPAN>
            
        <SPAN style="color:#00007F">ElseIf</SPAN> bStart = <SPAN style="color:#00007F">True</SPAN> <SPAN style="color:#00007F">Then</SPAN>
        
            Pos = i
            bStart = <SPAN style="color:#00007F">False</SPAN>
            
        <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
        
    <SPAN style="color:#00007F">Next</SPAN> i
    
    <SPAN style="color:#00007F">If</SPAN> NewWs <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Set</SPAN> NewWs = Worksheets.Add
    n = 1
    
    <SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> iElm <SPAN style="color:#00007F">In</SPAN> NewRow
        NewWs.Cells(n, 1).Value = iElm
        n = n + 1
    <SPAN style="color:#00007F">Next</SPAN> iElm
    
    n = 1
    
    <SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> iElm <SPAN style="color:#00007F">In</SPAN> NewCol
        NewWs.Cells(n, 2).Value = iElm
        n = n + 1
    <SPAN style="color:#00007F">Next</SPAN> iElm
    
    <SPAN style="color:#00007F">Set</SPAN> NewRow = <SPAN style="color:#00007F">Nothing</SPAN>
    <SPAN style="color:#00007F">Set</SPAN> NewCol = <SPAN style="color:#00007F">Nothing</SPAN>
    
<SPAN style="color:#00007F">End</SPAN> Sub</FONT>




Note that if you have more than one sender with more than one email with the specified subject line in your inbox, you will need to deal with that as it's not dealt with above.
 
Upvote 0
My solution was a comprimise in the original email macro (now sends as text). The get mail macro also is limited becuase I had to specify the fields to look for.

I would like to explore you version a bit more since it seems to be a broader capture that I mght be able to use more than what I currently am using.

Couple of problems I ran into..

1 I have fixed
Code:
strSubject = "ENTER SUBJECT HERE" '****!!!!****
    
'    Set OLinbox = OL.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    Set OLinbox = OL.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    Cnt = 1
    
    For Each OLmsg In OLinbox.Items
        
If OLmsg.Subject = strSubject Then

The subject, although somewhat static does have some dynamic properties to it as well (mainly date).. so I changed to

Code:
 If OLmsg.Subject Like "*PARTIAL SUBJECT HERE*" Then

2 I am getting an error on
Code:
 TmpWs.Name = OLmsg.SenderName

Error Msg:

Run-time error '1004'
While renaming a sheet or chart you used an invalid name. try one of the following:

1. make sure the name you entered does not exceed 31 characters (I believe this is the cause.. our email names are formated as "FirstName LastName -- Position Title & Location (I am sending an email to myself and my sender name is 42 characters long (including spaces))

I tried
Code:
 Left (OLmsg.SenderName, 30)
This fixed that error but showed another one.. if more than one message exists from the same sender (which is highly likely).

I think it best in this situation to 'dump' to a preexisting sheet in a datatable format.

That would eliminate that portion of the error

Next issue

I removed all but one message from my inbox and ran the macro. It runs thru and shows the msgbox "Complete" however there is no data in the sheet that was created?

I don't want to make a hugh amount of work for you.. but I haven't seen anything on the board simliar to this so it may be helpful for others..

I am looking thru the code to detemine any areas I am able to locate that may be "tweaked", but I operate with limited knowledge here :) .. I would like to work thru this with you since you are the author of the above macro.
 
Upvote 0
BTW here is my solution (based off the post I referenced at beginning of this thread).

Send Email Porton (please note this is generated from a userform) (Filed Headers have been changed from original to 'Field#")
Sub Sendmail()

'Dimension variables
Dim oOutlookApp As Object, oOutlookMessage As Object
Dim oFSObj As Object, oFSTextStream As Object
Dim rngeSend As Range, strHTMLBody As String, strTempFilePath As String
Dim myLastRow As Long
Dim bodyText As String
Dim SigString As String
Dim Signature As String

'Create an instance of Outlook (or use existing instance if it already exists
Set oOutlookApp = CreateObject("Outlook.Application")

'Create a mail item
Set oOutlookMessage = oOutlookApp.CreateItem(0)

With oOutlookMessage
.To = "someemail@somewhere.com"
.Subject = "Subject: " & Format(Now, "mmmm dd, yyyy") _
& " --- " & TextBox1.value & " (" & TextBox2.value & ")"

bodyText = _
"First Line of Message here Then date " _
& DTPicker1.value & vbCrLf & vbCrLf & "Field1: " & TextBox1.value & _
vbCrLf & "Field2: " & TextBox2.value & vbCrLf & "Field3: " & _
TextBox3.value & vbCrLf & "Field4: " & ComboBox1.value & vbCrLf & _
"Field5: " & ComboBox2.value & vbCrLf & "Field6: " & ComboBox3.value & _
vbCrLf & "Field7: " & ComboBox4.value & vbCrLf & _
"Field8: " & DTPicker1.value & vbCrLf & "Field9: " & _
DTPicker2.value & vbCrLf & "Field10: " & ComboBox5.value & vbCrLf _
& vbCrLf & "Field11: " & TextBox11.value & vbCrLf & vbCrLf & _
"Field12: " & TextBox12.value & vbCrLf & vbCrLf & _
"Field13: " & TextBox13.value & vbCrLf & "Field14: " & _
TextBox14.value

.Body = bodyText 'Put all the information in the email

End With

oOutlookMessage.Display

End Sub

Read Email Protion ( All items have been changed to match SendMail posted)

Option Explicit

Sub GetSepEmail()
Dim OutlookApp As Object
Dim OA_NameSpace As Object
Dim OA_Folder As Object
Dim OA_MailItem As Object

Dim ws As Worksheet

Dim Created As Boolean

Dim NextRecord As Long

Application.ScreenUpdating = False

Set ws = Workbooks.Add(xlWorksheet).Sheets(1)

ws.[A1] = "Field1"
ws.[B1] = "Field2"
ws.[C1] = "Field3"
ws.[D1] = "Field4"
ws.[E1] = "Field5"
ws.[F1] = "Field6"
ws.[G1] = "Field7"
ws.[H1] = "Field8"
ws.[I1] = "Field9"
ws.[J1] = "Field10"
ws.[K1] = "Field11"
ws.[L1] = "Field12"
ws.[M1] = "Field13"
ws.[N1] = "Field14"

NextRecord = 2

On Error Resume Next
Set OutlookApp = GetObject(, "Outlook.Application")
If OutlookApp Is Nothing Then
Set OutlookApp = CreateObject("Outlook.Application")
Created = True
If OutlookApp Is Nothing Then
MsgBox "Unable to start Outlook."
Exit Sub
End If
End If
On Error GoTo 0

Set OA_NameSpace = OutlookApp.GetNamespace("MAPI")
Set OA_Folder = OA_NameSpace.GetDefaultFolder(6)

OA_Folder.Items.Sort "Received", True

For Each OA_MailItem In OA_Folder.Items
If OA_MailItem Like "*SUBJECT*" Then
Dim OrderInfo As Variant

OrderInfo = GrabInfo(OA_MailItem.Body)

If IsArray(OrderInfo) Then
ws.Range(Cells(NextRecord, 1), Cells(NextRecord, 14)) = OrderInfo
NextRecord = NextRecord + 1
End If
End If
Next

If Created Then OutlookApp.Quit

Application.ScreenUpdating = True

Set OA_Folder = Nothing
Set OA_NameSpace = Nothing
Set OutlookApp = Nothing
End Sub

Private Function GrabInfo(message As String) As Variant
Dim tmpInfo(13) As String

Dim f As Integer

Const TMPFILE As String = "C:\Documents and Settings\" & Environ("username") & "\outlook_extraction.tmp"

If message = vbNullString Then GrabInfo = vbNullString: Exit Function

f = FreeFile

Open TMPFILE For Output As #f
Write #f, message
Close #f

f = FreeFile

Open TMPFILE For Input As #f

Do While Not EOF(f)
Dim tmpLine As String

Line Input #f, tmpLine

If InStr(1, tmpLine, ":") Then
Select Case UCase(Left(tmpLine, InStr(1, tmpLine, ":") - 1))
Case "FIELD1": tmpInfo(0) = SplitString(tmpLine, ":")
Case "FIELD2": tmpInfo(1) = SplitString(tmpLine, ":")
Case "FIELD3": tmpInfo(2) = SplitString(tmpLine, ":")
Case "FIELD4": tmpInfo(3) = SplitString(tmpLine, ":")
Case "FIELD5": tmpInfo(4) = SplitString(tmpLine, ":")
Case "FIELD6": tmpInfo(5) = SplitString(tmpLine, ":")
Case "FIELD7": tmpInfo(6) = SplitString(tmpLine, ":")
Case "FIELD8": tmpInfo(7) = SplitString(tmpLine, ":")
Case "FIELD9": tmpInfo(8) = SplitString(tmpLine, ":")
Case "FIELD10": tmpInfo(9) = SplitString(tmpLine, ":")
Case "FIELD11": tmpInfo(10) = SplitString(tmpLine, ":")
Case "FIELD12": tmpInfo(11) = SplitString(tmpLine, ":")
Case "FIELD13": tmpInfo(12) = SplitString(tmpLine, ":")
Case "FIELD14": tmpInfo(13) = SplitString(tmpLine, ":")
End Select
End If
Loop

Close #f

Kill TMPFILE

GrabInfo = tmpInfo
End Function

Private Function SplitString(value As String, delimeter As String) As String
SplitString = Trim(Mid(value, InStr(1, value, delimeter) + 2, Len(value) - InStr(1, value, delimeter)))
End Function
 
Upvote 0
Thanks for posting your solution. It's always good to get this stuff on the board so others can see how things were done. :)

The sheet naming convention is up to you. I don't think it's needed, but could be adapted if you like. I am really interested in what you did when you removed all but one message from your inbox. Did you step through your code with F8 to see what was happening? Try that and see what you come up with.

As far as creativity goes, your solution is very nice and I like it very much. From a practical perspective, I'd have to vote for mine, as it uses less overhead and without the temporary files. I don't necessarily like the looping in mine, and we could actually go away from it if you'd like (for thte most part) by parsing the string with the Split function, using Chr(9) as our delimiter.

By the way, what version of Excel are you running?
 
Upvote 0
I too vote for your method.. one it's more dynamic than mine.. and less overhead is always good.

Version of Excel is in my signature Excel 2003 on two OS's XPProSP2 and Win2k.

I did try to step thru the code when I removed all but the one message but it did a forever loop in the parse sub.

The sheet tempsheet has the information in cell A1 (only) and looks like


Filed1:

Data1

Filed2:

Data2

Etc.

There are two boxes (unrecognized characters I presume after each text entry (tab characters possibly).

The Parse sub does pick up the information in the cell A1 as CelRef and displays CelRef="Field1:□□□□Data1□□□□Field2:□□□□Data2(...)"

But it nevers seems to pass the First Iff statement in the parse sub
Code:
If Asc(Mid(celRef.value, i, 1)) = 9 Then

So it loops there for a bit.. I held F8 for about two minutes to see if it would get out of it while stepping thru.. then just ended the routine.
 
Upvote 0
Okay.. it took a few minutes but I finally held that F8 key long enough and it does exit that loop eventually.

Since it appears that no data passes the
Code:
If Asc(Mid(celRef.value, i, 1)) = 9 Then
then it exits the loop without getting data into the named sheet
 
Upvote 0
Hmm. When I used the email you posted earlier, to send an HTML table in email format, I used Outlook 2003 and those are the characters I got back on my results. Through (evidently) different methods - something different - you are getting different characters. We can change that to handle all of those odd ball characters.

Characters 1 through 31 will give you those little squares. All we need to do is test for anyone of those Asc (ASCII) characters and we should be good to go. So try changing this line ..

Code:
If Asc(Mid(celRef.Value, i, 1)) = 9 Then

.. with this code ..

Code:
If Asc(Mid(celRef.Value, i, 1)) >= 1 And Asc(Mid(celRef.Value, i, 1)) <= 31 Then

If this takes too long, we may be able to parse the data into a string array and iterate through it. That would be faster than going through each individual character. That is, if performance is an issue for you.
 
Upvote 0
got a little further thru the code

now I get an erro here
Code:
NewCol.Add TmpVal, TmpVal

Eventually we'll work thru this :)

I too am using Outlook 2003 (Office 2003) running thru exchange server 2000 in windows 2000 (currently)
 
Upvote 0
here's a possible solution just to make sure that we are on the same age with the procedures

You can send me the workbook you are using.. and I can try it out on my side to see if maybe (and more than likely the fact), in my effort to get this working I changed something that make it not function

daniel AT facelessrecords DOT com
 
Upvote 0

Forum statistics

Threads
1,215,755
Messages
6,126,683
Members
449,328
Latest member
easperhe29

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top