Tuesday, November 3, 2015

Excel hyperlink screen tip as comment

Excel cell comment tricks
Excel cell hyperlink to make comment
Excel cell hyperlink screen tip to comment
Excel cell comment without arrow
Excel cell comment cell without top-right red corner triangle

The trick is done by creating a fake/dummy/useless hyperlink that refers to nothing (this can be done only programmatically), or you can create a hyperlink that refers to the cell itself using the "insert hyperlink" dialog.

To insert a hyperlink for a given cell, right click on the cell and press " Hyperlink...".

"Insert hyperlink" dialog will popup; Press "Place in this document" button on the left side, select the sheet, edit range, and finally press "ScreenTip..." button and write your text (comment).

After applying whatever the comment you want, it will look like the following capture below.

Programmatically, a single line of code is needed to do this :)


• Maximum number of characters per hyperlink screen tip is 256 characters

• You can't add new line using dialog. This only can be done programmatically using VBA code as shown before.

• You can't customize any thing in the screen tip: dimensions (width, height), font type, font size, font color, fill color, font effects (Bold, Italic, Underline),..., etc

• Screen tip has maximum width and maximum height limits. The example below show a multi-line screentip which is done using VBA code.

This is the code to generate the last screen tip.


• Extra parameter for saving data for cell

• No connecting arrow from comment to cell (personally, I don't like the shape of the arrow)

• The cell will not have top-right red corner triangle which in sheet full of comments with small cells will look horrible

• If cell is located at the most-left of your screen, screen tip will be shown in the visible region while the comment will not.

• Once the cell is deleted, hyperlink is removed, and the screen tip also is removed. In comments, you have to delete the comment manually.

• You can assign a screen tip to number cells at once by inserting the hyperlink for this range of cells.

It is done...

Sunday, October 18, 2015

How to adhere bathroom mirror using silicon sealant


Adhere bathroom mirror using silicon sealant

Mirror silicon application

Bathroom mirror installation

Fixing frame-less mirror

The following info-graphic shows how to fix bathroom mirror using silicon sealant based on YouTube videos of AkFix, Demsun, and some reversed engineering done by me.

Video links:



Wednesday, May 27, 2015

Excel VBA: creating custom dialog (user form)

Tags: Word art in dialog sheet, Add word art to dialog sheet, Add shape to dialog sheet, Shape in dialog sheet, Rich text in dialog sheet, Add rich text in dialog sheet, Equation in dialog sheet, Add equation to dialog sheet, Add picture to dialog sheet, Picture in dialog sheet.

I am working with VBA user-forms for long long time and they unfortunately have ugly classic interface as you can see the user-form below). I also tried to solve this problem using Visual Studio, but I couldn't achieve that as I am not a professional programmer :)

I was always wondering how to create user-forms in MS Excel with nice looking controls till I discovered by accident what is called "Dialog sheets". In dialog sheet you can create a user-form assigned to workbook and add your own controls and assign macros to them. Here under, few quick steps to get it done in few minutes:

Step 1: Creation

1. Create an new workbook (or open an existing one). Right-click on any sheet tab to get a menu like in the image below

2. Click "Insert..." button, then you will get a dialog like the the one shown below

3. Select "MS Excel 5.0 Dialog" and press "OK" button. Then you will get a new sheet as shown below which has default name "Dialog1"

Step 2: Modification

1. Open the "Developer" tab, then press "Insert" button to be able to add "Form controls"

2. You can add and resize controls to get user-form like the one shown below

Step 3: Assign macros to controls

You can right-click on any control and select "Assign macro..." from the popup list.

Step 4: Calling (displaying) dialog

As an example, you can insert a "Command button" in :"Sheet1" and assign the following single-line macro to it which will display your dialog

Now you can click on the button "Display my dialog" and display the custom dialog (user-from) like magic!!!


For me, dialog sheet form is very pretty, nice look, and visually-pleasant because its controls have the native theme of the operating system (Windows 7 in my case) Windows Vista or Windows XP, but it does not support the following controls which already available in VBA user-forms:

- Tab/notebook/multi-page control to display multiple pages
- Slider control
- Frame (with sibling controls)

One of the great advantages of dialog sheets that you can insert "Objects" in them like:

- ٍShapes!!! - Image

- Visio object (drawing)
- Microsoft equation 
- Word file
- etc

The following user form created by dialog sheet contains some interesting features (guess them out)...

The following is a trick, but it is a little bit useless. You can add a dialog inside another dialog by drag copying (not by copying and pasting) the dialog sheet.


Friday, May 8, 2015

Access control MG236B wiring diagram

The following is a wiring diagram of access control system for a workshop area. 

The following electrical and electronic components are used:

- Access control with keypad & proximity cards plastic case MG236B

Schneider relay base RXZE1M4C

- Schneider 12 VDC relay 8A1126B

- SMPS I/P 110~220 VAC & O/P +12 VDC / 4.2A

- 12 VDC electromagnetic door lock

- AC door bell

Wednesday, May 6, 2015

Future city flat plan

Future city flat (apartment) plan

Cairo-Ismailia desert road

Friday, February 27, 2015

Upgrading excel text filter

The following is a VBA programming concept for implementing a text filter for MS Excel sheets. The text filter has the following features:

- Uses ActiveX controls
- Instantaneous search and update
- Search for cells that contain words even if they are not complete
- Search for words regardless the case of the word: upper case, lower case, or mixed case
- Search for words regardless the order of them
- Search words are assumed to be space delimited
- Extra spaces are not considered

This is a demonstration captures:

After searching for word "shady":

After searching for "Mohsen Shad":

Here is the code below (sorry for adding it as a capture because I don't know how export it with colored keywords):

Good appetite :)

Friday, January 30, 2015

PC serial communication with KERN 572 digital balance

In the following tutorial I will show how to make data logging for digital balance KERN 572 using Excel VBA (I will be exposed to LabView later). You probably may need this feature in cases where you are interested to measure instantaneous or average inlet/outlet/net mass flow rate for a tank or container placed on the balance. Also, you may use this feature to measure evaporation rate of certain fluid at ambient temperature. Measuring forces like lift force -for example- of an airfoil at different angles of attack. 

The first application in my work where this feature was useful was a refrigerant charging station.

The second application for which I needed this feature was measuring mass flow rate of water bleeding from a Cylindrical acrylic tank used in WBT measurement device.

The following instructions are already stated in the manual of the balance with some modifications and illustrations I have added.

5. Interface RS 232 C 

5.1 Technical Data 

ƒ8-bit ASCII Code 

ƒ1 start bit, 8 data bits, 1 stop bits, no parity bit 
ƒBaud rate adjustable to 2400, 4800, 9600 (default), and 19200 
ƒMiniature DIN plug is necessary type MP-371/C 7 
ƒWhen working with an interface correct operation is secured only if the corresponding KERN-interface-cable (max. 2 m) is used. 

5.2  Description of the jack 

3 pins are only used for communication with KERN 572 digital balance

Pin 2: transmit data

Pin 3: receive data 
Pin 5: signal ground

A prolific USB to RS 232 converter may be used for modern computers and laptops. The picture below shows SIEMENS converter cable I already used successfully. 

If you don't have the driver of this converter cable you can download here

5.4  RS 232 C Data output via interface RS 232 C 

5.4.1 General information

As a condition for the data transfer between the balance and a peripheral device (for instance printer, PC ...) both devise have to be set on the same interface parameter (for instance baud rate, parity ...).

There are 4 methods for the data output via RS 232 C:

1. Data output via PRINT-key (see 5.4.2). 

2. Data output, after having loaded the balance, by setting AUTOPRINT (see 5.4.3). 
3. Continuous data output by setting AUTOPRINT PC (see 5.4.4). 
4. Data output by transfer of remote controls (see 5.4.5) 

5.4.2 Data output via PRINT-Key

The printing process can be released by the PRINT-key. In this case the settings AUTOPRINT and AUTOPRINT PC should be deselected. 


The setting AUTOPRINT is in the PRINTER-routine, and there it can be selected or deselected. When AUTOPRINT is active the actual weighing value will be sent via the RS 232 interface when the balance has been unloaded and then loaded after having achieved 

the stability. 


The setting AUTOPRINT PC is in the PRINTER-routine, and there it can be selected or deselected. When AUTOPRINT PC is active the actual weighing values will be sent continuously via the RS 232 interface. 

5.4.5 Remote Control: 

The following functions can be released by the remote controls that will be transferred as ASCII signs to the balance. 

"t" Tare. 
"w"  a weighing value (or unstable) is sent via RS 232 interface. 
"s"  a stable weighing value is sent via RS 232 interface. 

If the balance receives the command w or s, it acts without printing delay. 

5.4.6 Description of the data transfer: 

Structure of each data transfer: 

Without Numerator: 

Bit-Nr.  1   2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18

            B* B B  B  B  B  B  B  B 0    .    0    B    g   B    B    CR  LF
B*:  =  Blank or %in the range of zero point. 
B, 0, ., g:  =  Blank or weighing value with unit, depending on the load on the 
weighing plate. 

CR:  =  Carriage Return 

LF:  =  Line Feed 

Each mass measurement is represented by a string buffer of 18 ASCII characters, each character is represented by 8-bits. See the animation below to see how the string buffer is composed. 

Data buffers are separated by the line feed LF character (New line or Enter).

I made the last animation using this website

6. Options 

6.1 Printer 

With the serial data output RS 232 a printer can be connected. The printout shows the weight in grams. When the counting mode is selected the number of 

pieces or the weight is printed. 

When the percent mode is selected, the percentage or the weight will be printed. Press The PRINT-key to print weighing results. Select the enumerator to number the weighing continuously. 

Turn off the balance or use the CLEAR function to Reset the enumerator to (000)

Setting sampling time in Excel VBA:

The sampling time may be adjustable or not. The following are the cases:

(A) If the PRINT key is used manually then the sample time will not be set, because if it is not pressed then nothing will be sent to PC (time out).

(B) If the AUTOPRINT mode is used then the sampling time should be more than or equal 2 seconds which is the typical stabilization time.

(C) If AUTOPRINT PC mode is activated then the sampling time will depend on Baud rate. The following formula is used to calculate the minimum sampling time based on Baud rate:

Minimum sampling time [Sec.]= Baud rate [bps]/(No. of data bytes in each measurement/string buffer * 10)

In AUTOPRINT PC MODE, in case of setting sampling time larger than minimum sampling time, each received data packet/batch will contain multiple measurements at a time.

(D) Sending "w" character to the balance (simulating the PRINT key action) then receiving measurement at the same time.

Configuring the balance:

Set Baud rate

Set the printing mode

Set enumerator

Communication procedure:

You have to set in Excel the following parameters before establishing the communication:

COM port number - No. of start bits - No. of data bits - No. of stop bits - Parity bit - Baud rate - String buffer length

Then you will open COM port (open channel)

Retrieve data - write to file

Close COM port at the end of measurement (close channel)

Communication using A&D WinCT Data Communication software:

A&D WinCT delivers technological achievements with the utmost simplicity.  A&D's new WinCT software includes two programs (RSCom and RSKey) and is specifically designed for use with A&D Balances equipped with an RS232C interface and your PC.  The software is compatible with Windows, Window 95, 98 & NT.


1. The software can be used successfully with KERN digital balance. 
2. The software is compatible with windows XP and windows 7.

You can download the software from here

WinCT software package has three programs: RSCom, RSWeight, and RSKey. After installation you can copy the program folder and use RSKey as a portable software on any PC.

RSKey can read only the balance without writing to it. All what you have to do is to open an Excel sheet, then open RSKey, configure serial communication parameters, and finally click "Start" button. The software will paste data directly in the Excel sheet.

Caution: Don't click "Start" button when windows explorer in the background!!!

Press "Start" button only when "MS Excel", "Notepad", "MS Word", or any text processing software is in the background. 

Fast case study:

I have tested the drainage time of water from the acrylic tank used in WBT device with the filling cap once, and without the cap another time.

With cap (small ventilation area):

Drained water: 1300 gm = 1300 mL
Drainage time: 265 seconds = 4 minutes: 25 seconds

Without cap (large ventilation area):

Drained water: 1298.1 gm = 1298.1 mL
Drainage time: 157 seconds = 2 minutes: 37 seconds

Tuesday, January 20, 2015

Refrigerator optimum loading plan

Keywords:  Optimum loading plan, Best loading plan, Loading plan optimizer, Cargo optimizer, Loading box optimizer, Store box optimizer, 2D bin packing problem, 2D box packing

In testing, frozen-food storage or food-freezers in refrigerating appliances are loaded with lean-beef simulant called "test packages". Rectangular test packages used in loading plan according to IEC 62552 - ISO 15502 have three basic sizes (with height 50 mm):

Size A (represents 1 kg): 200 mm x 100 mm

Size B (represents 0.5 kg): 100 mm x 100 mm

Size C (represents 0.25 kg): 100 mm x 50 mm

Loading plan is almost based on the two dimensional area of horizontal surface intended for loading. Once the basement of the loading plan is found, then this plan can be repeated one on the top of another in upward direction.

The following Excel toolbox which is included in cold-appliances add-in is used to calculate the optimum loading plan according to IEC 62552 - ISO 15502 standard for a given rectangular loading box because loading is an iterative procedure.

The user-form looks like the following capture:

The following are some iterations (from 63 iteration) of loading plan of box of size 480 mm x 380 mm and two round corners of radius 16 mm.

Box boundaries may be physical or load limit line. The common cases are:

- Four physical walls in chest freezers or upright freezer drawers

- Three physical walls and one load limit line, door, or flap

Iteration 1:

Iteration 28:

Iteration 61:

The last one is optimum loading plan as it has the maximum load with maximum number of 1 kg packages 200 mm x 100 mm. The following conditions are achieved according to the standard: The food freezer compartment or cabinet and any frozen-food storage compartment or cabinet shall be filled with as many test packages as it can hold, the test packages having previously been brought to a temperature approximately equal to the classification temperature of the compartment.  On each horizontal surface intended for storage, the largest possible number of stacks of 1-kg test packages, having a base of 100 mm ×200 mm, shall be made. 

NOTE: A stack is a number of packages piled on top of one another (faces with largest surface horizontally); the term does not necessarily imply that packages form a “straight” pile. 

Stacks of packages shall be placed in direct contact with horizontal loading surfaces and vertical surfaces  (this applies to 0,5-kg as well as 1-kg packages). 

Test packages priority: If necessary, the loading may be completed by stacks having a base of 100 mm ×100 mm made up of 500-g packages laid flat, and then finally by stacks having a base 50 mm ×100 mm made up of 125-g or 250-g packages, also laid flat, or else 25 mm ×100 mm ×200 mm 500 g packages. Stacks of packages shall be placed in direct contact with the horizontal loading surfaces and vertical surfaces except in the following cases:
a)  When the vertical surface is the inner surface of a door, the stacks shall be loaded as follows: 

–  if there is a marked load-limit line, the packages shall be loaded up to that line (see Figure 16 a)); 

–  if there is no load-limit line, but a natural load limit, the packages shall be loaded up to that limit. Free air spaces of 15 mm minimum (calculated from the nominal dimensions of the test packages), as far as possible equal, shall be left between adjacent stacks of test packages.

The use of spacers to maintain free air spaces between stacks of test packages is permissible provided that the spacers are of the smallest possible cross-section and of the lowest possible thermal conductivity and are placed in such a way that they do not significantly interfere with normal air circulation.