TRANSPOSE() & MMULT() – two important Excel spreadsheet functions for matrix manipulations


This is a tutorial introducing two important matrix manipulation spreadsheet functions in Excel: the matrix transposition function TRANSPOSE() and the matrix multiplication function MMULT(). These functions are a bit harder to use than the regular spreadsheet functions in the sense that the result is a matrix and a matrix cell range is treated by the program as a unity (you cannot change the formula since you cannot operate on a single cell). There are some…


Playing Sounds in Excel Using VBA – part #2


This section explains how to create a compound sound effect from elementary sounds. In the first example (two macros), the sound is played in a loop which is a native internal loop within the “PlaySound” function (using the flag option: SND_LOOP = &H8). A second function (the “Beep” function) creates a tone generator with adjustable frequency and play time. The Beep function is also used in a fourth macro, creating a sound which goes…


Playing Sounds in Excel Using VBA – part #1


This tutorial is an introduction to VBA sound playing macros in Excel. The sound effects can be used in various scientific and engineering models or in games. It first shows the general syntax of a sound playing macro and few sources of downloading free .wav sound files. The first demo macro plays a short sound a single time and the second macro plays a series of three sounds. In order…


Near-Exponential VBA Conversion


The macro in this tutorial creates a near exponential variable conversion to be used for very large dynamic range input data entry . If for instance, we have to adjust a parameter from 1 to 1 million we can either make a spin button which can go from 1 to 1 million in unity steps (which would take for ever), or implement an exponential scheme. We would like an exponential series of powers of…


Creating, Sizing, Translating and Rotating 2D Shapes in Excel 2007


Most of the models on this blog are designed for Excel 2003 or earlier versions. Sometimes however, Excel 2007 or 2010 are the only versions available even though they might be far slower when running these models. This presentation is an introduction to Excel 2007 and it was suggested to me by one of my readers. [sociallocker] [/sociallocker]


Easy Zoom – Chart Axis Scaling Using VBA


In certain models we need to be able to change the scale of the chart axes function of the result of a simulation. Excel charts do have auto-scaling as a default option but sometimes the scaling values we get are not what we need. Another reason against using auto-scaling is that during the time the model runs, the scale self-adjusts and it gives an ever changing, distorted view of the results….


A Family of Speedometers in Excel


Hi guys, by popular demand, this is a file containing five different animated speedometers and a tachometer (rpm-meter). I can recognize two models: a Toyota Camry and a Ford Crown Victoria. They work great. The rest I am not sure what they are, I would appreciate if you tell me. Just leave a comment. The model works in all versions of Excel. Cheers, George [sociallocker][/sociallocker]


A Virtual Joystick – How Can You Make That ? – tutorial


Hello everybody, this is a tutorial in which a virtual  Excel joystick controlled by mouse movements on a scatter chart has been demonstrated . While in operation, a macro updates the coordinates of the pointer in two spreadsheet cells. The two coordinates are then incorporated in formulas which limit the range of motion of the joystick. Just like a real device the stick head movement is confined within a square (with a side…


Creating a Digital Clock #1 – sprite generation


Hi guys, this is part #1 of a tutorial showing how to generate sprites used in a digital clock model. Sprites are typically simplified images (usually two-dimensional) which are used to replace complex but remote 3D-objects in an image. When an object is far away from the viewer a three-dimensional representation is not necessary since the eye cannot see all the details, therefore the object is replaced with a much simple object…