Calendaring with the iPhone

Tonight we picked up an iPod Touch from our local Save-On Foods with some reward points that we’d been accumulating. This is pretty cool for a variety of reasons, including the fact that now my kid will try and scoop Mommy’s iPod Touch to play games, rather than my iPhone. J

In setting up the iPod Touch for Dee I ended up exploring the calendaring settings. Of the whole device, this was probably the most exciting part to her as she now has a device that she can take with her to check the family calendar. She was most impressed, and couldn’t care less that it was only keeping a local copy of her calendar on the phone.

Having my iPhone linked to our Exchange server at work though, I know how calendaring is supposed to work. It’s supposed to sync to the server so that it works with Outlook, ensuring another copy of the data exists too in case the device dies. So this got me thinking… we don’t have an exchange server at home, and I don’t really want to maintain one, but I wonder if there is a way to do this for the home user. A quick search (with Bing) turned up that you can integrate a Google calendar right into the iPhone or iPod Touch. And what’s even better is that in version 4 you can have multiple calendars. Holy crap!

This is truly awesome, as it solves an issue that I’ve been wanting dealt with for a long time… synching the family calendar. I lamented this to my buddy Steve French a while back, and he pointed me towards a product called Cozy to do this. It’s true that Cozy works, but I found it kind of cludgey, and it requires the Outlook is opened before it syncs. It also meant that Dee would have to put her entire calendar in Outlook, which she actually doesn’t use… she uses paper.

With her getting her hands on the iPod Touch though, she now has an input device that is much more portable than her massive appointment book. And with Google calendar, this gets even better. I’ve now linked her device up to two Google Calendars… hers and mine (both set up for this purpose.) So now I can book personal appointments into my calendar and they’ll show up on her phone under my name, and likewise the reverse is true too. VERY COOL!

The method is fairly simple. Set up a Google Calendar first. Then go to set up a new email account on the iPhone/iPod Touch, choose other, then add a CALDAV account. From there it’s pretty much follow the steps with the server being www.google.com.

Nice stuff!

Enabling Outlining Commands on a Protected Worksheet

I have a financial model that I set up using a grouping in some key places so that I could collapse sections of the model when I didn’t want to look at them. As I was handing off the model to someone else to work with, I wanted to protect the worksheets, but unfortunately there is no setting in the user interface to allow for expanding/collapsing the outlining tools when the sheet is protected. In fact, trying to do so gives you the following message:

I found this a little frustrating, but gave up on it. I expanded the model completely, protected the sheets and let the users have at ‘er.

Tonight at VBAExpress.com though, I was posting on a thread where the user had included the following in their code:

Sh.EnableOutlining = True

Wow! So obviously there IS a way to enable the outlining tools when the worksheet is protected, right? I ran the macro I had modified for the user and sure enough it worked. Cool!

So then I opened up a copy of my model and:

  • Ran the following code: Activesheet.EnableOutlining = True
  • Protected the worksheet

I didn’t work. What the hell?

After a little sleuthing I found out what the issue was. In order for the EnableOutlining to take effect, you must run the code that protects your worksheet with the userinterfaceonly:=true argument.

The unfortunate part of this is that userinterfaceonly:=true doesn’t stick between sessions. So that nice macro free workbook is now going to have to be saved into an xlsm format with the following code in it:

Private Sub Workbook_Open()

Dim ws As Worksheet

Application.ScreenUpdating = False

For Each ws In ThisWorkbook.Worksheets

With ws

.Protect userinterfaceonly:=True

.EnableOutlining = True

End With

Next ws

Application.ScreenUpdating = True

End Sub

 

That shouldn’t be necessary in my opinion, but whatever. A macro laden file is a small price to pay for the functionality. Man I love VBA!