Synkronizer 11 User Manual: ©2000-2019, XL Consulting GMBH, Switzerland
Synkronizer 11 User Manual: ©2000-2019, XL Consulting GMBH, Switzerland
Table of Contents
          Foreword                                                                                                                                                              0
  Part I Welcome                                                                                                                                                                7
      1 What's
          ...................................................................................................................................
                 new?                                                                                                                         7
      2 Editions
           ................................................................................................................................... 8
      3 Supported
           ...................................................................................................................................
                       Excel versions & Operating Systems                                                                                      9
 Part II Project                                                                                                                                                            11
      1 Settings
          ................................................................................................................................... 12
      2 System
          ................................................................................................................................... 15
                 License
                      .........................................................................................................................................................
                            Manager                                                                                                                                             16
      3 FileFormat
           ...................................................................................................................................
                         Project                                                                                                               16
 Part IV Results                                                                                                                                                            44
      1 Summary
          ................................................................................................................................... 45
      2 Differences
          ................................................................................................................................... 47
      3 Ribbon
          ................................................................................................................................... 51
        Part VI Registration                                                                                                                                                           63
                  1 Manual
                      ...................................................................................................................................
                              Activation                                                                                                                  64
                  2 Deactivate
                      ...................................................................................................................................
                                    Software                                                                                                              65
                        MatchInclude
                           ...................................................................................................................................... 87
                        MatchType
                           ...................................................................................................................................... 87
                        PasswordList
                           ...................................................................................................................................... 88
            Pair ..................................................................................................................................................
                 Object                                                                                                                                             88
                 Methods
                     ........................................................................................................................................... 89
                        Activate
                            ...................................................................................................................................... 89
                 Properties
                      ........................................................................................................................................... 89
                        DBKeys
                           ...................................................................................................................................... 89
                        DBOptions
                           ...................................................................................................................................... 90
                        DBRow
                           ...................................................................................................................................... 90
                        IsValid
                            ...................................................................................................................................... 91
                        Range
                           ...................................................................................................................................... 91
                        RangeAddr
                           ...................................................................................................................................... 91
                        Sheet
                           ...................................................................................................................................... 92
                        SheetName
                           ...................................................................................................................................... 92
                        WSOptions
                          ...................................................................................................................................... 92
            Settings
                 ..................................................................................................................................................
                        Object                                                                                                                                      93
                 Methods
                     ........................................................................................................................................... 93
                        Clear...................................................................................................................................... 93
                 Properties
                      ........................................................................................................................................... 94
                        Contents
                           ...................................................................................................................................... 94
                        FilterEquivalents
                             ...................................................................................................................................... 94
                        Filters
                             ...................................................................................................................................... 94
                        FilterTolerance
                             ...................................................................................................................................... 95
                        Formats
                           ...................................................................................................................................... 95
                        Highlight
                            ...................................................................................................................................... 96
                        Outline
                            ...................................................................................................................................... 96
                        Report
                           ...................................................................................................................................... 97
            Results
               ..................................................................................................................................................
                     Object                                                                                                                                       97
                 Properties
                      ........................................................................................................................................... 98
                        ArrayCounts
                            ...................................................................................................................................... 98
                        ArrayDetails
                            ...................................................................................................................................... 98
                        DifferentComments
                            ...................................................................................................................................... 100
                        DifferentContents
                            ...................................................................................................................................... 100
                        DifferentFormats
                            ...................................................................................................................................... 100
                        DifferentNames
                            ...................................................................................................................................... 100
                        DifferentValues
                            ...................................................................................................................................... 100
                        DuplicateKeys
                          ...................................................................................................................................... 101
                        DuplicateRecords
                          ...................................................................................................................................... 101
                        MissingCols
                          ...................................................................................................................................... 101
                        MissingRows
                          ...................................................................................................................................... 101
                        MissingSheets
                          ...................................................................................................................................... 102
                        Sum
                          ...................................................................................................................................... 102
                        SumByType
                          ...................................................................................................................................... 102
                        SumText
                          ...................................................................................................................................... 103
                        SumTextByType
                          ...................................................................................................................................... 103
            Enumerations
              .................................................................................................................................................. 103
                 Content
                    ...........................................................................................................................................
                          Flag                                                                                                                                  103
                 DBOptionFlag
                    ........................................................................................................................................... 104
                 FilterFlag
                      ........................................................................................................................................... 104
                 FormatFlag
                    ........................................................................................................................................... 105
                 HighlightType
                     ........................................................................................................................................... 105
                 MatchIncludeFlag
                    ........................................................................................................................................... 105
                 MatchType
                    ........................................................................................................................................... 106
                                         OutlineFlag
                                             ........................................................................................................................................... 106
                                         ReportType
                                            ........................................................................................................................................... 106
                                         ResultType
                                            ........................................................................................................................................... 106
                                         sideID
                                             ........................................................................................................................................... 107
                                         WSOptionFlag
                                           ........................................................................................................................................... 107
                            VBA.........................................................................................................................................................
                                 Helper Functions                                                                                                                                        107
                            VBA.........................................................................................................................................................
                                 Examples                                                                                                                                                124
                  2 CommandLine
                     ...................................................................................................................................
                                           Utility                                                                                                       133
                            Reference
                               ......................................................................................................................................................... 135
                            Examples
                               ......................................................................................................................................................... 137
Index 140
       I
                                                                                     Welcome         7
1 Welcome
           Thanks for choosing Synkronizer 11. Synkronizer 11 is the most powerful Excel comparison
           program in the market. Synkronizer 11 is the only program worldwide that can compare and
           update regular Excel files and Excel databases.
           This manual introduces you to the Synkronizer 11 environment and explains the essential
           functions.
           Of course Synkronizer 11 may not be perfect. We are always interested in learning from our
           users, so your feedback is always welcome. For any suggestions or questions (e.g. menu items,
           settings, forms, or about this manual) feel free to contact us directly.
Sincerely,
           Although you might be already familiar with the previous vervions, Synkronizer 11 contains
           some new features that we would like to present:
            There are two new categories of differences: "Entered Values ?& Formulas" and "Calculated
            Values". These help to identify cell differences more accurately. The category "Entered values
            ?& formulas" will report different cell values??or formulas. The "Calculated Values" type will
             report a difference in case identical formulas will have different.
            Invocation via command line. With the Developer Edition, you can control Synkronizer via
            the command line. The Developer edition will earliest be shipped sometime after summer
            2014.
1.2 Editions
          There are three different editions of Synkronizer 11 available. The functionality of these editions
          is described in the following table:
           Synkronizer 11 has only few standard requirements and can be installed on local PCs as well as
           on networks.
       II
                                                                                         Project      11
2 Project
           In this tab, you can manage projects, change project settings and find information about your
           Synkronizer edition.
                                                                New
                                                                The form is emptied, all settings are
                                                                reset.
                                                                Open
                                                                This command opens an existing project.
                                                                Save
                                                                The current settings are saved as a
                                                                project. The worksheet passwords are
                                                                not stored in the projects.
                                                                Save as ...
                                                                The selected project is saved under a
                                                                new name.
                                                                Reload
                                                                The project is reloaded, all previous and
                                                                unsaved changes are lost.
                                                                Startup Options
                                                                Here you can specify whether you want
                                                                to start Synkronizer with an empty
                                                                project, the last opened project or the
                                                                opened files.
2.1 Settings
           Application Settings
           In this section you can define the general settings of Synkronizer.
             Language
             In this field, the language can be determined.
             If your language is not available, we will give you a free Synkronizer version (Developer
             Version) if you help us translate Synkronizer material into your mother-tongue. Just contact
             us for your free copy. Prior to starting your translation, please contact us for detailed
             instructions.
       Synchronized Scrolling
       With this option you can scroll "synchronized" through the files. Synkronizer ensures that
       always the corresponding differences of the other file are displayed.
     Project Settings
     Here you can save, reload or reset your personal project settings. The following options are
     available:
     Undo settings
     A strength of Synkronizer is its ability to highlighted differences and hide unwanted ones with
     the outlining feature. The downside of this option is that these changes will possibly remain in
     the Excel worksheets.
     In this area you can choose what should happen with the highlighted and outlined changes.
     The following options are available:
       Show dialog
       When closing the Excel file, a dialog box is displayed allowing you to select whether the
       changes should be reset or not.
       Never undo
       The Synkronizer changes will not be reset.
       Always undo
       The Synkronizer changes are reset. Your Excel files will therefore be in the same state as prior
       to the comparison (except the transferred differences).
           Color themes
           If you don't like the colors Synkronizer uses to highlight the differences, you have the option to
           define your own. The colors can be reset to the original "Synkronizer" colors with the button
           "Reset defaults to factory".
2.2 System
In this menu you will find some information about your Synkronizer license.
                                              Edition
                                              In this part you see the information about your edition
                                              Version
                                              In this part you can check if you are working with the latest
                                              build. If this isn't the case a download button appears with
                                              which you can download the latest build.
In the license manager you can see information about your license .
           The project file is a simple XML text file that can be edited with any standard text editor such as
           notepad.
           When manually editing XML files, be aware that the names of tags are case-sensitive.
           Misspelling will cause failures.
           Tip:
           Prepare your project using the Synkronizer tab, save it, then edit it to suit your needs.
This is the layout of the file for a project where sheets are auto matched, without any options
           For a project with pairs of individual settings the file will look like this:
           (MatchType will be set to 0 as soon as you select a pair option such as RangeAddr or DBKeys.)
              <MatchInclude>3</MatchInclude>
              <MatchType>0</MatchType>
              <PairCount>3</PairCount>
              <Pair ID="1">
                 <SheetName0>Addresses</SheetName0>
                 <SheetName1>Addresses</SheetName1>
              </Pair>
              <Pair ID="2">
                 <SheetName0>Controlling</SheetName0>
                 <SheetName1>Controlling</SheetName1>
                 <RangeAddr0>$A$4:$AC$75</RangeAddr0>
                 <RangeAddr1>$A$4:$AC$75</RangeAddr1>
                 <DBRow>5</DBRow>
                 <DBKeys>1</DBKeys>
                 <DBOptionsMask>14</DBOptionsMask>
              </Pair>
              <Pair ID="3">
                 <SheetName0>Budget</SheetName0>
                 <SheetName1>Budget</SheetName1>
              </Pair>
           </Pairs>
        </Project>
     </Synkronizer>
       III
    20      Synkronizer 11 User Manual
3 Select
         When Synkronizer is started the main form or Select tab is displayed. The form is used to select
         entire projects or two Excel files that are to be compared, furthermore, virtually all comparison
         options, filters and actions can be defined in this form.
                                              Ribbon
                                              In this section are projects, comparison, tool
                                              and action options available. You can open,
                                              save or reset projects, define comparison
                                              options like contents, formats, filters, define
                                              the tools settings like report, highlight,
                                              outline and start the comparison process.
                                              Select workbooks
                                              Open and select the workbooks to be
                                              compared.
                                                        Select worksheets
                                                        Select the worksheets to be compared. The
                                                        following options are available:
                                                        - define the worksheet types (all, protected,
                                                        hidden)
                                                        - select and delete worksheets
                                                        - manually select worksheets
     Note
     All empty workbooks and all workbooks in protected view will be closed when the form starts.
3.1 Workbooks
           In this section you can specify which files are to be compared, in addition there are two combo
           boxes. The first file is entered in the upper box, and the second file in the lower box.
           The Excel files can also be selected with the "Open File" symbols. Alternatively, the files can be
           selected using the combo boxes. If you click this combo box, a list of recently opened Excel files
           will appear.
           Projects
           If you have saved the files in a project, the files can also be opened using the menu command
           Project » Open. For details, refer to the Projects section.
3.2 Worksheets
           This section displays the worksheets are displayed which are to be compared. Moreover, in this
           section worksheet-specific settings such as ranges, database or comparison options are
           defined.
3.2.1 Settings
             Include sheets
             These types of worksheets are also listed.
             Match by
             Depending on the setting, the worksheets are matched by their names, index (position within
             the file) or codename (internal worksheet name).
     Above the worksheets table, there are two drop-down list boxes (see chart). Using these boxes,
     the desired worksheets can be selected. Select the desired worksheets and confirm the
     selection with the arrow button to the right. The worksheet pair will then be added to the
     worksheets list.
           As a further option, the unwanted worksheet pairs can be removed by selecting the pairs and
           clicking on the "Delete" button.
           No worksheets found
           If no worksheets are available in the drop-down lists, the worksheets are either protected,
           empty and/or hidden. In this case, you need to change the display mode for worksheets. For
           more details please refer to the chapter "Automatically pair worksheets".
3.2.2 Ranges
           If you do not want to compare the entire worksheet, you can define the desired range.
           Proceed as follows:
           1. Select the worksheet which contains the range you want to compare
           2. Under the worksheet pair the options area appears (3 options). Now you can specify
              the desired range by using of the range buttons.
           3. The range address is also listed next to the worksheet name.
        Note:
        You can also enter named ranges. Multiple ranges are not allowed.
3.2.3 Databases
        4. The tab "Database settings" appears. Now you have to define the primary key by which the
        databases will be compared. To do this, select the necessary columns and confirm your
        selection with the Plus button.
           Important:
           The field names must be identical, otherwise the database can not be compared!
           If no identical field name is, the following message appears:
           Relaxed keys
           When selecting this option, differences in spaces and upper/lower case are ignored.
           By default the primary keys are matched case sensitive (e.g. "John Miller" and "JOHN MILLER
           ").
           Sort records
           The records are sorted by the primary key.
           Group records
           The data are grouped. The date records are grouped as follows:
           1. Linked records
          2. New/deleted records
          3. Duplicate keys
          4. Duplicate records (redundant records)
          6. When you have completed the database settings, a database icon appears in the worksheet
          list next to the worksheet pair.
          Notes:
          The maximum length of a primary key field is limited to 64 characters. If you should operate
          with primary key fields with more than 64 characters, then unwanted duplicate keys can occur.
          If possible do not operate with long primary key fields.
          Prior to describing the types of differences, we want to give a brief comparison of "normal"
          worksheets versus databases.
          "Normal" worksheets
          do not contain column headings and no database structure. For such worksheets, Synkronizer
          performs a cell-by-cell comparison. As a frequent user of Synkronizer you will soon learn that
          the data comparison of a "normal" worksheets is not as efficient as a database comparison.
Databases
           are worksheets that contain data within a database structure. The data must be arranged as
           follows:
              The first row contains unique column names.
              The database contains one (or more) column(s) with primary key(s) (unique identification
              number, article number etc.). A primary key uniquely identifies each data record and
              facilitates the sorting and synchronizing of your data. The primary key does not need to be a
              single field (e.g. employee ID). It may consist of multiple fields (e.g. family name, first name
              and city) to create a unique identifier and avoid duplicate keys/records.
              The data must be sortable and can not contain any merged cells.
              The table can't contain formulas that refer to other rows. Formula references to other
              columns within the same row are allowed.
Following paragraphs describe the difference between a 'duplicate key' and 'duplicate records'.
           Duplicate keys
           Duplicate keys occur, when data records contain the same primary key. Assuming the primary
           key is formed from the family and first name, and given you have several customers called
           "John Miller" in your database, Synkronizer will not know which data records to compare. So
           make sure you operate with unique primary keys when working with Synkronizer.
           The comparison of "databases" is highly efficient. The databases may be sorted or altered.
           Inserting and deleting of columns and rows is allowed. Synkronizer will recognize all
           differences between the two files.
Scheme Database
        If you are sure that your worksheets do not contain new or deleted rows/columns, then you
        can compare your files with the "1 on 1 method". In this case, the rows and columns are
        compared "1 on 1" and only cell differences will be detected.
Proceed as follows to compare the rows and/or columns by the "1 on 1 linking method":
4. The tab "Linking Options" appears. Click "Link columns 1 on 1" or "Link rows 1 on 1"
           5. After confirming the 1 on 1 linking method, the linking icon appears next to the worksheet
           pair.
3.2.5 Passwords
           2. If the worksheets should not appear in the worksheets list, you might need to enable the
           "Protected" option in the pairing worksheet element:
     Select "Protected" and click the "Add worksheets" button - the protected worksheets are now
     displayed.
     4. Enter the password in the field a and unlock the worksheets. If you have successfully entered
     all the passwords, the worksheets are shown in green.
           Note:
           If you compare protected tables and a table contains protected and hidden cells, then only the
           cell values are compared. Different cell formulas are not recognized in this case.
3.3 Ribbon
           In the upper part of the selection form you'll find a toolbar which allows you to define
           numerous options:
           Project options
                                    Reset project. All settings are set back to defaults
                                    Load a project
                                    Save project
           Compare
           options
                                    Compare additional content like comments and Excel names.
Start
3.3.1 Project
        With the "Project" commands, you can save recurring comparison processes as a project.
        Supposed, you need to compare the same files, then you can save the files, tables and
        comparison settings as a project. Next time, you can open this project and immediately start
        the comparison.
        New
        The form is cleared, all settings are reset.
        Open
        This command opens an existing project.
        Save
        The current project settings are saved as a project.
        In this menu, you can choose whether additional content needs to be compared. The following
        content options can be selected:
Comments
             Names
             Names are placeholders which can be used to identify a range of cells, a function, a constant,
             or a table.
             Number
             It is compared whether the number format of the cells is different.
             Alignment
             Compares the alignment of the cells (left, center, etc.)
             Font
             All the font formattings are compared (font name, size, color, underline, etc.)
             Border
             The cell borders are compared.
             Fill
             The background color of the cells is compared.
             Protection
             The cell protection and visibility of the cell to be compared.
1. Click on formats.
2. Select "Enable formats". (The format icon changes from gray to black).
In this example, the number formats and font sizes are compared.
          Ignore case
          If this box is checked, differences in upper and lower case writing are ignored (e.g. "John
          Wayne" equals to "JOHN WAYNE" ).
          Ignore whitespace
          If this box is checked, spaces are ignored at the beginning and end of words, e.g. the values ?
          "John Wayne" and " John Wayne " (additional spaces at the beginning and at the end) are
          considered as equal.
Result: 100
             Ignore constants
             If this option is active, all cells with constants (entered values??) are ignored.
             Ignore formulas
             All formula fields are filtered out .
             Equivalent values
             Chances are, that in some worksheets the same difference shows up en masse. Suppose you
             need to compare checklists that have a column called "Completed". In the first checklist, the
             values in this column are represented by "yes / no", but in the other checklist by "ja / nein"
             or "1/0". This would cause a large number of false positives to be reported in a normal
             comparison. You can now filter out these differences by defining the corresponding
             equivalents, e.g. 1=yes, 1=ja, yes=ja, 0=no, 0=nein, no=nein etc. If you want to filter empty
             cells, enter [empty] or leave the field blank.
             You can also filter partial equivalents. Pad the search string with two asterisks: *october* =
             *november*
             that would filter differences like =SUM('October 2019'!D10:D25) v =SUM('November
             2019'!D10:D25).
1. Click Filters.
2. Select "Enable filters". (The filter icon changes from gray to black).
        In this menu, you can choose whether the differences are to be marked in the underlying Excel
        spreadsheets or not. The following options are available:
          Highlight differences
          All differences are highlighted in the underlying Excel worksheets.
        Depending upon your choice, the check icon is displayed gray or black. If the differences are to
        be marked, the symbol is black, otherwise gray.
        In the Report menu you can choose whether an additional difference report should be
        generated or not. The following options are available:
          No report
          No difference report will be generated.
          Standard report
          A "normal" difference report will be created which contains all differences.
          Hyperlinked report
          A difference report will be generated which contains all differences and each difference holds
           The report icon is displayed either gray or black depending on its status. If a difference report is
           selected, the symbol is black, otherwise gray.
           In the Outline menu, you can choose whether you want to see only certain types of differences
           or not. In this way you can check and process the differences very efficiently. The following
           difference types can be selected:
             Missing columns
             These columns are only found in one worksheet.
             Missing rows
             These rows were either deleted or added.
             Duplicate rows
             Applies only to database mode: these rows include either duplicate (redundant) records or
             rows with duplicate keys.
             Identical rows
             These rows are completely identical and have no cell differences.
             Different rows
             These rows contain cell differences.
1. Click Outline
2. Select "Enable outlining". (The outline symbol will change from gray to black)
           After you have selected all the worksheets, settings and comparison options, you can start
           comparing the worksheets. Just click on the Start icon and the files will be compared.
     After comparison, the files and the results form will be displayed side by side. With the results
     form, you can then smartly check the differences and eliminate them.
       IV
    44      Synkronizer 11 User Manual
4        Results
         After comparing, the results form as well as the worksheets are arranged side by side. In the
         results form, you can then smartly check and eliminate any difference.
                                                     Ribbon
                                                     In this section, various actions can be performed.
                                                     With these actions, you can selectively and
                                                     efficiently review and manage the differences.
                                                     Summary
                                                     This pane shows the worksheets and the number
                                                     of differences found.
                                                     Differences for the selected worksheet/category
                                                     are shown in the lower pane.
                                                     Differences
                                                     This pane shows each difference found for the
                                                     selected worksheet/category cell in the upper
                                                     pane. You can navigate to each difference and
                                                     decide if the difference needs to be transferred or
                                                     not.
         Actions
         With the results form, you can perform the following actions:
             Overview of differences
             Synchronize worksheets / transfer differences
             Delete unwanted differences
             Show/hide differences
4.1 Summary
           The upper part of the Results form displays the worksheets and their differences. You can see
           the number of differences that were found between the worksheets at a glance.
           In the columns of the list box, the various differences are displayed. In this screenshot, for
           example, the following differences were found in the worksheet "Customer List":
           Missing columns                    0|1; (no different column in source worksheet, one different
                                              column in target worksheet)
           Missing rows                       3|2; (three different rows in source worksheet, two different
                                              rows in target worksheet)
           Differences in entered             9 differences in entered values/formulas
           values/formulas
           Differences in calculated          0
           formulas
               Duplicate records (redundant rows). These records are completely identical. These
               records should be deleted. (Appears only in the database comparison mode.)
               Duplicate keys. These records have the same primary key. (Appears only in the
               database comparison mode.)
         Differences in entered cell values ?and/or formulas. The entered cell values and/or
         formulas are different in the underlying worksheets.
         Note:
         If you compare protected tables and a table contains protected and hidden cells, then
         only the cell values are compared. Different cell formulas are not recognized in this
         case.
         Differences in calculated cell formulas. The results of the cell formulas are different (the
         entered cell formulas are identical).
     For each difference, the detailed information can be displayed in the lower part of the
     form. Just click with the mouse on the desired type of difference and you will find further
     details below.
     In the following example, the difference type "Entered values & formulas" is selected. Nine
     differences were found in total (in the upper part of the form). The detailed information of each
     difference is displayed in the lower part of the form:
4.2 Differences
           In the lower part of the form, the details of the difference selected in the upper part are
           displayed.
All differences can be processed, transferred or deleted with the following keys:
Select difference
With these buttons you can navigate to the next or previous difference.
                    With these buttons, the columns/rows are copied from the source to the target
                    worksheet (from left to right). It is possible to copy just the selected column/row
                    or all columns/rows. Once the columns/rows have been copied, they are
                    displayed in red.
                    These commands are also available in columns that contain at least one
                    difference.
                            With these buttons, the columns/rows in the source worksheet (left) will be
                            deleted. It is either possible to delete all or only the selected column/row.
As above
                            With these buttons, the different cell values ?or comments are copied from the
                            source to the target worksheet (from left to right). It is either possible to copy all
                            or only the marked difference. Once the difference has been copied, it is shown
                            in red.
As above.
           Sort by row With this button, the sorting of cell differences can be changed. As required, the
                            cell differences can be sorted or grouped differently. The cell differences are by
                            default sorted by rows and within the rows by columns.
           Sort by          The cell differences are sorted first by columns and within columns to rows.
           column
           Group by         If you choose this option, the differences are grouped by rows. The differences
                            can be transferred individually per line or in groups.
           row
     Group by    If you choose this option, the differences are grouped by columns. The
                 differences can be transferred individually per line or in groups.
     column
                 This option is extremely useful when you are working with databases and need
                 to update cell differences of a column. With just one click, all the differences of a
                 column can be transferred.
Settings
                 Depending on the difference type, different options can be set, which are
                 described below.
                   Updating options
                   This option is only applicable for missing columns and rows.
                   Here you can specify which data and formats should be transferred. The
                   following options are available:
                   basic: only cell values and the cell alignment (left, right, centered) are
                   transferred
                   Medium: additionally the background color is transferred
                   full: all data and cell formats are transferred
                   This setting is especially important for large Excel files, because the data
                   transfer can be very slow for large data.
           In the case of text differences (yellow symbol, "Differences in entered cell values ?and/or
           formulas"), you can move the mouse over the desired difference (do not click), whereupon the
           detailed view of the text difference is displayed as a tooltip.
4.3 Ribbon
           In addition, various actions can be performed in the results form. With these actions, you can
           selectively and efficiently manage the differences.
                      Filter
                      If necessary, you can define a (new) filter and compare anew. This way, you can
                      immediately see whether you get better comparison results or not. Proceed as follows
                      to create filter and start a new comparison:
                      Report
                      You can create a difference report at any time. Proceed as follows:
          Highlight
          Here you can choose whether only certain types of difference are to be shown.
          Proceed as follows to display only certain types of difference:
          Outline
          Here you can decide whether only certain types of difference are to be shown.
          Proceed as follows to display only certain types of difference:
          Refresh
          By clicking on this icon, the files are compared anew. You can choose whether all
          worksheets or only the active worksheet shall be re-compared.
       V
    54      Synkronizer 11 User Manual
5 Install, Uninstall
         Synkronizer 11 is a COM addin for Excel 2016 (or 365), 2013 , 2010 and 2007. Synkronizer works
         both in 32-, and 64-bit mode.
         Installation
         1. Download the latest version.
3. Close Excel.
4. Open the the downloaded zip file, double click on the setup file and follow instructions...
5. Start Excel.
         Administrator Privileges
         If you do not have administrative rights, you can not install the software.
         Folders
         All files are located in the installation folder typically
         C:\Program Files\Synkronizer\Synkronizer 11\
           Prerequisites
             Microsoft .NET Framework 4.0
             Visual Studio Tools for Office Runtime 2010
The setup program will search for these prerequisites and install or update them as needed.
5.1 Uninstall
           For a network installation, the license file must be stored in a shared network folder. All users
           working with Synkronizer 11 must have (read-)access to this file. All other files may be located
           in any directory.
5. Start Excel.
     6. Start Synkronizer and open the License Manager with the following command:
        Project »System » License manager
Click on the path button (see arrow) and choose the network directory.
       Note:
       The network directory must be an UNC (Uniform Naming Convention) folder which looks as
       follows:
\\ComputerName\SharedFolder\Resource\license.xml
8. Add the network users who work with Synkronizer (see section below)
Scheme Network
           The license file (License.xml) is located on a shared network folder. The individual network users
           install Synkronizer normally on their local computer and point in the license manager to the
           license file that is located in the network folder.
           Permissions
           At least one user must have write/modify permission on the license file, while all others only
           need read permissions. The user(s) with write permission can register/activate the license and
           manage the list of allowed computers.
           Once the license is activated, you can add the nodes (network users) who will work with
           Synkronizer. This can be done from any workstation, installed on Synkronizer, as long as the
           user has write access to the license file.
     4. Now you can add the computer/users, who will work with Synkronizer. Simply enter the
        correct network user ID and the description in the input fields. If you want to add the
        computer to which you are working, click on "Add this node":
1. Start Excel
5. Press "Paste list". The list is filled (with a maximum number of licensed computers)
           The setup executable is a so-called bootstrapper for the windows installer files contained
           within, it also takes care of the prerequisites (.NET framework and VSTO runtime)
           /? or /help
           displays help dialog
           /extract:<directory>
           extracts all files in <directory>
           /listlangs
           lists languages supported by this setup
           /exenoui /qn
           launches the EXE setup without UI. Note: run as administrator!
           /exebasicui
           launches the EXE setup with basic UI
           /exelang <langId>
           launches the EXE setup with the specified language
           /username
           username used by the proxy
           /password
           password used by the proxy
           /exelog<path_to_log_file>
           creates a log file at specified path
           /exenoupdates
           does not check for a newer version
           <msiOptions>
           options for msiexec.exe running the MSI package
Example:
       VI
                                                                                      Registration      63
6 Registration
           Upon purchase you will receive a "registration key" for the edition you bought. This registration
           key is used to "register" and "activate" the software. The activation process is fully automated,
           it only needs an internet connection. In case firewall settings prevent the program's direct
           communication with our server, this process can also be performed via website or email.
Registration process:
1. Start Synkronizer.
             In the case of a multi-user license, you must additionally enter the sequence number of the
             license (next to the registry key field).
           If you have any problems with the registration/activation process, please read chapter
           "Problems with registration".
             A data string that contains the activation data specific to your hardware is displayed and
             copied to your clipboard.
9. Paste the datastring into the input field 1) and click on the activate symbol:
10. Note the activation key and return to the license manager of Synkronizer:
11. Enter the activation key in the input field "Activation Key".
           If you have any problems with the registration/activation process please read chapter
           "Problems with registration".
           You can transfer your license to another computer at any time. Simply deactivate the license
           on the old computer and activate it on the new one.
1. Start Synkronizer.
4. Click "Deactivate".
           5. The register form is displayed. Enter your secret answer and click "Deactivate your license
              online".
           If you have no internet connection, you'll need to deactivate the software manually. A manual
           deactivation works exactly the same like the manual activation.
           The only difference is, that you'll get an unlock key instead of an activation key. Read this
           chapter for manually deactivating the software.
       VII
                                                                                   Problems / Errors      69
7 Problems / Errors
1. Click the Microsoft Office Button image, click Excel Options, and then click Add-Ins.
           2. Check if Synkronizer 11 is listed under "Disabled Application Add-ins" (it should be listed
              under "Active Application Add-ins").
           3. Select & remove Synkronizer from the disabled category. It will then appear either in "Active
              Application Add-ins" or "Inactive Application Add-ins". If it is listed under "inactive" then go
              to the ComAdd-in dropdown and activate it.
Now the Synkronizer logo should be visible in the toolbar. If not, proceed as follows:
1. Verify that you have installed the latest build of Synkronizer 11.
2. Open Excel and select File » Options » Trust Center » Trust Center Settings...
8. Verify that the "Excel 2007 and later Add-in Files" can be opened.
9. Re-start Excel
1. Open Excel
     3. Press [Alt][F11] (or if your developer tab is visible then do developer/visual basic)
        » the Microsoft Visual Basic Window should open
4. Click on the [+] of the file Synkronizer_11 to open the project for synkronizer_11
6. Choose Tools » References it should look like this with five checked references.
             If any of the first four items is listed as [MISSING] (presumably Scripting Runtime) contact
             your system administrator.
             If Synkronizer 11.0 Object Library for Com Interop is missing than setup failed to do what is
             should do. Please contact support@synkronizer.com.
7.1 Support
           If you should have problems with the software (error messages, unable to activate, etc.), please
           proceed as follows:
     6. If you are working with a network license, click on the "Nodes Info" tab and make a
        screenshot of it:
7. Attach the file license.xml to the e-mail. The license file is stored in the following folder:
             Local license:
             C:\ProgramData\Synkronizer\Synkronizer 11
             Network license
             Shared network folder
           8. Check if a error file was generated in the Windows temp folder. Open the Windows Explorer
              end enter the folder %TEMP%. If a file named synkronizerError.txt is there, attach it to the
              e-mail.
           9. Send the screenshots and files to support@synkronizer.com along with any further
              comments or observations you may have made. Please include information about your
              environment (e.g., network, Citrix server, terminal server, subnets, etc.) that might help us to
              evaluate and resolve the problem.
During business days, you will get an answer from our support team within 24 hours.
   VIII
                                                                             Developer Edition       75
8          Developer Edition
8.1        Visual Basic for Applications (VBA)
           With the Developer edition of Synkronizer, you are able to create recurring, standardized
           and/or complex comparisons. To access the automation functionality of Synkronizer, you need
           to have knowledge about Visual Basic for Applications (VBA). With VBA, you are able to you
           create your own powerful comparison macros.
           We have provided some simple VBA Examples and a "Wrapper" Procedure to simplify you
           work.
           To test the examples, download the example file synk11vba.zip from our server, unzip it and
           copy the files to a folder of preference.
You can also manually test the examples by using the following steps:
           Excel
             ComAddins("Synkronizer.AddIn")
                Object =
               Synkronizer.Application
                 Project
                   Files
                   Pairs
                     Pair
                             Results
                         Settings
                         Results
           Methods
            Name                   Description
            NewProject             Returns a project with empty files, default settings and manual matching
            OpenProject            Creates a new project with empty files, default settings and manual
                                   matching.
           Properties
            Name                   Description
            ActiveProject          Project that is currently active.
            DisplayUI              Determines if user interface is displayed or not.
           Remarks
           The application object is only accessible when you have a licensed Developer Edition
           Example
           To access the Synkronizer Application, you should do the following:.
8.1.1.1.1 Methods
8.1.1.1.1.1 NewProject
Creates a new project with empty files, default settings and manual matching.
           Syntax
           expression.NewProject
           expression. A variable representing an Application object.
            Parameters
            none
            Return Value
            none
            Remarks
            If another project is active, it will be closed first.
8.1.1.1.1.2 OpenProject
            Syntax
            expression.OpenProject(file name)
            expression. A variable representing an Application object.
            Parameters
            Name                   Type            Description
            file name              String          Path and file name of the project file. (File extension is
                                                   '.xml').
            Return Value
            none
            Remarks
            If another project is active it will be closed first.
8.1.1.1.2 Properties
8.1.1.1.2.1 ActiveProject
            Syntax
            expression.ActiveProject
            expression. A variable representing an Application object.
8.1.1.1.2.2 DisplayUI
Syntax
           expression.DisplayUI
           expression. A variable representing a Application object.
           Methods
            Name                Description
            Close               Closes the current project. Optionally closes the source, target and (if
                                available) difference report files
            Execute             Executes the compare process.
            Save                Saves the project's configuration to the specified path.
           Properties
            Name                Description
            Files               Container for the Files (workbooks) of the project.
            IsDisposed          Project was deactivated and internal object set to nothing.
            IsValid             Checks if files are valid and pairs exist and are all valid.
            Pairs               Container for the Pairs (worksheets) of the project.
            ReportWorkbook Report workbook (when created).
            Results             Container for the (combined) Results of all Pairs.
            Settings            Container for all Settings of the project.
           Events
            Name                Description
            Progress            Raised during comparison execution to indicate running subprocess.
8.1.1.2.1 Methods
8.1.1.2.1.1 Close
Closes the project results. Optionally closes the workbooks (without saving!)
           Syntax
           expression.Close(CloseFiles,DisplayUndo)
           expression. A variable representing a Project object.
           Parameters
            Name                Type           Description
            CloseFiles          Boolean        Closes the compared files (workbooks).
            DisplayUndo         Boolean        Optional. If true and highlighting or outline are activated,
                                               the user
            Return Value
            none
            Remarks
            If you want the files to be saved (with possible highlighting and outline), you must do so prior
            to calling the Close method.
8.1.1.2.1.2 Execute
            Syntax
            expression.Execute
            expression. A variable representing a Project object.
8.1.1.2.1.3 Save
            Syntax
            expression.Save(FilePath)
            expression. A variable representing a Project object.
            Parameters
            Name                   Type        Description
            FilePath               String      Path and file name of the project file. (File extension is
                                               '.xml').
            Return Value
            none
8.1.1.2.2 Properties
8.1.1.2.2.1 Files
Container for the Files (workbooks) of the project. Read only Files object.
            Syntax
            expression.Files
            expression. A variable representing a Project object.
8.1.1.2.2.2 IsDisposed
            This property checks if the project was deactivated and internal object set to nothing. Read
            only Boolean property,
            Syntax
            expression.IsDisposed
            expression. A variable representing a Project object.
8.1.1.2.2.3 IsValid
Checks if files are valid and pairs exist and are all valid. Read only Boolean property,
            Syntax
            expression.IsValid
            expression. A variable representing a Project object.
8.1.1.2.2.4 Pairs
Container for the pairs (worksheets) of the project. Read only Pairs object.
            Syntax
            expression.Pairs
            expression. A variable representing a Project object.
8.1.1.2.2.5 ReportWorkbook
            Syntax
            expression.ReportWorkbook
            expression. A variable representing a Project object.
8.1.1.2.2.6 Results
Container for the (combined) Results of all pairs. Read only Results object.
            Syntax
            expression.Results
            expression. A variable representing a Project object.
8.1.1.2.2.7 Settings
Container for all settings of the project. Read only Settings object.
            Syntax
            expression.Settings
            expression. A variable representing a Project object.
8.1.1.2.3 Events
8.1.1.2.3.1 Progress
            Remarks
            You can use this event to display a progress indicator.
            Methods
            Name                   Description
            Load                   Loads the two files from disk.
            Save                   Saves the source file and the target file.
            Properties
            Name                   Description
            file name              Returns the full path and file name of either of the files.
            IsValid                Returns true if both files are loaded and can be compared.
            Window                 Returns the window object of either of the files.
            Workbook               Returns the workbook object of either of the files.
            Events
            Name                   Description
            none
8.1.1.3.1 Methods
8.1.1.3.1.1 Load
            Syntax
            expression.Load(file name0,file name1)
            Parameters
            Name                 Type           Description
            file name0           String         Full path for 1st file (also referred to as source).
            file name1           String         Full path for 2nd file (also referred to as target).
            NoArrange            Boolean        Optional. Set true if workbooks don't need to be arranged
                                                horizontally or vertically.
            Return Value
            none
8.1.1.3.1.2 Save
            Syntax
            expression.Save(Save0,Save1,Path0,Path1)
            expression. A variable representing a Files object.
            Parameters
            Name                 Type           Description
            Save0                Boolean        Set true if the source file needs to be saved.
            Save1                Boolean        Set true if the target file needs to be saved.
            Path0                String         Optional. Specifies the path if the source file needs to be
                                                saved in
                                                a different location.
            Path1                String         Optional. Specifies the path if the target file needs to be
                                                saved in
                                                a different location.
            Return Value
            none
8.1.1.3.2 Properties
8.1.1.3.2.1 FileName
Returns the full path and file name of either of the Files. Read only String value.
            Syntax
            expression.file name(id)
            expression. A variable representing a Files object.
            Parameters
            Name                   Type         Description
            id                     sideID       Selects the source or target file.
8.1.1.3.2.2 IsValid
Returns true if both files are loaded and can be compared. Read only Boolean value.
            Syntax
            expression.IsValid
            expression. A variable representing a Files object.
8.1.1.3.2.3 Window
Returns the window object of either of the files. Read only Window object.
            Syntax
            expression.Window(id)
            expression. A variable representing a Files object.
            Parameters
            Name                   Type         Description
            id                     sideID       Selects source or target file.
8.1.1.3.2.4 Workbook
Returns the workbook object of either of the files. Read only Workbook object.
            Syntax
            expression.Workbook(id)
            expression. A variable representing a Files object.
            Parameters
            Name                   Type         Description
            id                     sideID       Selects source or target file.
Methods
           Name                 Description
           AddMatched           Adds matched pairs using MatchType and MatchInclude properties.
           AddPair              Adds a pair to the Pairs collection.
           Clear                Clears the pairs collection.
           Remove               Removes specified pair from the collection.
           Properties
           Name                 Description
           Count                Returns the number of members in the collection.
           IsValid              Returns true if pairs exist and each pair is valid.
           Item                 Returns a single item (pair) from the collection.
           MatchInclude         Returns or sets options specifying types of worksheets to include by
                                AddMatched method.
           MatchType            Returns or sets a constant specifying how worksheets will be matched by
                                AddMatched method.
           PasswordList         Returns or sets a semicolon delimited list of passwords needed to access
                                protected sheets.
           Events
           Name                 Description
           none
           Remarks
           You can add pairs individually with the Add Method or use the AddMatched method to
           automatically add pairs for all worksheets that have matching names or indexes.
8.1.1.4.1 Methods
8.1.1.4.1.1 AddMatched
           Syntax
           expression.AddMatched
           expression. A variable representing a Pairs object.
           Example
           This example adds all worksheets with the same name. Protected and hidden sheets are
           included.
            With .Pairs
              'include protected and hidden sheets
              .MatchInclude = MatchIncludeFlag_ProtectedSheets + MatchIncludeFlag_HiddenSheets
              'match all sheets with same name
              .MatchType = MatchType_AllByName
              'add sheets
              .AddMatched
            End With
8.1.1.4.1.2 AddPair
            Syntax
            expression.AddPair(Sheet0,Sheet1,Range0,Range1,DBoptions,WSoptions,DBrow,DBkeys)
            expression. A variable representing a Pairs object.
            Parameters
            Name                   Type            Description
            Sheet0                 String          A worksheet name of the source file.
            Sheet1                 String          A worksheet name of the target file.
            Range0                 String          A range address of the source worksheet.
            Range1                 String          A range address of the target worksheet.
            DBOptions              DBOptionFla If the worksheet is a database, enter database options here.
                                   g
            WSoptions              WSOptionFl If the worksheet should be linked 1 on 1, enter linking
                                   ag         options.
            DBRow                  Long            If database comparison, enter row with database column/
                                                   field names.
            DBKeys                 String          If database comparison, enter the column number(s) which
                                                   contain(s) the primary key(s). Separate numbers by
                                                   semicolon(s).
            Return Value
            Returns a Pair object
8.1.1.4.1.3 Clear
            Syntax
            expression.Clear
            expression. A variable representing a Pairs object.
            Return Value
            none
8.1.1.4.1.4 Remove
            Syntax
            expression.Remove(index)
            expression. A variable representing a Pairs object.
            Parameters
            Name                  Type          Description
            index                 Long          A valid ID or index for the pair.
            Return Value
            none
8.1.1.4.2 Properties
8.1.1.4.2.1 Count
Returns the number of members in the collection. Read only long value.
            Syntax
            expression.Count
            expression. A variable representing a Pairs object.
8.1.1.4.2.2 IsValid
Returns true if pairs exist and each pair is valid. Read only Boolean value.
            Syntax
            expression.IsValid
            expression. A variable representing a Pairs object.
8.1.1.4.2.3 Item
            Syntax
            expression.Item(index)
            expression. A variable representing a Pairs object.
           Parameters
            Name                   Type       Description
            index                  Long       A valid ID or index for the pair.
8.1.1.4.2.4 MatchInclude
           Syntax
           expression.MatchInclude
           expression. A variable representing a Pairs object.
           Example
           This example adds all worksheets with the same name. Protected and hidden sheets are
           included.
           With .Pairs
             'include protected and hidden sheets
             .MatchInclude = MatchIncludeFlag_ProtectedSheets + MatchIncludeFlag_HiddenSheets
             'match all sheets with same name
             .MatchType = MatchType_AllByName
             'add sheets
             .AddMatched
           End With
8.1.1.4.2.5 MatchType
           Returns or sets a variable specifying how worksheets will be matched by AddMatched method.
           MatchType constant.
           Syntax
           expression.MatchType
           expression. A variable representing a Pairs object.
           Example
           This example adds all worksheets with equal names. Protected and hidden sheets are included.
           With .Pairs
             'include protected and hidden sheets
             .MatchInclude = MatchIncludeFlag_ProtectedSheets + MatchIncludeFlag_HiddenSheets
             'match all sheets with same name
             .MatchType = MatchType_AllByName
             'add sheets
             .AddMatched
End With
8.1.1.4.2.6 PasswordList
           Returns or sets a semicolon delimited list of passwords needed to access protected sheets.
           String value.
           Syntax
           expression.PasswordList
           expression. A variable representing a Pairs object.
           Example
           This example adds two password protected worksheet pairs.
           With .Pairs
             'add worksheets
             .AddPair "Customer List", "Customer List"
             .AddPair "Customer Profile", "Customer Profile"
           Methods
            Name                Description
            Activate            Activates the pair object.
           Properties
            Name                Description
            DBKeys              Returns or sets a semicolon delimited list of column indices used as
                                primary key for database.
            DBOptions           Returns or sets options for sorting or grouping database records.
            DBRow               Returns or sets the index for the row which contains the headers / field
                                names.
            IsValid             Returns true if the pair is valid.
            Range               Returns the range object for the specified member of the pair.
            RangeAddr           Returns or sets an optional range address for the specified member of the
                                pair.
            Results             Returns the number of differences found.
            Sheet               Returns the worksheet object for the specified member of the pair.
            SheetName              Returns the name of the worksheet for the specified member of the pair.
            WSOptions              Returns the row/column linking options.
            Remarks
            Specify a Range
            Normally, the entire data range of the sheet is used, but you can limit the range by using the
            RangeAddr property.
            Compare as Database
            You can compare the sheets as databases if
            · your data is organized in a tabular layout, with descriptive headers above each column.
            · rows can be uniquely identified by a primary key.
            You must set the primary key using the DBKeys property.
            You can specify the starting row of the database with the DBRow property.
            If you want the records sorted or the results grouped, use DBOptions .
8.1.1.5.1 Methods
8.1.1.5.1.1 Activate
            Syntax
            expression.Activate
            expression. A variable representing a Pair object.
8.1.1.5.2 Properties
8.1.1.5.2.1 DBKeys
            Returns or sets a semicolon delimited list of column indices used as primary key for database.
            String value.
            Syntax
            expression.DBKeys
            expression. A variable representing a Pair object.
            Example
            This example groups the records.
            With oProj.Pairs.Item(0)
               'row number of database heading
               .DBRow = 3
               'create primary key; column no. of source file
               .DBKeys = "2;3"
              'group records
              .DBoptions = DBOptionFlag_Group
           End With
8.1.1.5.2.2 DBOptions
Returns or sets options for sorting or grouping database records. DBOptionFlag value.
           Syntax
           expression.DBOptions
           expression. A variable representing a Pair object.
           Example
           This example groups the records.
           With oProj.Pairs.Item(0)
              'row number of database heading
              .DBRow = 3
              'create primary key; column no. of source file
              .DBKeys = "2;3"
              'group records
              .DBoptions = DBOptionFlag_Group
           End With
8.1.1.5.2.3 DBRow
Returns or sets the index for the row which contains the headers. Long value.
           Syntax
           expression.DBRow
           expression. A variable representing a Pair object.
           Example
           This example defines the 3rd row as database heading.
           With oProj.Pairs.Item(0)
              'row number of database heading
              .DBRow = 3
              'create primary key; column no. of source file
              .DBKeys = "2;3"
              'group records
              .DBoptions = DBOptionFlag_Group
           End With
8.1.1.5.2.4 IsValid
            Syntax
            expression.IsValid
            expression. A variable representing a Pair object.
8.1.1.5.2.5 Range
Returns the range object for the specified member of the pair. Read only Range object.
            Syntax
            expression.Range(id)
            expression. A variable representing a Pair object.
            Parameters
            Name                   Type         Description
            id                     sideID       Selects source or target worksheet.
            Remarks
            To change the Range use the RangeAddr property.
8.1.1.5.2.6 RangeAddr
            Returns or sets an optional range address for the specified member of the pair. Read only
            String value.
            Syntax
            expression.RangeAddr(id)
            expression. A variable representing a Pair object.
            Parameters
            Name                   Type         Description
            id                     sideID       Selects source or target worksheet.
            Example
            This example sets the range address.
            With .Pairs
               .Add "db1", "db1"
               .Item(1).RangeAddr(sideID_src) = "A1:H50"
               .Item(1).RangeAddr(sideID_tgt) = "A1:H50"
End With
8.1.1.5.2.7 Sheet
           Returns the Worksheet object for the specified member of the pair. Read only Worksheet
           object.
           Syntax
           expression.Sheet(id)
           expression. A variable representing a Pair object.
           Parameters
            Name                Type          Description
            id                  sideID        Selects source or target worksheet.
8.1.1.5.2.8 SheetName
           Returns the name of the worksheet for the specified member of the pair. Read only String
           value.
           Syntax
           expression.SheetName(id)
           expression. A variable representing a Pair object.
           Parameters
            Name                Type          Description
            id                  sideID        Selects source or target worksheet.
8.1.1.5.2.9 WSOptions
           Syntax
           expression.WSOptions
           expression. A variable representing a WSOptions object.
           Example
           This example links the rows and columns '1 on 1'.
           With oProj.Pairs.Item(0)
              .WSOptions = WSOptionFlag_Rows1on1 + WSOptionFlag_Cols1on1
           End With
            Methods
            Name                   Description
            Clear                  Clears all settings.
            Properties
            Name                   Description
            Contents               Return or sets the additional content to be compared.
            FilterEquivalents      Returns or sets the equivalent values which will be ignored.
            Filters                Returns or sets a series of options specifying which differences to filter
                                   (ignore).
            FilterTolerance        Returns or sets a number below which numeric differences will be ignored.
            Formats                Returns or sets a series of options specifying which formatting properties
                                   to compare.
            Highlight              Returns or sets a variable specifying which highlighting to perform.
            Outline                Returns or sets a series of options specifying which group of rows and
                                   columns to show or hide.
            Report                 Returns or sets a variable specifying which report to create.
            Events
            Name                   Description
            none
8.1.1.6.1 Methods
8.1.1.6.1.1 Clear
            Syntax
            expression.Clear
            expression. A variable representing a Settings object.
            Return Value
            none
8.1.1.6.2 Properties
8.1.1.6.2.1 Contents
            Returns or sets a series of options specifying which formatting properties to compare. Contents
            constant.
            Syntax
            expression.Contents
            expression. A variable representing a Settings object.
            Example
            This example also compares comments and Excel names.
            With .Settings
              .Contents = ContentFlag_Comments + ContentFlag_Names
            End With
8.1.1.6.2.2 FilterEquivalents
            Syntax
            expression.FilterEquivalents
            expression. A variable representing a Settings object.
            Example
            This example compares the worksheets using filters.
            With .Settings
              .Filters = FilterFlag_Enabled + FilterFlag_StringCase + FilterFlag_StringSpace
              .FilterTolerance = 0.01
              .FilterEquivalents = "yes,ja;no,nein"
            End With
8.1.1.6.2.3 Filters
            Returns or sets a series of options specifying which differences to filter (ignore). FiltersFlag
            constant.
            Syntax
            expression.Filters
            expression. A variable representing a Settings object.
            Remarks
            If the ENABLED flag is not set, all other flags are ignored.
            Example
            This example compares the worksheets using filters.
            With .Settings
              .Filters = FilterFlag_Enabled + FilterFlag_StringCase + FilterFlag_StringSpace
              .FilterTolerance = 0.01
              .FilterEquivalents = "yes,ja;no,nein"
            End With
8.1.1.6.2.4 FilterTolerance
Returns or sets a number below which numeric differences will be ignored. Double value.
            Syntax
            expression.FilterTolerance
            expression. A variable representing a Settings object.
            Example 1
            This example will filter out any results where numeric differences are less than or equal to 0.01
            (e.g. 0.01 vs .015):
            With .Settings
              .Filters = FilterFlag_Enabled
              .FilterTolerance = 0.01
            End With
            Example 2
            This example will filter out any results where numeric differences are less than or equal to 1 percent of the so
            With .Settings
              .Filters = FilterFlag_Enabled + FilterFlag_RelativeTolerance
              .FilterTolerance = 0.01
            End With
8.1.1.6.2.5 Formats
            Syntax
            expression.Formats
            expression. A variable representing a Settings object.
Remarks
If the ENABLED flag is not set, all other flags are ignored.
            Example
            This example compares font formats.
            With .Settings
              .Formats = FormatFlag_Enabled + FormatFlag_Font
            End With
8.1.1.6.2.6 Highlight
            Syntax
            expression.Highlight
            expression. A variable representing a Settings object.
            Example
            This example highlights the differences.
            With .Settings
              .Highlight = HighlightType_Standard
            End With
8.1.1.6.2.7 Outline
            Returns or sets a series of options specifying which group of Rows and Columns to Show or
            Hide. Uses OutlineFlag constants.
            Syntax
            expression.Outline
            expression. A variable representing a Settings object.
            Remarks
            If the ENABLED flag is not set, all other flags are ignored.
            Example
            This example shows only the differences. Identical rows are hidden.
            With .Settings
              .Outline = OutlineFlag_Enabled + _
                         OutlineFlag_DifferentRows + OutlineFlag_MissingRows + OutlineFlag_Dupl
                         OutlineFlag_MissingCols
            End With
8.1.1.6.2.8 Report
Returns or sets a constant specifying which Report to create. Uses ReportType constants.
            Syntax
            expression.Report
            expression. A variable representing a Settings object.
            Example
            This example creates a difference report.
            With .Settings
              .Report = ReportType_Standard
            End With
            Methods
            Name                   Description
            none
            Properties
            Name                   Description
            ArrayCounts            Returns an array with the overall differences found.
            ArrayDetails           Returns an array with the individual differences found.
            DifferentCommen Returns the number of cells with cell comments.
            ts
            DifferentContents Returns the number of cells with different (entered) values and formulas.
            DifferentFormats Returns the number of cells with different formats.
            DifferentNames         Returns the number of different Excel names.
            DifferentValues        Returns the number of cells with different calculated values (or results).
            DuplicateKeys          Returns the number of duplicate keys (database only).
            DuplicateRecords Returns the number of duplicate records (database only).
            MissingCols            Returns the number of missing columns (or fields).
            MissingRows            Returns the number of missing rows (or records).
            MissingSheets          Returns the number of missing worksheets (only for projects with
                                   automatching).
            Events
            Name                   Description
            none
            Remarks
                If the results object is a child of the Project object, then combined results are returned.
                If the results object is a child of the Pair object, then individual results are returned.
8.1.1.7.1 Properties
8.1.1.7.1.1 ArrayCounts
Returns an array with the overall number of differences found as text. Read only Array.
            Syntax
            expression.ArrayCounts
            expression. A variable representing a Results object.
            Description of Array
            This property returns an array. Each difference is represented by a single element of the array
            with 11
            columns. The first element of the array contains the column headings.
8.1.1.7.1.2 ArrayDetails
            Returns an array with the detail information of the specified differences found as text. Read
            only Array.
           Syntax
           expression.ArrayDetails(Type)
           expression. A variable representing a Results object.
           Parameters
           Name                    Type         Description
           Type                    ResultType   Constant selects group of results to return. If not set, all
                                                result
                                                types are returned.
           Description of Array
           This property returns an array. Each difference is is represented by a single element of the array
           with 11
           columns. The first element of the array contains the column headings.
8.1.1.7.1.3 DifferentComments
Returns the number of different cell comments. Read only Long value.
            Syntax
            expression.DifferentComments
            expression. A variable representing a Results object.
8.1.1.7.1.4 DifferentContents
            Returns the number of cells with different (entered) vales and/or different (entered) formulas.
            Read only Long value.
            Syntax
            expression.DifferentContents
            expression. A variable representing a Results object.
8.1.1.7.1.5 DifferentFormats
Returns the number of cells with different formats. Read only Long value.
            Syntax
            expression.DifferentFormats
            expression. A variable representing a Results object.
8.1.1.7.1.6 DifferentNames
Returns the number of different Excel names. Read only Long value.
            Syntax
            expression.DifferentNames
            expression. A variable representing a Results object.
8.1.1.7.1.7 DifferentValues
Returns the number of cells with different cell results. Read only Long value.
            Syntax
            expression.DifferentValues
            expression. A variable representing a Results object.
8.1.1.7.1.8 DuplicateKeys
Returns the number of duplicate keys (database only). Read only Long value.
           Syntax
           expression.DuplicateKeys(id)
           expression. A variable representing a Results object.
           Parameters
            Name                   Type       Description
            id                     sideID     Selects either member of the Pair
8.1.1.7.1.9 DuplicateRecords
Returns the number of duplicate records (database only). Read only Long value.
           Syntax
           expression.DuplicateRecords(id)
           expression. A variable representing a Results object.
           Parameters
            Name                   Type       Description
            id                     sideID     Selects either member of the Pair
8.1.1.7.1.10 MissingCols
Returns the number of missing columns (or fields). Read only Long value.
           Syntax
           expression.MissingCols(id)
           expression. A variable representing a Results object.
           Parameters
            Name                   Type         Description
            id                     sideID       Selects either member of the Pair
8.1.1.7.1.11 MissingRows
Returns the number of missing rows (or records). Read only Long value.
           Syntax
           expression.MissingRows(id)
           expression. A variable representing a Results object.
           Parameters
           Name                Type           Description
           id                  sideID         Selects either member of the Pair
8.1.1.7.1.12 MissingSheets
Returns the number of missing worksheets (auto matching only). Read only Long value.
           Syntax
           expression.MissingSheets(id)
           expression. A variable representing a Results object.
           Parameters
           Name                Type               Description
           id                  sideID             Selects either member of the Pair
8.1.1.7.1.13 Sum
Returns the total number of differences found. Read only Long value.
           Syntax
           expression.Sum
           expression. A variable representing a Results object.
8.1.1.7.1.14 SumByType
Returns the number of specified differences found. Read only Long value.
           Syntax
           expression.SumByType(Type,id)
           expression. A variable representing a Results object.
           Parameters
           Name                Type           Description
           Type                ResultType     Constant selects group of results to return.
           id                  sideID         Optional. Only needed for MissingCols and MissingRows.
                                              Leave blank to return combined results.
           Example
           This example prints out some differences.
           With oProj.Results
             'print out entered value/formula differences
             Debug.Print "Different values/formulas: " & .SumByType(ResultType_DifferentConten
8.1.1.7.1.15 SumText
Returns a formatted text that can be used in a messagebox. Read only String value.
           Syntax
           expression.SummaryText
           expression. A variable representing a Results object.
8.1.1.7.1.16 SumTextByType
Returns the number of specified differences found as text. Read only String value.
           Syntax
           expression.SumTextByType(Type)
           expression. A variable representing a Results object.
           Parameters
            Name                   Type           Description
            Type                   ResultType     Constant selects group of results to return.
8.1.1.8    Enumerations
8.1.1.8.1 Content Flag
            Name                    Description
            ContentFlag_Com         If this flag is set, the comments will be compared.
            ments
            ContentFlag_Name If this flag is set, the Excel names will be compared.
            s
            ContentFlag_None No additional content will be compared.
8.1.1.8.2 DBOptionFlag
             Name                      Description
             DBOptionFlag_AddID Adds an ID in the last column of the database to aid sorting and
                                filtering.
             DBOptionFlag_Group        Records are grouped by result after comparing.
             DBOptionFlag_Relaxed When selecting this option, primary key differences in spaces and
             Keys                 upper/lower case are ignored.
             DBOptionFlag_Sort         Records are sorted (on fields in primary key) before comparing.
8.1.1.8.3 FilterFlag
             Name                  Description
             FilterFlag_Constant All constants are ignored. Only formulas are compared.
             s
             FilterFlag_Datatyp Differences in datatype are ignored. Use to ignore differences between
             e                  date
                                values and string values representing dates.
             FilterFlag_Enabled Enable or disable all other filters options.
             FilterFlag_Formula All formulas are ignored. Only constants are compared.
             s
             FilterFlag_HiddenC Data in hidden columns will be ignored.
             ols
             FilterFlag_HiddenR Data in hidden rows will be ignored.
             ows
             FilterFlag_None       No filters will be used.
             FilterFlag_SameVal Different cell values/formulas with same result will be ignored.
             ues
             FilterFlag_StringCa Text compare case Insensitive. "ABC" vs "abc" will be considered as equal.
             se
             FilterFlag_StringSp Text compare trim text. "ABC " vs "ABC" will be considered as equal.
             ace
             FilterFlag_Relative If this flag is on, then the relative differences (%) are filtered out (instead
             Tolerance           of numeric differences #)
8.1.1.8.4 FormatFlag
            Name                              Description
            FormatFlag_Alignment              Compare cell alignment properties.
            FormatFlag_Border                 Compare cell border properties.
            FormatFlag_Enabled                Enable or disable all other formats options.
            FormatFlag_Font                   Compare cell font properties.
            FormatFlag_None                   No formats are compared.
            FormatFlag_Number                 Compare cell number (numberformat) properties.
            FormatFlag_Pattern                Compare cell pattern (interior/fill) properties.
            FormatFlag_Protection             Compare cell protection properties.
8.1.1.8.5 HighlightType
            Name                              Description
            HighlightType_None                Differences are not highlighted.
            HighlightType_Standard Differences are highlighted. No Cell coloring for all cells if not
                                   removed
                                   before processing.
            HighlightType_WithRese Differences are highlighted. Cell coloring for all cells is removed
            t                      before
                                   processing.
8.1.1.8.6 MatchIncludeFlag
            Name                                        Description
            MatchIncludeFlag_EmptySheets                Empty sheets will be included by AddMatched
            MatchIncludeFlag_HiddenSheets Hidden sheets will be included by AddMatched
            MatchIncludeFlag_None                       Visible worksheets with content will be included. Default
                                                        setting.
            MatchIncludeFlag_ProtectedSheet Protected sheets will be included by AddMatched
            s
8.1.1.8.7 MatchType
            Name                               Description
            MatchType_AllByCodeName            All included sheets are matched by code name.
            MatchType_AllByIndex               All included sheets are matched by index.
            MatchType_AllByName                All included sheets are matched by name.
            MatchType_FirstByCodeName The first matched sheets with the same code name are added.
            MatchType_FirstByIndex             The first matched sheets are added.
            MatchType_FirstByName              The first matched sheets with the same name are added.
            MatchType_Manual                   Pairs were modified or added with Add
8.1.1.8.8 OutlineFlag
            Name                               Description
            OutlineFlag_DifferentRows          Hide different column: (linked, some cells are different).
            OutlineFlag_DuplicateRows          Hide rows with either duplicate keys or records (only in
                                               database mode).
            OutlineFlag_Enabled                Enable or Disable all other Outline options.
            OutlineFlag_IdenticalRows          Hide identical rows (linked, without cell differences).
            OutlineFlag_MissingCols            Hide missing columns: (not occurring in the other worksheet).
            OutlineFlag_MissingRows            Hide missing rows: (not occurring in the other worksheet).
            OutlineFlag_None                   No rows/columns will be hidden.
8.1.1.8.9 ReportType
            Name                      Description
            ReportType_Hyperlink A workbook is created, range addresses are hyperlinks to the original
            s                    document.
            ReportType_None           No report is created.
            ReportType_Standard A workbook is created, range addresses are plain text.
8.1.1.8.10 ResultType
            Name                          Description
            ResultType_DifferentCom Number or detail information of different comments.
            ment
            ResultType_DifferentCont Number of different (entered) cell values/formulas.
            ent
            ResultType_DifferentForm Number of different formats.
            at
            ResultType_DifferentNam Number of different Excel names.
            e
            ResultType_DifferentValue Number of different calculated cell values (results).
            ResultType_DuplicateKey Number of duplicated primary keys.
            ResultType_DuplicateRec           Number of duplicated or redundant records.
            ResultType_MissingCol             Number of different columns.
            ResultType_MissingRow             Number of different rows.
            ResultType_MissingWks             Number of missing worksheets.
8.1.1.8.11 sideID
            Name          Description
            sideID_src Selects the 1st member (Source) of the set. NOTE: value is 0).
            sideID_tgt Selects the 2nd member (Target) of the set. NOTE: value is 1).
8.1.1.8.12 WSOptionFlag
            Name                              Description
            WSOptionFlag_Cols1on1             Columns will be linked 1 on 1 without finding inserted/deleted
                                              columns.
            WSOptionFlag_None                 Linking is disabled.
            WSOptionFlag_Rows1on1 Rows will be linked 1 on 1 without finding inserted/deleted rows.
           '***************************************************************
           '*                                                             *
           '*                    SYNKRONIZER 11                           *
           '*              HELPER PROCEDURES/FUNCTIONS                    *
           '*                                                             *
           '* - requires a DEVELOPER license of Synkronizer 11            *
      '------------------------------------------------------------
      'this wrapper procedure initializes the Synkronizer application object
            'Note:
            'During setup the Addin is installed for All Users by writing
            'the instructions to the registry under
            'HKLM\Software\Microsoft\Office\Excel\Addins
           cai.Connect = True
         End If
         Set snk = cai.Object
       End If
End Sub
      '------------------------------------------------------------
      'this procedure closes a project
           '----------------------------------------------------
           'this procedure checks if the defined
           'folders & files are valid
              'check folders
              If ROOT <> "" Then              Debug.Assert Len(Dir(ROOT, vbDirectory)) > 0
              If FOLDERSRC <> ""              Then Debug.Assert Len(Dir(FOLDERSRC, vbDirectory))      >   0
              If FOLDERTGT <> ""              Then Debug.Assert Len(Dir(FOLDERTGT, vbDirectory))      >   0
              If FOLDERREP <> ""              Then Debug.Assert Len(Dir(FOLDERREP, vbDirectory))      >   0
              If FOLDERPRJ <> ""              Then Debug.Assert Len(Dir(FOLDERPRJ, vbDirectory))      >   0
              If FOLDERLOG <> ""              Then Debug.Assert Len(Dir(FOLDERLOG, vbDirectory))      >   0
              'check files
              If FILESRC <>         ""   Then   Debug.Assert   Len(Dir(FILESRC))   >   0
              If FILETGT <>         ""   Then   Debug.Assert   Len(Dir(FILETGT))   >   0
              If PROTSRC <>         ""   Then   Debug.Assert   Len(Dir(PROTSRC))   >   0
              If PROTTGT <>         ""   Then   Debug.Assert   Len(Dir(PROTTGT))   >   0
End Sub
           '---------------------------------------------------------------
           'this function returns the not matched files
For i = 1 To 2
          For j = 1 To UBound(aFiles)
            If Len(Dir(Choose(i, sSrcFolder, sTgtFolder) & aFiles(j))) = 0
      Then
              ReDim Preserve aNotMatched(UBound(aNotMatched) + 1)
              aNotMatched(UBound(aNotMatched)) = Choose(i, sSrcFolder,
      sTgtFolder) & aFiles(j)
            End If
          Next j
         ReDim aFiles(0)
       Next i
Get_NotMatchedWorksheets = aNotMatched
End Function
      '---------------------------------------------------------------
      'this function returns the differences of a project
      'if on pair is compared, all detailed differences are returned
      'if multiple pairs are compared, the total differences per pair are
      returned
       If oProj.Pairs.Count = 1 Then
         'one pair » return detailed differences
         sMsg = oProj.Results.SumText
       Else
         'multiple pairs » return total differences per pair
         i = 1
         For Each p In oProj.Pairs
           sMsg = sMsg & p.SheetName(sideID_src) & vbTab & _
                  p.Results.Sum & vbNewLine
           i = i + 1
           If i > 20 Then Exit For
         Next p
        GetDifferences = sMsg
      End Function
           '---------------------------------------------------------------
           'this function compares the files of two folders
           '
           'Parameter description
           'Paramater description:
           'sFolderSrc: Folder with source files to be compared
           'sFolderTgt: Folder with target files to be compared
           'bHighlight: Select True if differences should be highlighted
           'sFolderLog: If difference reports are needed, enter folder. Optional.
           'sFolderLog: If a log file is needed, enter folder. Optional
t0 = Timer
            With oProj
              'load files
              .Files.Load sFileSrc, sFileTgt
                       'compare!
                       .Execute
                       'log differences
                       If sFolderLog <> "" Then
                         'Print #1, aFiles(i) & vbTab & .Results.Sum
                         Call Logfile_PrintDiffs(oProj)
                       End If
                       If .Results.Sum Then
                         'if differences found, create report
                         n(1) = n(1) + 1
End If
      theExit:
        Reset
        Set oProj = Nothing
        Set snk = Nothing
        Exit Function
      theError:
        Dim sErr As String
        sErr = Err.Number & ": " & Err.Description
        On Error Resume Next
        If Not oProj Is Nothing Then
          oProj.Close True, False
        End If
        SynkFolders = sErr
        Resume theExit
      End Function
      '---------------------------------------------------------------
      'this function compares one source file against all files of a target
      folder
      '
      'Paramater description:
      'sFileSrc:    Source file
      'sFolderTgt: Folder with target files to be compared
      'bHighlight: Select True if differences should be highlighted
      'sFolderLog: If difference reports are needed, enter folder. Optional.
      'sFolderLog: If a log file is needed, enter folder. Optional
                                              sFolderTgt As String, _
                                              bHighlight As Boolean, _
                                              Optional sFolderRep As String, _
                                              Optional sFolderLog As String) As String
t0 = Timer
         With oProj
           'load files
           .Files.Load sFileSrc, sFileTgt
            'compare!
            .Execute
            'log differences
            If sFolderLog <> "" Then
              'Print #1, aFiles(i) & vbTab & .Results.Sum
              Call Logfile_PrintDiffs(oProj)
            End If
If .Results.Sum Then
                          End With
                        End If
                      End If
                    Else
                      'no differences noted; close report without saving
                      n(0) = n(0) + 1
                    End If
                      '.Files.Workbook(sideID_tgt).Save
                    End If
              'return value
              SynkSrcFolder = "finished" & vbLf & _
                              n(0) & " workbooks without differences" & vbLf & _
                              n(1) & " workbooks with differences, see reports"
           theExit:
             Reset
             Set oProj = Nothing
             Set snk = Nothing
             Exit Function
           theError:
             Dim sErr As String
             sErr = Err.Number & ": " & Err.Description
             On Error Resume Next
        SynkSrcFolder = sErr
        Resume theExit
      End Function
      '---------------------------------------------------------------
      'this procedure writes all project differences in a new workbook
       'create workbook
       iWksCount = Application.SheetsInNewWorkbook
       Application.SheetsInNewWorkbook = 1
       Set wkb = Workbooks.Add
       Application.SheetsInNewWorkbook = iWksCount
       'name worksheet
       wks.Name = "Project Differences"
       val = oProj.Results.ArrayDetails
       If wks.UsedRange.Cells.CountLarge = 1 Then
         Set rng = wks.Cells(1)
       Else
         With wks.UsedRange
         Set rng = wks.Cells(.Row + .Rows.Count, .Column)
         End With
       End If
        If IsEmpty(val) Then
          rng.Offset(0, 0).Value = "no diffs"
        Else
          Set rng = rng.Offset(0, 0).Resize(UBound(val, 1) + 1, UBound(val, 2)
      + 1)
          rng.Clear
          rng.Resize(, 11).NumberFormat = "@"
          rng.Resize(, 4).HorizontalAlignment = xlLeft
          rng.VerticalAlignment = xlTop
rng.Value2 = val
End If
              'format range
              With rng
                .Rows(1).Font.Bold = True
.Columns("I:K").HorizontalAlignment = xlRight
                 .Columns("A").ColumnWidth =   20
                 .Columns("B:K").ColumnWidth   = 8
                 .Columns("D:E").ColumnWidth   = 32
                 .Columns("F:H").ColumnWidth   = 18
                .Columns("F:G").EntireColumn.Hidden = True
                For Each p In oProj.Pairs
                  If p.DBKeys <> "" Then
                    .Columns("F:G").EntireColumn.Hidden = False
                    Exit For
                  End If
                Next p
              End With
              DoEvents
              Application.ScreenUpdating = True
End Sub
           '---------------------------------------------------------------
           'this procedure creates a new workbook and
           'writes all pair differences in a separate worksheet
              'create workbook
              iWksCount = Application.SheetsInNewWorkbook
              Application.SheetsInNewWorkbook = oProj.Pairs.Count
              Set wkb = Workbooks.Add
              Application.SheetsInNewWorkbook = iWksCount
         'name worksheet
         Set wks = wkb.Worksheets(iPair)
         wks.Name = p.SheetName(0)
         'get results
         val = p.Results.ArrayDetails
         Set rng = wks.Cells(1)
         'write title
         With rng
           .Value = p.SheetName(0)
           .Font.Size = 12
           .Font.Bold = True
         End With
         'format range
         With rng
           .Rows(1).Font.Bold = True
.Columns("I:K").HorizontalAlignment = xlRight
            .Columns("A").ColumnWidth =   20
            .Columns("B:K").ColumnWidth   = 8
            .Columns("D:E").ColumnWidth   = 32
            .Columns("F:H").ColumnWidth   = 18
iPair = iPair + 1
Next p
             DoEvents
             Application.ScreenUpdating = True
           End Sub
           '---------------------------------------------------------------
           'this procedure creates a log file with all differences
              'source file
              sText = "Source File"
              sLine = sText & String(34 - Len(sText), " ") & oProj.Files(sideID_src)
              Print #1, sLine
              'target file
              sText = "Target File"
              sLine = sText & String(34 - Len(sText), " ") & oProj.Files(sideID_tgt)
              Print #1, sLine
              '--------------------------------------------------------------
              'heading row differences
              sText    =
                      "Worksheet names"
              sLine    =
                      sText & String(32 - Len(sText), " ")
              sLine    =
                      sLine & " Total"
              sLine    =
                      sLine & _
                      " Columns" & _
                      " DupRecs" & _
                      " DupKeys" & _
                      "     Rows" & _
                      " Contents" & _
                      "   Values"
              If CBool(oProj.Settings.Formats And FormatFlag_Enabled) Then
                sLine = sLine & " Formats"
              End If
              If CBool(oProj.Settings.Contents And ContentFlag_Comments) Then
                sLine = sLine & " Comments"
              End If
              If CBool(oProj.Settings.Contents And ContentFlag_Names) Then
                sLine = sLine & "    Names"
              End If
      '--------------------------------------------------------------
      'pair differences
          sText = CStr(.Sum)
          sLine = sLine & String(7 - Len(sText), " ") & sText
          sText = .SumTextByType(ResultType_MissingCol)
          sLine = sLine & String(9 - Len(sText), " ") & sText
          sText = .SumTextByType(ResultType_DuplicateRec)
          sLine = sLine & String(9 - Len(sText), " ") & sText
          sText = .SumTextByType(ResultType_DuplicateKey)
          sLine = sLine & String(9 - Len(sText), " ") & sText
          sText = .SumTextByType(ResultType_MissingRow)
          sLine = sLine & String(9 - Len(sText), " ") & sText
          sText = .SumTextByType(ResultType_DifferentContent)
          sLine = sLine & String(9 - Len(sText), " ") & sText
          sText = .SumTextByType(ResultType_DifferentValue)
          sLine = sLine & String(9 - Len(sText), " ") & sText
      '--------------------------------------------------------------
      'total differences
                 With oProj.Results
                   sText = "Total"
                   sLine = sText & String(32 - Len(sText), " ")
                    sText = CStr(.Sum)
                    sLine = sLine & String(7 - Len(sText), " ") & sText
                    sText = .SumTextByType(ResultType_MissingCol)
                    sLine = sLine & String(9 - Len(sText), " ") & sText
                    sText = .SumTextByType(ResultType_DuplicateRec)
                    sLine = sLine & String(9 - Len(sText), " ") & sText
                    sText = .SumTextByType(ResultType_DuplicateKey)
                    sLine = sLine & String(9 - Len(sText), " ") & sText
                    sText = .SumTextByType(ResultType_MissingRow)
                    sLine = sLine & String(9 - Len(sText), " ") & sText
                    sText = .SumTextByType(ResultType_DifferentContent)
                    sLine = sLine & String(9 - Len(sText), " ") & sText
                    sText = .SumTextByType(ResultType_DifferentValue)
                    sLine = sLine & String(9 - Len(sText), " ") & sText
End Sub
        '*******************************************************************
        '*                                                                 *
        '*                    SYNKRONIZER 11                               *
        '*                     VBA EXAMPLES                                *
        '*                                                                 *
        '* To test the examples you need                                   *
        '* - to have a DEVELOPER license of Synkronizer 11                 *
        '* - to create a reference to 'Synkronizer 11 Object Library'      *
        '* - include the module 'snk_helper_functions' which contains   *
        '*    helper procedures and functions                              *
        '*                                                                 *
        '*******************************************************************
        'define folders
        Public Const ROOT As String = "D:\Documents\"
        Public Const FOLDERSRC As String = ROOT & "Source\"
        Public Const FOLDERTGT As String = ROOT & "Target\"
        Public Const FOLDERREP As String = ROOT & "Reports\"
        Public Const FOLDERPRJ As String = ROOT & "Projects\"
        Public Const FOLDERLOG As String = ROOT & "Log\"
        'define files
        Public Const FILESRC   As   String   =   FOLDERSRC   &   "Source 1.xlsx"
        Public Const FILETGT   As   String   =   FOLDERTGT   &   "Target 2.xlsx"
        Public Const FILEREP   As   String   =   FOLDERREP   &   "Synkronizer_Difference_Report.xlsx"
        Public Const FILEPRJ   As   String   =   FOLDERPRJ   &   "SynkProject.xml"
        Public Const PROTSRC   As   String   =   FOLDERSRC   &   "Protected 1.xlsx"
        Public Const PROTTGT   As   String   =   FOLDERTGT   &   "Protected 2.xlsx"
        '-----------------------------------------------------------
        'Example 1
        '- compare all sheets with the same name
        '- create a difference report
        '- highlight differences
        '- show all differences except identical rows
        '- create a project with all settings
              'create project
              Set oProj = snk.NewProject
              With oProj
                 'load files
                 .Files.Load FILESRC, FILETGT
                 'define worksheets
                 With .Pairs
                   .MatchType = MatchType_AllByName
                   .AddMatched
                 End With
With .Settings
                    'create a report
                    .Report = ReportType_Standard
                    'highlight differences
                    .Highlight = HighlightType_WithReset
End With
                 'start Synkronizer
                 .Execute
                 'save project
                 If snk.DisplayUI = False Then
                   .Save (FILEPRJ)
                 End If
                 'close project
                 CloseProject
End With
       'display message
       MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
      Err_Example:
        MsgBox Err.Description, vbExclamation, "Synkronizer"
      End Sub
      '-----------------------------------------------------------
      'Example 2
      '- compare a project
       'start Synkronizer
       oProj.Execute
       'close project
       CloseProject
       'display message
       MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
      Err_Example:
        MsgBox Err.Description, vbExclamation, "Synkronizer"
      End Sub
      '-----------------------------------------------------------
      'Example 3
              'create project
              Set oProj = snk.NewProject
With oProj
                 'define files
                 .Files.Load PROTSRC, PROTTGT
With .Pairs
                    'add worksheets
                    .AddPair "Customer List", "Customer List"
                    .AddPair "Customer Profile", "Customer Profile"
                 'highlight differences
                 With .Settings
                   .Highlight = HighlightType_Standard
                 End With
                 'start Synkronizer
                 .Execute
                 'close project
                 CloseProject
End With
              'display message
              MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
      Err_Example:
        MsgBox Err.Description, vbExclamation, "Synkronizer"
      End Sub
      '-----------------------------------------------------------
      'Example 4
      '- compare first sheets
      '- compare formats, comments, names & use filters
      '- create a report
       'create project
       Set oProj = snk.NewProject
With oProj
         'define files
         .Files.Load FILESRC, FILETGT
With .Settings
            'create a report
            .Report = ReportType_Standard
End With
                 'compare files
                 .Execute
                   'save report
                   With .ReportWorkbook
                     .SaveAs file name:=FILEREP
                     .Close SaveChanges:=False
                   End With
                 End If
                 'close project
                 CloseProject
End With
              'display message
              MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
           Err_Example:
             MsgBox Err.Description, vbExclamation, "Synkronizer"
           End Sub
           '-----------------------------------------------------------
           'Example 5
           '- database comparison
           '- highlight differences
'create project
With oProj
         'define files
         .Files.Load FILESRC, FILETGT
         'highlight differences
         With .Settings
           .Highlight = HighlightType_WithReset
         End With
         'start Synkronizer
         .Execute
         'close project
         CloseProject
End With
       'display message
       MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
      Err_Example:
        MsgBox Err.Description, vbExclamation, "Synkronizer"
      End Sub
      '-----------------------------------------------------------
      'Example 6
      '- link rows 1 on 1
      '- highlight differences
              'create project
              Set oProj = snk.NewProject
With oProj
                 'define files
                 .Files.Load FILESRC, FILETGT
                 'highlight differences
                 With .Settings
                   .Highlight = HighlightType_WithReset
                 End With
                 'start Synkronizer
                 .Execute
                 'close project
                 CloseProject
End With
              'display message
              MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
           Err_Example:
             MsgBox Err.Description, vbExclamation, "Synkronizer"
           End Sub
           '-----------------------------------------------------------
           'Example 7
           '- compare a project
           '- create workbook which contains all differences
       'start Synkronizer
       oProj.Execute
       'close project
       CloseProject
       'display message
       MsgBox sMsg, vbOKOnly + vbInformation, "Synkronizer"
Exit Sub
      Err_Example:
        MsgBox Err.Description, vbExclamation, "Synkronizer"
      End Sub
      '-----------------------------------------------------------
      'Example 8
      '- compare all Excel files with the same names of two folders
      '- a difference report will be created of each file set
      '- a log file will be created
       'Paramater description:
       'sFolderSrc: Folder with source files to be compared
       'sFolderTgt: Folder with target files to be compared
       'bHighlight: Select True if differences should be highlighted
       'sFolderLog: If difference reports are needed, enter folder. Optional.
              sMsg = SynkFolders(sFolderSrc:=FOLDERSRC, _
                                 sFolderTgt:=FOLDERTGT, _
                                 bHighlight:=True, _
                                 sFolderRep:=FOLDERREP, _
                                 sFolderLog:=FOLDERLOG)
MsgBox sMsg
End Sub
           '-----------------------------------------------------------
           'Example 9
           '- compare one "source" file against a series of target files
           '- a difference report will be created for each file set
           '- a log file will be created
              'Paramater description:
              'sFileSrc:    Source file
              'sFolderTgt: Folder with target files to be compared
              'bHighlight: Select True if differences should be highlighted
              'sFolderLog: If difference reports are needed, enter folder. Optional.
              'sFolderLog: If a log file is needed, enter folder. Optional
              sMsg = SynkSrcFolder(sFileSrc:=FILESRC, _
                                   sFolderTgt:=FOLDERTGT, _
                                   bHighlight:=True, _
                                   sFolderRep:=FOLDERREP, _
                                   sFolderLog:=FOLDERLOG)
MsgBox sMsg
End Sub
           With the Developer Edition of Synkronizer 11, it is also possible to compare Excel files via the
           command line commands. The Excel files can be compared fully automated with a single
           mouse click - without opening Excel!
      command. The program then generates different reports and log files with all differences.
      While executing, the program will start a hidden instance of Excel. After the comparison
      process the Excel instance will be closed again.
Proceed as follows:
             @echo off
             "C:\Program Files\Synkronizer\Synkronizer 11\Synk.exe"
           1. Right-click an open area on the desktop, point to New, and then click Shortcut.
           2. Click Browse.
           3. Locate synk.exe which is stored in the following folder:
              C:\Program Files\Synkronizer\Synkronizer 11\
              click Open, and then click Next.
           4. Type a name for the shortcut and click Finish button.
           5. Right-click on the created shortcut.
           6. Enter in the field "Start in" the folder, in which the Synkronizer files should be stored.
           7. Click OK and close the shortcut
8.2.1 Reference
           This page contains the syntax of the command line utility and a description of all variables,
           commands and settings.
           Syntax
           synk[.exe]
             [/dir={Parent folder}]
             [/src={Source folder/file}]
             [/tgt={Target folder/file}]
             [/xml={Synkronizer project file}]
             [/rep={Report folder}]
             [/log={Log file}]
             [/m={Matching options}]
             [/r={Report options}]
             [/c]
             [/x]
      Variables
      /dir={Parent folder}
      Optional. Name/location of the parent folder. The difference reports and log files will be stored
      within this folder if not defined separately.
      /src={Source folder/file}
      Required. Folder of the source files or the name of the source file. If you want to compare all
      files of a folder you need to enter a folder otherwise enter a file name. You can enter an
      absolute path/file or a path/file name relative to the parent directory (/dir).
      /tgt={Target folder/file}
      Required. Folder of the target files or the name of the target file. If you want to compare all
      files of a folder you need to enter a folder otherwise enter a file name. You can enter an
      absolute path/file or a path/file name relative to the parent directory (/dir).
      Note
      If the folders or file names contain spaces and you are working with batch files and/or
      Windows shortcuts you need to use apostrophes (double quotes) for addressing the folders/
      file names.
      Tools
      matching (/m=)
      Optional. Matching options. You can define how the worksheets shall be matched. The
      following options are allowed:
        1=Compare all worksheets by name (default setting)
        2=Compare all worksheets by index
        -1=Compare first worksheets by name
        -2=Compare first worksheets by index
           highlight (/h=)
           Optional. Highlighting options. The following options are allowed:
            1=Differences are highlighted
            0=No differences are highlighted (default setting)
           report (/r=)
           Optional. Difference report options. The following options are allowed:
            1=A standard difference report is created (default setting)
            2=A difference with hyperlinks will be created.
            0=No difference report will be created.
           Commands
           /?
           Synkronizer CommandLine Utility help. All commands and settings are displayed.
           /f
           Files to be compared. You can see which files will be compared and which not.
           /v
           The settings of the current project are displayed. You can see the folders, file names and
           comparison settings.
           /c
           Starts the comparison process. You can enter ctrl-c to terminate the comparison process.
           /rs
           Run & show. Runs the first batch (or file pair) and opens Synkronizer and shows the results
           screen with the Excel files.
           /cs
           Starts the comparison process and saves the files at the end under a new name. The original
           remain files unchanged. You can enter ctrl-c to terminate the comparison process.
           /x
           The Synkronizer CommandLine Utility will be closed.
8.2.2 Examples
           This section contains some examples on how you can compare Excel files with the Synkronizer
           CommandLine Utility.
DBRow 90
Index                                                   deactivate 65
                                                        Deactivate software 55, 65
                                                        Deactivate your license online 65
                                                        DefaultsSave 93
-"-                                                     Deinstall software 55
                                                        delete "Synkronizer colors" 12
"Normal" worksheets      30                             Delete different columns/rows 47
                                                        Delete unwanted differences 44
-A-                                                     delete worksheets 23
                                                        Detail information of differences 47
actions (highlighting, create report, outlining)   20   Details with each difference 98
activation 63, 64                                       Differences in calculated formulas 45
activation process 63                                   Differences in entered values/formulas 45
ActiveProject 77                                        Different calculated values 100
Add 85, 89                                              Different cell comments 100
AddMatched 84                                           Different cell formulas 100
Admin rights 54                                         Different cell results 100
Administrative Rights 54                                Different cell values 100
Alignment 37                                            Different Excel names 100
Automatically pair worksheets 23, 25                    Different formats 100
                                                        DisplayStatus 77
-B-                                                     Duplicate keys 30, 45, 101
                                                        Duplicate records 101
Border     37                                           Duplicate Records (Redundant records) 30
                                                        Duplicate records (redundant rows) 45
-C-                                                     Dupliocate primary keys 101
-D-                                                     -F-
Database flag 104                                       FileName 82
database options 28                                     Files 79
Database settings 28                                    Fill 37
database structure 28                                   Filter options 51
DBKeys 89                                               FilterEquivalents 94
DBOptions 90                                            Filters 20, 38, 94
Save 79                                  -U-
save project 36
Save project as default 12               Undo settings 12
Saves source and target files   82       uninstall 65
Scripted Installation 60                 Uninstall software 55
secret answer 63                         Unload 78
secret question 63                       Upgrade 15
Select difference 47
Select differences 45                    -V-
select Excel files 20
Select Form 20                           vba 124
Select tab ribbon 35                     Version Info   15
select workbooks 23
-W-
 Window 83
 Workbook 83
 Worksheet linking options 107
 worksheet options 23
 worksheet properties (ranges) 20
 worksheet settings 25
 wrapper 124