Index card generator – version 2!

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

Many people use a spreadsheet to house their Scrum Product Backlog. That works quite fine. However, during sprint planning meetings it is usually much more effective to use physical index cards. See my book Scrum and XP from the Trenches for the reasoning behind this.

Here’s a simple tool that generates printable index cards in A5 format directly from your Excel-based product backlog. Thanks Stefan Nijenhuis for making this available!

There is nothing to install. This is simply an Excel document containing a product backlog and a “generate index cards” button.

For more info, see the readme inside the document.

This version requires only Microsoft Excel. The previous version required both Excel and Access.

Update (2008-01-04)

Here’s another excel-based index card generator from Claudio Gambetti. Contains a few extra features such as tracks (a.k.a. themes) and components, as mentioned in my book. You choose your flavor. Thanks for contributing this Claudio!

Update (2011-06-23)

Here’s another version from Nathalie Beauguerlange. He says:

“I have made a little modification on it, because the cards were a bit too large for our scrum board, so I’ve resized the template and changed the cards number per page, allowing me to print 4 cards per A4 format page, so that we can use less paper.”

Update (2011-06-28)

Here’s a Google Docs version of this tool (and instruction video), for those who use Google Spreadsheets to house their backlog. I usually prefer Google Spreadsheets over Excel, since it is multiuser and in the cloud. And requires no installation. And no payment :o)

Thanks David Vujic for making this available.


  • 1
    2007-12-18 - 05:06 | Permalink

    Does A5 correspond to card stock that would be available in the US?  My team is just starting to use scrum, and printing cards sounds like a great idea!

    (Hopefully we should be able to change the layout if necessary to fit our needs.)



  • 2
    2007-12-18 - 05:53 | Permalink

    Actually, it isn’t designed primarily to print on physical index cards.

    It prints to normal paper, but two stories per page. So you print to your normal printer paper, then take out scissors and cut each paper in half. That gives you the equivalent of story cards in roughly A5 format (A5 = half the height of A4).

  • 3
    2007-12-19 - 12:34 | Permalink

    It now works for Excel 2000 as well. Thanks Thierry Cros for help in fixing that.

  • 4
    2008-08-18 - 06:54 | Permalink

    Have anyone ported this script to OpenOffice? It seems to work a little bit but fails on a syntax error when trying to update the index cards.

  • 6
    2008-08-19 - 09:48 | Permalink

    Not that I know of…

  • 7
    2008-09-22 - 03:35 | Permalink

    I have made it work in openoffice, replace all variables named "name" with "nameVar", since name is a reserved word. Then update the sub OpenForm() to look like this:

    Dim dlgUserForm1 as object

    Public Sub OpenForm()
        Dim libStandard
        Dim libDialog

        libStandard = DialogLibraries.getByName("Standard")
        libDialog = libStandard.getByName("UserForm1")
        dlgUserForm1 = CreateUnoDialog(libDialog)
    End Sub

  • 8
    2010-05-21 - 08:05 | Permalink

    Hi, I am not used to use scripts like this in excel and openoffice. I opened the file in openoffice (Tools > Macro > Organize Macros) and the scripts are with the lines commented with Rem.

    What I did wrong ?

  • 9
    2009-03-04 - 09:43 | Permalink

    I was wondering what the columns behind estimate in Claudios sheet are good for. The ones with db, api, etc.

  • 10
    2009-08-03 - 03:02 | Permalink

    Many thanks for publishing these generators. I’m sure they will be very helpful in our team.

    Best regards

  • 11
    2009-09-07 - 07:51 | Permalink

    Hi, this script is for the Excel for Windows. There is for Mac OS or Office 2008?


  • 12
    Montecchyo - Brazil
    2009-10-05 - 04:58 | Permalink

    Thx a lot. Nice excel template and card generator.

  • 13
    2010-01-21 - 06:25 | Permalink

    thanks for the script.. we have a different format for our story cards and i have modified the script accordingly.. pretty useful stuff.. thanks again!!

  • 14
    2010-03-09 - 01:03 | Permalink

    Hi Henrik,
    I’m implementing Scrum in an organisation and would really like to use your Index Card Generator for the Product Backlog. However, we’ve tried it on various platforms but keep getting the same error when trying to generate the index cards: “The Macro !OpenForm” cannot be found”.

    Hope you or anyone else monitoring can help.



  • 15
    2010-03-22 - 08:31 | Permalink

    How about 1 that works with google docs?

  • 16
    2010-03-26 - 11:44 | Permalink

    Thanks for sharing this really helpful tool. I modified the template UI a bit and have a quick question.

    How do you modify the scripts in Excel 2007? I needed to split the lower cell (large cell for the description) into 4 cells, which I then fill in with 4 status details later. Having done so, the priority cell had to move to cell G3 instead of D3. As a result the Priority entry in the BACKLOG does not come over to the CARDS of course.

    Basically, I need to change the script to make it grab the priority value from G3 instead of D3. Any help is appreciated.

    Thank you,

  • 17
    2010-03-31 - 09:09 | Permalink

    I figured it out. modified the function Private Sub FillTemplate to suit my needs.

  • 18
    2010-09-09 - 01:33 | Permalink

    The Problem is, that my Acceptance Criteria is often longer than the space allows. Like that, it cuts parts from the criteria off on the cards.
    Isn’t there a possibility to put all the text on the card?

  • 19
    Tom Murton
    2011-07-04 - 10:33 | Permalink

    Ive got exactly the same problem, dont know Excel well enough to change the script myself
    I am actually using it for my own to do list

  • 20
    2011-02-03 - 07:22 | Permalink

    thanks a lot

  • 21
    2011-02-17 - 09:41 | Permalink

    Hi there
    Is there any way I can get this wonderful index card generator to work on a MAC? I have Numbers and Excel, but the macro is removed when I open the file.
    Any help would be greatly appreciated.


  • 22
    2011-02-17 - 09:56 | Permalink

    I’m sure there is a way to make it work. If anybody has time to figure it out then feel free to send a mac-friendly version of the index card generator to me and I’ll add it to this blog entry (with due credits of course). Thanks for pointing out the problem.

  • 23
    2011-02-19 - 12:06 | Permalink

    Microsoft in their wisdom removed VBA support from Office for Mac 2004/2008, but I’ve learned that Office 2011 will bring that back.

    I almost finished converting to AppleScript-macros (which Office 200x does support, somewhat) a year or so ago. I’ll try to find that. Meanwhile I think the OpenOffice version is a way to go.

  • 24
    2011-02-19 - 05:32 | Permalink

    Thanks Thomas. I’ve heared several people claim that the index card generator works on Office 2011 for Mac. We’ll see if anyone finds a trick to make it work on earlier version of Office for Mac.

  • 25
    2011-05-31 - 04:31 | Permalink

    This card generator has been very helpful for a long time. However, I now had a backlog which really did not match the format of your templates. So I tried the old Word Mail Merge feature, linked to my backlog Excel file. Worked like a charm! Super simple to arrange format and no fear of messing up the VBA script.

  • 26
    2011-06-01 - 07:59 | Permalink

    Cool, thanks for reporting back!

  • 27
    2011-06-27 - 10:21 | Permalink

    Hi! I have written a Google Spreadsheet version of the Index Card Generator tool.

    Check out this blog post if you are interested:

  • 28
    2011-06-28 - 08:40 | Permalink

    Awesome! Thanks! Will add this link to the blog entry above.

  • 29
    2011-08-16 - 03:41 | Permalink

    I am still using version 1 – and very happy, except for 1 problem. I need to have a fractional Importance rating, e.g. 1.5.

    How I do I revise the tool for this?

  • 30
    Jerry Valle
    2011-09-22 - 16:49 | Permalink

    Hi Billie,

    Decimal types are not supported in vba. To make it work, malke the following changes:

    1.The values in the backlog Imp column are coerced to integer in clsIndexCard.Importance(). I set that back to string:

    Property Get Importance() As String

    ‘Dim i As Integer’ not sure why this is her so I commented it out. Jerry’

    If (IsNumeric(mImportance)) Then
    ‘Importance = CInt(mImportance) ‘removed the coercion. Jerry
    Importance = mImportance
    Importance = 0
    End If

    End Property

    2. Then in modIndexCard.QuickSort coerce Importance to single to preserve the decimals. Provided a snippet only as this is all you have to change, so locate the code and make the changes shown :

    Do While CSng(cards(lngLow).Importance) CSng(varTestVal.Importance)
    lngHigh = lngHigh – 1

    You’ll need to format the TEMPLATE’s Importance cell and the BACKLOG’s Imp column to be numeric with the number of paces left of the decimal you need.



  • 31
    Jerry Valle
    2011-09-22 - 16:50 | Permalink

    Hmmm. Looks like I forgot a line or two – use this:

    Do While CSng(cards(lngLow).Importance) CSng(varTestVal.Importance)
    lngHigh = lngHigh – 1

  • 32
    Jerry Valle
    2011-09-22 - 17:02 | Permalink

    Interesting, the tool is deleting the second set of code. It look slike it doesn’t like the than characters. Nevertheless, as you can see add the CSng(…) to to each expression that has .Importance. There will be two Do While lines with two occurences of Importance on each line change them to this being sure to keep the LT and GT symbols:
    Do While CSng(cards(lngLow).Importance) CSng(varTestVal.Importance)
    Do While CSng(cards(lngHigh).Importance) CSng(varTestVal.Importance)

    Ah, I see the HTML comments at the bottom of the page now, that explains what happened to the code.

    BTW, Billie, were you planning to use the decimal as a way of expressing priority.order?



  • 33
    2011-10-17 - 09:47 | Permalink

    […] Henrik Kniberg  has an excellent  Microsoft Excel spreadsheet for tracking Agile/SCRUM product backlogs. […]

  • 34
    2011-10-26 - 13:23 | Permalink


    Thank you very much for the google spreadsheet version, it works great.

    I changed the column “How to test” to read “Acceptance Criteria”, both in backlog and in template, but now when I create the card, the acceptance criteria comes up as “undefined” – where is the script that I need to change it, please?

    I’m sort of new in the excel thing,


  • 35
    2012-02-22 - 07:22 | Permalink

    […] template « Index Card Generator » de Henrik Kniberg pour imprimer nos […]

  • 36
    2012-03-07 - 02:03 | Permalink

    Great job on the generator. I have a question though. How do I modify the template? The format of our stories is a bit different than what I see in the template. I am unfamiliar with how to modify macros in Excel is there an easy explanation on how to modify the fields on the template?

    For instance, if there is no importance value the generator is filling that field with 0. I want to default to blank so we can fill it in by hand after printing out.

    Second, I don’t need the second notes field but need to add some other fields we track. how do I go about changing that?

    Third, how do I manage the number of stories that print per page?

    Thanks for any guidance, and again a huge thanks for the tool itself.

  • 37
    2012-04-04 - 12:50 | Permalink

    […] s Blog » Index card generator – version 2! Many people use a spreadsheet to house their Scrum Product Backlog. That works quite fine. However, during sprint planning meetings it is usually much more effective to use physical index cards. See my book Scrum and XP from the Trenches for the reasoning behind this. […]

  • 38
    2012-07-19 - 16:03 | Permalink

    I navigated to the Google Spreadsheet version and there was no Story Cards menu item. Has this functionality been removed?

  • 39
    2012-09-11 - 21:05 | Permalink


    The Story Cards menu item is created when you are logged in to your gmail or Google Docs account. From there you should choose “file -> copy” to save your own version to work with.

  • 40
    Hossein Khalaj
    2013-03-18 - 12:51 | Permalink

    Excellent! Thanks. Thanks for sharing Henrik 😉

  • 41
    2013-04-05 - 13:37 | Permalink

    Great tool!!! Thanks for sharing 🙂

  • 42
    2013-04-15 - 17:11 | Permalink

    Thanks for the great book, and thanks for this script – much obliged

  • 43
    2013-08-22 - 18:00 | Permalink

    Thanks for the Macro to create te Cards of the backlog and THANKS FOR THE EXCELLENT book to get really into SCRUM

  • 44
    2014-05-13 - 16:31 | Permalink

    This is an amazing workbook to use. I see that you have backlog and cards. But is there a way to create a sprint please? Would very much appreciate your help on this as I am completely new to scrum. Cheers.

    • 45
      2014-05-20 - 10:15 | Permalink

      Glad you like the tool! This tool is just for printing index cards from a backlog. There’s no other support for things like sprints, etc. Google around and you’ll find plent of other tools & templates for that.

  • 46
    2014-09-16 - 22:37 | Permalink

    Great tool – thanks.

  • 47
    2015-12-28 - 10:32 | Permalink

    IDG has unfortunately removed their entire blog section/feature and posts are no longer accessible. Here’s the post about index card generator for Google spreadsheet, can you update your post with this one?

    I am very happy to see that a lot of people still use the tool and I think many have found it from this post.

  • 48
    2016-03-23 - 00:42 | Permalink

    Hi, has anyone resolved the template for Mac users? Cheers!

  • 49
    2017-08-07 - 01:04 | Permalink

    Thank you for publishing this – I was able to use it to create cards for tracking test items through our lab. Without it, I would never have been able to succeed so quickly!

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.