Hola Roberto,
Creo que pude arreglar su problema. Hice un UserForm con los objectos nombrados según lo que vi en el código. (La persona quien escribió eso sí hizo eso más fácil por haber seguido el "Hungarian Convention".) Logré que me funcionara. Cambié como tres cosas <ul>[*]PrintSelection es un "array" y no tuvo "subscript"[*]Creo que faltaba un aro (loop)[*]El método es .PrintOut no es .Print[/list]Si es posible recomiendo que trate de ponerse en contacto con quien escribió este programita porque realmente está bien hecho y me soprende que hayan errores así. Siempre es mejor comunicarse con el autor original cuando sea posible.
<font face=Courier New>
<SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> PrintCommon(<SPAN style="color:#00007F">ByVal</SPAN> blnPrint <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>)
<SPAN style="color:#00007F">Dim</SPAN> tmp <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, tmp2 <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> objSheet <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Object</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> PrintSelection() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> CurrentSelection() <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
Me.Hide
<SPAN style="color:#00007F">With</SPAN> Workbooks(drop_books.Value)
<SPAN style="color:#007F00">'Save the current users selection list</SPAN>
tmp = -1
<SPAN style="color:#00007F">ReDim</SPAN> CurrentSelection(0 <SPAN style="color:#00007F">To</SPAN> Windows(drop_books.Value).SelectedSheets.Count - 1)
<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> objSheet <SPAN style="color:#00007F">In</SPAN> Windows(drop_books.Value).SelectedSheets
tmp = tmp + 1
CurrentSelection(tmp) = objSheet.Name
<SPAN style="color:#00007F">Next</SPAN>
<SPAN style="color:#00007F">If</SPAN> optPageSeparate <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#00007F">For</SPAN> tmp = 0 <SPAN style="color:#00007F">To</SPAN> list_sheets.ListCount - 1
<SPAN style="color:#00007F">If</SPAN> list_sheets.Selected(tmp) <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#00007F">With</SPAN> .Worksheets(list_sheets.List(tmp))
<SPAN style="color:#00007F">If</SPAN> blnPrint <SPAN style="color:#00007F">Then</SPAN> .PrintOut <SPAN style="color:#00007F">Else</SPAN> .PrintPreview
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Next</SPAN>
<SPAN style="color:#00007F">Else</SPAN>
<SPAN style="color:#00007F">ReDim</SPAN> PrintSelection(0 <SPAN style="color:#00007F">To</SPAN> list_sheets.ListCount - 1)
tmp2 = -1
<SPAN style="color:#00007F">For</SPAN> tmp = 0 <SPAN style="color:#00007F">To</SPAN> list_sheets.ListCount - 1
<SPAN style="color:#00007F">If</SPAN> list_sheets.Selected(tmp) <SPAN style="color:#00007F">Then</SPAN>
tmp2 = tmp2 + 1
PrintSelection(tmp2) = .Worksheets(list_sheets.List(tmp)).Name
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Next</SPAN>
<SPAN style="color:#00007F">ReDim</SPAN> <SPAN style="color:#00007F">Preserve</SPAN> PrintSelection(0 <SPAN style="color:#00007F">To</SPAN> tmp2)
<SPAN style="color:#00007F">For</SPAN> tmp = <SPAN style="color:#00007F">LBound</SPAN>(PrintSelection) <SPAN style="color:#00007F">To</SPAN> <SPAN style="color:#00007F">UBound</SPAN>(PrintSelection)
<SPAN style="color:#00007F">With</SPAN> .Worksheets(PrintSelection(tmp))
<SPAN style="color:#00007F">If</SPAN> blnPrint <SPAN style="color:#00007F">Then</SPAN> .PrintOut <SPAN style="color:#00007F">Else</SPAN> .PrintPreview
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
<SPAN style="color:#00007F">Next</SPAN> tmp
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#007F00">'Reset back the original user's selection</SPAN>
.Sheets(CurrentSelection).Select
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
Unload Me
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
</FONT>
Atte,