Importacion de facturas a Word

daniotero
25 de Noviembre del 2003
Hola!!!
Otra vez estoy aqui. Mi problema es que intento importar unas facturas de TXT a DOC, que luego las paso a PDF y las mando por eMail. Habia realizado una macro en MS Word 2000 y me funcionaba perfectamente. Ahora tengo que hacer un programilla en visual basic, para asi poder pasarle unos parametros, pero lo he intentado y me da errores, ¿ES PORQUE LAS FUNCIONES NO SON COMPATIBLES CON EL PROJECTO VB?¿LO DEBERIA HACER DE OTRA MANERA?

Un saludo a todos y gracias de antemano. Aqui esta el codigo por si acaso.
Private Sub Importar_Btn_Click()
Dim linea As String
Dim Num_Fact As String
Dim DirOrigen As String
Dim DirDestino As String
Dim Nom_Fact As String
Dim NomPlant As String
Dim RutaAcceso As String
Dim RutaCompleta As String
Dim Num_Lin As Integer
Dim cont As Integer
Num_Lin = 0
DirOrigen = Origen_Text.Text
NomPlant = NomPlant_Text.Text
RutaAcceso = RutaAcceso_Text.Text
NumFact = NumFact_Text.Text
DirDestino = Destino_Text.Text
RutaCompleta = RutaAcceso + NumFact + ".txt"
ChangeFileOpenDirectory DirOrigen 'Cambia el directorio origen
Documents.Open FileName:="D:ImportacionPlantillasFact.doc", ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto 'Abre la plantilla
Open RutaCompleta For Input As #1 'Abre el fichero del que tomo los datos
Do While Not EOF(1)
Num_Lin = Num_Lin + 1
Line Input #1, linea 'Lee la linea
Mid(linea, 1) = " " 'Sustituye el primer digito de identificador de linea
Mid(linea, 2) = " " 'Sustituye el segundo digito de identificador de linea
If (Num_Lin <> 1) Then Selection.TypeText Text:=linea 'Copia la linea en el documento word
If (Not EOF(1)) And (Num_Lin <> 1) Then Selection.TypeParagraph 'Introduce salto de linea
Loop
Close #1
Nom_Fact = "Fact" + Num_Fact + ".doc" 'Crea el nombre de fichero
ChangeFileOpenDirectory DirDestino 'Cambia el directorio destino
ActiveDocument.SaveAs FileName:=Nom_Fact, FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False 'Salva los cambios hechos en la plantilla con el nombre Nom_Fact
Application.Run MacroName:="ConvertToPDFandEmail" 'Convierte el doc en pdf y lo adjunta al e_mail
Windows(Nom_Fact).Activate 'Activa la ventana del documento word
ActiveDocument.Save 'Salva los cambios
ActiveWindow.Close 'Cierra la ventana del documento word
End Sub

daniotero
25 de Noviembre del 2003
ya esta, ya lo he conseguio yo solito ja,ja,ja.... hay va el codigo por si le sirve alguna vez a alguien. Un saludo

Private Sub Importar_Btn_Click()
Dim linea As String
Dim Num_Fact As String
Dim DirOrigen As String
Dim DirDestino As String
Dim Nom_Fact As String
Dim NomPlant As String
Dim RutaAcceso As String
Dim RutaCompletatxt As String
Dim RutaCompletaDest As String
Dim Num_Lin As Integer
Dim wordApp As Object
Dim WordDoc As Object
Num_Lin = 0
DirOrigen = Origen_Text.Text
NomPlant = NomPlant_Text.Text
RutaAcceso = RutaAcceso_Text.Text
numfact = NumFact_Text.Text
DirDestino = Destino_Text.Text
If DirOrigen = "" Or NomPlant = "" Or RutaAcceso = "" Or numfact = "" Or DirDestino = "" Then
Error.Visible = True
Error.SetFocus
Else
Set wordApp = CreateObject("Word.Application")
Set WordDoc = wordApp.Documents.Open("D:ImportaPlantillasFact.doc", , 1)
RutaCompletatxt = RutaAcceso + numfact + ".txt"
wordApp.Visible = True
Open RutaCompletatxt For Input As #1 'Abre el fichero del que tomo los datos
Do While Not EOF(1)
Num_Lin = Num_Lin + 1
Line Input #1, linea 'Lee la linea
Mid(linea, 1) = " " 'Sustituye el primer digito de identificador de linea
Mid(linea, 2) = " " 'Sustituye el segundo digito de identificador de linea
If (Num_Lin <> 1) Then wordApp.Selection.TypeText Text:=linea 'Copia la linea en el documento word
If (Not EOF(1)) And (Num_Lin <> 1) Then wordApp.Selection.TypeParagraph 'Introduce salto de linea
Loop
Close #1
Nom_Fact = "Fact" + numfact 'Crea el nombre de fichero
Nom_Fact = Nom_Fact + ".doc"
'RutaCompletaDest = DirDestino + Nom_Fact
wordApp.ChangeFileOpenDirectory DirDestino
WordDoc.SaveAs Nom_Fact
wordApp.Application.Run MacroName:="ConvertToPDFandEmail" 'Convierte el doc en pdf y lo adjunta al e_mail
wordApp.Windows(Nom_Fact).Activate 'Activa la ventana del documento word
wordApp.ActiveDocument.Save 'Salva los cambios
wordApp.ActiveWindow.Close
Set WordDoc = Nothing
wordApp.Application.Quit
End If
Close
End Sub

sdemingo
25 de Noviembre del 2003
;-)