CPU info

Haluk

Rules Violation
Joined
Oct 26, 2002
Messages
1,075
Hi all,

I used the below procedure to return the available CPU name(s) on my PC. (Win2000+Office2000)

Code:
Sub Processor()
Dim MyOBJ, Cpu, MyMsg
Set MyOBJ = GetObject("WinMgmts:").InstancesOf _
            ("Win32_Processor")
    For Each Cpu In MyOBJ
        MyMsg = MyMsg & Cpu.Name & vbCrLf
    Next
MsgBox MyMsg
End Sub

But;

1) In a similar way I tried to get the serial number of the CPU but, I couldn't get it.

2) By using "Cpu.CurrentClockSpeed" I get 466 Mhz as CPU speed where as, it is actually 600 Mhz.

I need to find the physical serial number of the PC and will be glad if someone can explain me why the procedure returned me the wrong CPU speed.

Thanks a lot and wish you a happy day to all...
 

Excel Facts

Waterfall charts in Excel?
Office 365 customers have access to Waterfall charts since late 2016. They were added to Excel 2019.
Raider said:
Hi all,

I used the below procedure to return the available CPU name(s) on my PC. (Win2000+Office2000)

Code:
Sub Processor()
Dim MyOBJ, Cpu, MyMsg
Set MyOBJ = GetObject("WinMgmts:").InstancesOf _
            ("Win32_Processor")
    For Each Cpu In MyOBJ
        MyMsg = MyMsg & Cpu.Name & vbCrLf
    Next
MsgBox MyMsg
End Sub

But;

1) In a similar way I tried to get the serial number of the CPU but, I couldn't get it.

2) By using "Cpu.CurrentClockSpeed" I get 466 Mhz as CPU speed where as, it is actually 600 Mhz.

I need to find the physical serial number of the PC and will be glad if someone can explain me why the procedure returned me the wrong CPU speed.

Thanks a lot and wish you a happy day to all...


See if this helps any........

<font face=Courier New><SPAN style="color:darkblue">Option</SPAN> <SPAN style="color:darkblue">Explicit</SPAN>

<SPAN style="color:darkblue">Sub</SPAN> ProcessorInfo()
<SPAN style="color:darkblue">Dim</SPAN> WMI <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> WQL <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> Proc <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> Procs <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>

<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">Resume</SPAN> <SPAN style="color:darkblue">Next</SPAN>
<SPAN style="color:darkblue">Set</SPAN> WMI = GetObject("winmgmts:")
<SPAN style="color:darkblue">If</SPAN> Err.Number <> 0 <SPAN style="color:darkblue">Then</SPAN>
  MsgBox "WMI NOT installed!"
<SPAN style="color:darkblue">End</SPAN> <SPAN style="color:darkblue">If</SPAN>
<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">GoTo</SPAN> 0

<SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green">'//</SPAN></SPAN></SPAN></SPAN>WQL (WMI Query Language)</SPAN>
WQL = "select * from win32_processor"

<SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green">'//</SPAN></SPAN></SPAN></SPAN>
<SPAN style="color:darkblue">Set</SPAN> Procs = WMI.ExecQuery(WQL)

<SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green">'//</SPAN></SPAN></SPAN></SPAN>
<SPAN style="color:darkblue">For</SPAN> <SPAN style="color:darkblue">Each</SPAN> Proc <SPAN style="color:darkblue">In</SPAN> Procs
  <SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green"><SPAN style="color:green">'//</SPAN></SPAN></SPAN></SPAN> get the info for each processor</SPAN>
  MsgBox Proc.getObjectText_
<SPAN style="color:darkblue">Next</SPAN>

<SPAN style="color:darkblue">Set</SPAN> WMI = <SPAN style="color:darkblue">Nothing</SPAN>
<SPAN style="color:darkblue">Set</SPAN> Procs = <SPAN style="color:darkblue">Nothing</SPAN>

<SPAN style="color:darkblue">End</SPAN> <SPAN style="color:darkblue">Sub</SPAN>
</FONT>

As for the wrong Processor speed...see above method....
I'm surprised you got a processor speed out with that syntax ??
using Cpu.CurrentClockSpeed

Check out CurrentClock Speed Vs
Max clock speed when you run the routine.

Also Look here;
http://www.xcelfiles.com/VBA_Quick5.html
 
Upvote 0
Hi Ivan,

Thank you very much for quick reply. I will check out the code you supplied and by the way, I got the CPU speed as 466 Mhz using below,

Code:
Sub SpeedOfCPU()
Dim MyOBJ, Cpu, MyMsg
Set MyOBJ = GetObject("WinMgmts:").InstancesOf _
            ("Win32_Processor")
    For Each Cpu In MyOBJ
        MyMsg = MyMsg & Cpu.CurrentClockSpeed & " Mhz" & vbCrLf
    Next
MsgBox MyMsg
End Sub

But anyway, I'll try your code for my problem.

Thank you very much for your great help.
 
Upvote 0
Oh.... :eek: apologies I forgot this was one of the properties of the
WMI_Process of which you were getting an instanceof , where as
I was using the WMI Query Language (WQL) to get the objects full text
Anyway here's listing of the processor propeties



<font face=Courier New>Sub oCPU()
<SPAN style="color:darkblue">Dim</SPAN> objWMIService <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> objItem <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> colItems <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> strComputer <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> msg <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>

<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">Resume</SPAN> <SPAN style="color:darkblue">Next</SPAN>
strComputer = "."
<SPAN style="color:darkblue">Set</SPAN> objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
<SPAN style="color:darkblue">Set</SPAN> colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)
<SPAN style="color:darkblue">For</SPAN> <SPAN style="color:darkblue">Each</SPAN> objItem <SPAN style="color:darkblue">In</SPAN> colItems
    msg = "AddressWidth: " & objItem.AddressWidth
    msg = msg & "Architecture: " & objItem.Architecture & vbCrLf
    msg = msg & "Availability: " & objItem.Availability & vbCrLf
    msg = msg & "Caption: " & objItem.Caption & vbCrLf
    msg = msg & "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode & vbCrLf
    msg = msg & "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig & vbCrLf
    msg = msg & "CpuStatus: " & objItem.CpuStatus & vbCrLf
    msg = msg & "CreationClassName: " & objItem.CreationClassName & vbCrLf
    msg = msg & "CurrentClockSpeed: " & objItem.CurrentClockSpeed & vbCrLf
    msg = msg & "CurrentVoltage: " & objItem.CurrentVoltage & vbCrLf
    msg = msg & "DataWidth: " & objItem.DataWidth & vbCrLf
    msg = msg & "Description: " & objItem.Description & vbCrLf
    msg = msg & "DeviceID: " & objItem.DeviceID & vbCrLf
    msg = msg & "ErrorCleared: " & objItem.ErrorCleared & vbCrLf
    msg = msg & "ErrorDescription: " & objItem.ErrorDescription & vbCrLf
    msg = msg & "ExtClock: " & objItem.ExtClock & vbCrLf
    msg = msg & "Family: " & objItem.Family & vbCrLf
    msg = msg & "InstallDate: " & objItem.InstallDate & vbCrLf
    msg = msg & "L2CacheSize: " & objItem.L2CacheSize & vbCrLf
    msg = msg & "L2CacheSpeed: " & objItem.L2CacheSpeed & vbCrLf
    msg = msg & "LastErrorCode: " & objItem.LastErrorCode & vbCrLf
    msg = msg & "Level: " & objItem.Level & vbCrLf
    msg = msg & "LoadPercentage: " & objItem.LoadPercentage & vbCrLf
    msg = msg & "Manufacturer: " & objItem.Manufacturer & vbCrLf
    msg = msg & "MaxClockSpeed: " & objItem.MaxClockSpeed & vbCrLf
    msg = msg & "Name: " & objItem.Name & vbCrLf
    msg = msg & "OtherFamilyDescription: " & objItem.OtherFamilyDescription & vbCrLf
    msg = msg & "PNPDeviceID: " & objItem.PNPDeviceID & vbCrLf
    msg = msg & "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities & vbCrLf
    msg = msg & "PowerManagementSupported: " & objItem.PowerManagementSupported & vbCrLf
    msg = msg & "ProcessorId: " & objItem.ProcessorId & vbCrLf
    msg = msg & "ProcessorType: " & objItem.ProcessorType & vbCrLf
    msg = msg & "Revision: " & objItem.Revision & vbCrLf
    msg = msg & "Role: " & objItem.Role & vbCrLf
    msg = msg & "SocketDesignation: " & objItem.SocketDesignation & vbCrLf
    msg = msg & "Status: " & objItem.Status & vbCrLf
    msg = msg & "StatusInfo: " & objItem.StatusInfo & vbCrLf
    msg = msg & "Stepping: " & objItem.Stepping & vbCrLf
    msg = msg & "SystemCreationClassName: " & objItem.SystemCreationClassName & vbCrLf
    msg = msg & "SystemName: " & objItem.SystemName & vbCrLf
    msg = msg & "UniqueId: " & objItem.UniqueId & vbCrLf
    msg = msg & "UpgradeMethod: " & objItem.UpgradeMethod & vbCrLf
    msg = msg & "Version: " & objItem.Version & vbCrLf
    msg = msg & "VoltageCaps: " & objItem.VoltageCaps & vbCrLf
    MsgBox msg
<SPAN style="color:darkblue">Next</SPAN>
<SPAN style="color:darkblue">End</SPAN> <SPAN style="color:darkblue">Sub</SPAN>
</FONT>
 
Upvote 0
Hi Ivan,

Thanks for the codes you've supplied. The codes you've offered gave me the same CPU speed and then I checked the processor speed from BIOS. I've seen that it's stated as 466 Mhz also, that means I should have lost my brain or forgotten to remember what kind of a CPU is installed on my PC @ office. So, the problem related with the CPU speed is over, sorry for interrupting you with that.

Related with the great information you've supplied to me, may I ask you that if the ProcessorId is the actual physical serial number of the CPU or not ?

Thank you for your GREAT help.
 
Upvote 0
Raider said:
Hi Ivan,

Thanks for the codes you've supplied. The codes you've offered gave me the same CPU speed and then I checked the processor speed from BIOS. I've seen that it's stated as 466 Mhz also, that means I should have lost my brain or forgotten to remember what kind of a CPU is installed on my PC @ office. So, the problem related with the CPU speed is over, sorry for interrupting you with that.

Related with the great information you've supplied to me, may I ask you that if the ProcessorId is the actual physical serial number of the CPU or not ?

Thank you for your GREAT help.

Yes, it should :rolleyes:
IF the OEM adhere to the standards set.....
As you maybe aware WMI stands for Windows Management Instrumentation, it is the core management-enabling technology built into Windows 2000, Windows XP, and the Windows 2003 Server family of operating systems. If you are running Windows 95 OSR 2, Windows 98 or Microsoft® Windows NT® 4.0 then look here. Based on the industry standard for Web-Based Enterprise Management (WBEM), an industry initiative to develop a standard technology for accessing management information in an enterprise environment. The implimentation is overseen by the Distributed Management Task Force - DMTF:= an organization that works with key technology vendors, including Microsoft, to lead the development, adoption, and unification of management standards and initiatives for desktop, enterprise, and Internet environments.
 
Upvote 0
Hi again Ivan,

I just can't find any words to explain how usefull the information you've supplied is.

Thank you for your GREAT help, I'm very much appreciated.
 
Upvote 0
Yes, it should :rolleyes:
IF the OEM adhere to the standards set.....
As you maybe aware WMI stands for Windows Management Instrumentation, it is the core management-enabling technology built into Windows 2000, Windows XP, and the Windows 2003 Server family of operating systems. If you are running Windows 95 OSR 2, Windows 98 or Microsoft® Windows NT® 4.0 then look here. Based on the industry standard for Web-Based Enterprise Management (WBEM), an industry initiative to develop a standard technology for accessing management information in an enterprise environment. The implimentation is overseen by the Distributed Management Task Force - DMTF:= an organization that works with key technology vendors, including Microsoft, to lead the development, adoption, and unification of management standards and initiatives for desktop, enterprise, and Internet environments.

Woops, when I quoted here in the above there should have been a link
sorry, I quoted from a page from my site which is still being worked on...ie it is not available yet......

[/quote]
 
Upvote 0
Hi again Ivan;

I'm using Win2000 @ office and as WMI is allready installed, I've no problems about that. Then, I've downloaded the related exe file from MS and after the setup procedure, I was able to run the same code on another PC @ home, which has Win98 as an OS.

Now, what I want to learn more is that, what else can we get from WMI other then using :

- instancesOf ("Win32_Processor")
- instancesOf ("Win32_ComputerSystem")

and how can we find out the parameters to be used, such as

- .Name
- .Manufacturer
- .UserName
..... etc.

For examle; as we can get info about the CPU(s) installed, can we get informations related with the MotherBoard, modem or anything similar ?

(In case of a modem, I can get the related info by by sending ATI4 and ATI3 commands by using a MSComm object in the project. But, maybe using WMI we can get these results also.)

Regards,
 
Upvote 0
MotherBoard .....something like this

<font face=Courier New>Sub MotherBoardInfo()
<SPAN style="color:darkblue">Dim</SPAN> strComputerName <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> strNameSpace <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> strClassName <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> objWMIMboard <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> objWMIService <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> objWMI_Mboards <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">Object</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> strRet <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>
<SPAN style="color:darkblue">Dim</SPAN> strRet1 <SPAN style="color:darkblue">As</SPAN> <SPAN style="color:darkblue">String</SPAN>

<SPAN style="color:green">'// All of the following codes are</SPAN>
<SPAN style="color:green">'// designed to work on the local computer.</SPAN>
<SPAN style="color:green">'// This is done by setting the value of the variable</SPAN>
<SPAN style="color:green">'// strComputer to a dot (".").</SPAN>
<SPAN style="color:green">'// To run a script against a remote computer,</SPAN>
<SPAN style="color:green">'// simply set the value of strComputer to the name of the remote computer.</SPAN>
<SPAN style="color:green">'// For example, this line of code causes code to run against a computer named MyComp:</SPAN>
<SPAN style="color:green">'// strComputer = "MyComp"</SPAN>
strComputerName = "."
strNameSpace = "root\cimv2"
strClassName = "Win32_BaseBoard"

    
<SPAN style="color:darkblue">Set</SPAN> objWMIService = GetObject("winmgmts:\\" & strComputerName & _
                        "\" & strNameSpace)
<SPAN style="color:darkblue">Set</SPAN> objWMI_Mboards = objWMIService.ExecQuery _
                        ("Select * from Win32_BaseBoard")
<SPAN style="color:darkblue">On</SPAN> <SPAN style="color:darkblue">Error</SPAN> <SPAN style="color:darkblue">Resume</SPAN> <SPAN style="color:darkblue">Next</SPAN>
<SPAN style="color:darkblue">For</SPAN> <SPAN style="color:darkblue">Each</SPAN> objWMIMboard <SPAN style="color:darkblue">In</SPAN> objWMI_Mboards
    strRet = "Caption: " & objWMIMboard.Caption & vbCr
    strRet = strRet & "ConfigOptions[] = " & objWMIMboard.ConfigOptions & vbCr
    strRet = strRet & "CreationClassName = " & objWMIMboard.CreationClassName & vbCr
    strRet = strRet & "Depth = " & objWMIMboard.Depth & vbCr
    strRet = strRet & "Description = " & objWMIMboard.Description & vbCr
    strRet = strRet & "Height = " & objWMIMboard.Height & vbCr
    strRet = strRet & "HostingBoard = " & objWMIMboard.HostingBoard & vbCr
    strRet = strRet & "HotSwappable = " & objWMIMboard.HotSwappable & vbCr
    strRet = strRet & "InstallDate = " & objWMIMboard.InstallDate & vbCr
    strRet = strRet & "Manufacturer = " & objWMIMboard.Manufacturer & vbCr
    strRet = strRet & "Model = " & objWMIMboard.Model & vbCr
    strRet = strRet & "Name = " & objWMIMboard.Name & vbCr
    strRet = strRet & "OtherIdentifyingInfo = " & objWMIMboard.OtherIdentifyingInfo & vbCr
    strRet = strRet & "PartNumber = " & objWMIMboard.PartNumber & vbCr
    strRet = strRet & "PoweredOn = " & objWMIMboard.PoweredOn & vbCr
    strRet = strRet & "Product = " & objWMIMboard.Product & vbCr
    strRet = strRet & "Removable = " & objWMIMboard.Removable & vbCr
    strRet = strRet & "Replaceable = " & objWMIMboard.Replaceable & vbCr
    strRet = strRet & "RequirementsDescription = " & objWMIMboard.RequirementsDescription & vbCr
    strRet = strRet & "RequiresDaughterBoard = " & objWMIMboard.RequiresDaughterBoard & vbCr
    strRet = strRet & "SerialNumber = " & objWMIMboard.SerialNumber & vbCr
    strRet = strRet & "SKU = " & objWMIMboard.SKU & vbCr
    strRet = strRet & "SlotLayout = " & objWMIMboard.SlotLayout & vbCr
    strRet = strRet & "SpecialRequirements = " & objWMIMboard.SpecialRequirements & vbCr
    strRet = strRet & "Status = " & objWMIMboard.Status & vbCr
    strRet = strRet & "Tag = " & objWMIMboard.Tag & vbCr
    strRet = strRet & "Version = " & objWMIMboard.Version & vbCr
    strRet = strRet & "Weight = " & objWMIMboard.Weight & vbCr
    strRet = strRet & "Width = " & objWMIMboard.Width & vbCr
        
    MsgBox strRet, vbInformation, "MotheBoard info for:= " & objWMIMboard.Description
<SPAN style="color:darkblue">Next</SPAN>

<SPAN style="color:darkblue">End</SPAN> <SPAN style="color:darkblue">Sub</SPAN>
</FONT>

This was gather via WIM Win32_BaseBoard
I got the properties from MS and just converted.
The Win32_BaseBoard WMI class represents a baseboard (also known as a motherboard or system board).

The following syntax is simplified from MOF code and includes all inherited properties.

Code:
class Win32_BaseBoard : CIM_Card	
{	
 string	Caption;
 string	ConfigOptions[];
 string	CreationClassName;
 real32	Depth;
 string	Description;
 real32	Height;
 boolean	HostingBoard;
 boolean	HotSwappable;
 datetime	InstallDate;
 string	Manufacturer;
 string	Model;
 string	Name;
 string	OtherIdentifyingInfo;
 string	PartNumber;
 boolean	PoweredOn;
 string	Product;
 boolean	Removable;
 boolean	Replaceable;
 string	RequirementsDescription;
 boolean	RequiresDaughterBoard;
string	SerialNumber;
string	SKU;
string	SlotLayout;
boolean	SpecialRequirements;
string	Status;
string	Tag;
string	Version;
real32	Weight;
real32	Width;
};

Methods
The Win32_BaseBoard class defines the following method.

Method Description
IsCompatible Not implemented.

Properties
The Win32_BaseBoard class defines the following properties.

Caption
Data type: string
Access type: Read-only

Short description (one-line string) of the object. This property is inherited from CIM_ManagedSystemElement.

ConfigOptions
Data type: string array
Access type: Read-only

Array representing the configuration of the jumpers and switches located on the base board.


As far as Modems
There are a whole host of WMI Classes
Computer system hardware Classes that represent hardware related objects.
Operating system Classes that represent operating system related objects.
Installed applications Classes that represent software related objects.
WMI service management Classes used to manage WMI.
Performance counters Classes that represent formatted and raw performance data.

eg
Win32_SerialPort

The Win32_SerialPort WMI class represents a serial port on a Windows system.

The following syntax is simplified from MOF code and includes all inherited properties.

Code:
class Win32_SerialPort : CIM_SerialController
{
  uint16 Availability;
  boolean Binary;
  uint16 Capabilities[];
  string CapabilityDescriptions[];
  string Caption;
  uint32 ConfigManagerErrorCode;
  boolean ConfigManagerUserConfig;
  string CreationClassName;
  string Description;
  string DeviceID;
  boolean ErrorCleared;
  string ErrorDescription;
  datetime InstallDate;
  uint32 LastErrorCode;
  uint32 MaxBaudRate;
  uint32 MaximumInputBufferSize;
  uint32 MaximumOutputBufferSize;
  uint32 MaxNumberControlled;
  string Name;
  boolean OSAutoDiscovered;
  string PNPDeviceID;
  uint16 PowerManagementCapabilities[];
  boolean PowerManagementSupported;
  uint16 ProtocolSupported;
  string ProviderType;
  boolean SettableBaudRate;
  boolean SettableDataBits;
  boolean SettableFlowControl;
  boolean SettableParity;
  boolean SettableParityCheck;
  boolean SettableRLSD;
  boolean SettableStopBits;
  string Status;
  uint16 StatusInfo;
  boolean Supports16BitMode;
  boolean SupportsDTRDSR;
  boolean SupportsElapsedTimeouts;
  boolean SupportsIntTimeouts;
  boolean SupportsParityCheck;
  boolean SupportsRLSD;
  boolean SupportsRTSCTS;
  boolean SupportsSpecialCharacters;
  boolean SupportsXOnXOff;
  boolean SupportsXOnXOffSet;
  string SystemCreationClassName;
  string SystemName;
  datetime TimeOfLastReset;
};

As you can see WMI encompasses a great deal - best info from MS.
But I had this handy as I'm writting this up for my Site...
 
Upvote 0

Forum statistics

Threads
1,212,927
Messages
6,110,729
Members
448,294
Latest member
jmjmjmjmjmjm

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