hye !
i’ve got some problem with this code :
i’ve got some Excel files…
there is 3 Excel i would like to make into one
each Excel file is determinate by it name and a department
like this :
rep1-tab1-22.xls
rep1-tab2-22.xls } = > rep-22.xls
rep1-tab3-22.xls /
rep2-tab1-29.xls
…
Sub ConvertHTMtoXLS(ldpt As String)
' Cette procedure crée 1 fichier xls par groupe de fichiers htm
On Error GoTo ErrorHandler
Set doc = ActiveDocument
' repertoire des fichiers htm et du fichier xls
Direct = "P:\test\prompt\"
doc.ExportSheetsAsHtml (Direct & ActiveDocument.Name & "-" & ldpt)
Set vbExcel = CreateObject("Excel.Application")
With vbExcel
' creation dun nouveau workbook pour importer les fichiers htm dedans
If Dir(Direct & doc.Name & "-" & ldpt & ".xls") <> "" Then
Kill Direct & doc.Name & "-" & ldpt & ".xls"
End If
.Workbooks.Add
.ActiveWorkbook.SaveAs Direct & doc.Name & "-" & ldpt & ".xls"
'For i = 1 To doc.Reports.Count
Set Rep = doc.Reports.Item(i)
repname = convert(Rep.Name)
.Workbooks.Open Direct & doc.Name & "-" & ldpt & "\" & repname & "\" & repname & ".htm"
If Dir(Direct & doc.Name & "-" & repname & "-" & ldpt & ".xls") <> "" Then
Kill Direct & doc.Name & "-" & repname & "-" & ldpt & ".xls"
End If
.ActiveWorkbook.SaveAs Direct & doc.Name & "-" & repname & "-" & ldpt & ".xls"
Copie la feuille de calcul dans le document Excel cible
.Workbooks(repname & "-" & ldpt & ".xls").Sheets(repname).Move _
Before:=.Workbooks(doc.Name & "-" & ldpt & ".xls").Sheets("Sheet1")
Next i
.ActiveWorkbook.Save
.Workbooks.Close
' Ferme lobject dapplication Excel
.Quit
End With
' libère la mémoire
Set vbExcel = Nothing
' supprime les fichiers Excel qui ne sont plus utile
For i = 1 To doc.Reports.Count
Set Rep = doc.Reports.Item(i)
repname = convert(Rep.Name)
Kill Direct & doc.Name & "-" & repname & "-" & ldpt & ".xls"
Next i
Exit Sub ' Exit to avoid handler.
ErrorHandler: ' Error-handling routine.
MsgBox "Numero erreur : " & Err.Number & vbLf & "Description : " & Err.Description & vbLf & "Source : " & Err.Source, vbCritical, "Error In Export"
End Sub
Function convert(b As String) As String
' transforme tout les caractères spéciaux HTML en _
repname = ""
For i = 1 To Len(b)
If Mid(b, i, 1) = " " Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "$" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "%" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "'" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "-" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "_" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "@" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "~" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "`" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "!" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "{" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "}" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "(" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = ")" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = ":" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "#" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "&" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "+" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "," Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = ";" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "=" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "[" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "]" Then
repname = repname & "_"
ElseIf Mid(b, i, 1) = "." Then
repname = repname & "_"
Else
repname = repname & Mid(b, i, 1)
End If
Next i
convert = rename
End Function
so, this code don’t woks,
i’va got 2 problem.
error number 1004 - do to space and accent in report names…
so, i’ve change it… it’s OK…
error number 9 : “lindice nappartient pas à la sélection”
in english : " index does not belong to the selection "
any idea ???
thanks.
have a nice day…
jbachet (BOB member since 2004-04-16)