hb-EXCEL-Logo

 

Create a website for your tournament

Current tournament progress
on your own website

English flag   German flag

Webseite last updated: 30.06.2025

Download

Download Excel files  (Version 1.5  from 30.06.2025)
Download .zip
Download tournament website  (Version 1.2  from 22.06.2025)
Download .zip
  • Free
  • No annoying advertising
  • No password protection for the VBA code
  • No hidden worksheets
  • Everything is freely visible and editable

Optional:
Change the website refresh interval

Currently, the website refreshes every 30 seconds. This means that after clicking one of the refresh buttons in the TournamentUploads.xlsm file, the website will be automatically refreshed after 30 seconds at the latest.

A longer time interval (e.g., 60 seconds) is certainly sufficient during the tournament. If you would like to change this time interval, you can find the value for the refresh interval at the end of the "index.html" file:

Tips

1.
If you only want website visitors to see the title lines, match results, and group tables of the preliminary round during the preliminary round, you can delete the last two images "tmp3.gif" and "tmp4.gif" in the "TournamentCurrent/pics/" folder.

These two images will only be regenerated when you click the "Update Final Round" and "Update Final Table" buttons (at the beginning of the final round).

 

2.
The identifier in cell D40 is placed so low because it should not be in the visible area of ​​the screen. This is to prevent a curious person looking over their shoulder from reading or photographing the identifier.

Additionally, you can make the identifier in cell D40 invisible using the custom formatting ";;;".

 

3.
Of course, you can also create your own website instead of this simple website. All you need to do is insert the images "tmp0.gif", "tmp1.gif", "tmp2.gif", etc., at random locations - done.

The Excel file "TournamentUploads.xlsm" does nothing more than update these image files by uploading the new images to the server via an HTTP request. The website just needs to have an automatic mechanism to refresh itself at regular intervals.

Security Note

Since images are being uploaded to a server here, the question of security arises. In connection with image uploads, one often reads that hackers may be able to inject malicious code and damage the website via this upload.

This usually happens in cases where the images are sent via a so-called GET request, because this allows one to see (and manipulate) the URL used to send the upload request to the server.

On this tournament schedule website, the Excel file "TurnierUploads.xlsm" does not send GET requests, but rather POST requests. This makes the hurdle for hacking very high.

As an additional security precaution, an image file is not sent to the server in the usual way (no multipart request), but is first provided with an Identifier. If something arrives at the server without this Identifier, it is not saved on the server but discarded.

If you want even more security, you can also rename the file 'ups.php', for example, to 'U410z_oq55_zWw.php'.
The URL must then be adjusted accordingly in the VBA code.

Technical Background

The VBA code of the Excel file 'TournamentUploads.xlsm' accesses the Excel tournament schedule and reads specific ranges (result tables of the tournament schedule).

The website is then updated in the following steps:

  1. The Copy method of the Range object copies the desired range of the tournament schedule to the clipboard.
  2. The Add method of the ChartObjects collection creates a chart object with the appropriate size.
  3. The contents of the clipboard are inserted into the chart area using the Paste method of the Chart object.
  4. The Export method of the Chart object saves the chart into a temporary GIF file.
  5. The chart is deleted again.
  6. An ADODB.Stream object is created, which reads the GIF file and converts it into a binary stream.
  7. An MSXML2.DOMDocument object is created.
  8. The createElement method of this MSXML2.DOMDocument object creates a node element of type 'bin.base64'.
  9. The binary stream is read into this node element and thereby converted to Base64 format.
  10. This Base64 stream is given a secret identifier for security reasons. A number is also added to the Base64 stream, allowing the server to identify which of the images on the web page should be updated.
  11. The Base64 stream is sent to the server via a POST request. For this purpose, an MSXML2.XMLHTTP.6.0 object is created, which enables the HTTP request to the server.
  12. The server checks whether the correct identifier is contained in the Base64 stream. If so, the Base64 stream is saved as an image file. Otherwise, the received data is discarded.
  13. The tournament website, which someone views in their internet browser, contains JavaScript code that reloads the (updated) image files from the server at regular intervals, e.g. every 30 seconds. Therefore, any changes to the results or tables will be visible in the viewer's browser after 30 seconds at the latest.

Ornament