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.

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.

49 responses on “Index card generator – version 2!

  1. 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. 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. 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.

  4. 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

  5. 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 ?

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

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

    Best regards

  8. 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!!

  9. 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.



  10. Hi,
    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,

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

  12. 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?

  13. 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

  14. 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.


  15. 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.

  16. 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.

  17. 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.

  18. 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?

  19. 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.



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

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

  21. 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?



  22. Hi,

    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,


  23. 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.

  24. Pingback: Scrum | Pearltrees
  25. I navigated to the Google Spreadsheet version and there was no Story Cards menu item. Has this functionality been removed?

  26. Warren:

    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.

  27. 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.

    1. 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.

  28. 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.