Pregunta: | 57265 - AUTOMATIZAR DOCUMENTO DE WORD DESDE ACCESS |
Autor: | Sebastián Fonseca |
tengo el siguiente código:
Public Function generadoc() '********************************************************************** 'Declarar objetos para usar Word '********************************************************************** Dim Word As New Word.Application Dim resolucion As Word.Document Dim myRange As Range Dim Departamento As String '********************************************************************** 'Hace visible o no Word según se desee y abre un documento existente '********************************************************************** Word.Visible = False Set resolucion = Word.Documents.Open(FileName:="C:Doc7", ReadOnly:=False) '********************************************************************** 'Define todo el documento '********************************************************************** Set myRange = Word.ActiveDocument.Content '********************************************************************** 'Busca en todo el documento el texto #Destino# para reemplazarlo por el contenido de la variable Destino '********************************************************************** With myRange.Find .ClearFormatting .Replacement.ClearFormatting .Text = "#Destino#" .Replacement.Text = Departamento .Execute Replace:=wdReplaceAll End With End Function Funciona bien hasta .Replacement.Text = Departamento no logro que lo tome como variable, si lo pongo entre comillas escribe Departamento en el word. La idea sería tener un formulario donde se pueda seleccionar un caso con un cuadro combinado y luego apretar un botón que me genere un doc (que tendría texto predefinido) con esos campos intercalados. |
Respuesta: | eider maruicio aristizabal erazo |
Debes crear tu formulario con los departamentos en un cuadro combinado posetriormente, presinas un boton en el formulario para que genere el documento y haz un llamado a la funcion pero le entregas el departazmento que ya ha sido seleccionado en el formulario el cambio del a funcion seria el siguiente:
Public Function generadoc(Departamento as string) '********************************************************************** 'Declarar objetos para usar Word '********************************************************************** Dim Word As New Word.Application Dim resolucion As Word.Document Dim myRange As Range Dim Departamento As String '********************************************************************** 'Hace visible o no Word según se desee y abre un documento existente '********************************************************************** Word.Visible = False Set resolucion = Word.Documents.Open(FileName:="C:Doc7", ReadOnly:=False) '********************************************************************** 'Define todo el documento '********************************************************************** Set myRange = Word.ActiveDocument.Content '********************************************************************** 'Busca en todo el documento el texto #Destino# para reemplazarlo por el contenido de la variable Destino '********************************************************************** With myRange.Find .ClearFormatting .Replacement.ClearFormatting .Text = "#Destino#" .Replacement.Text = Departamento .Execute Replace:=wdReplaceAll End With End Function entonces el llamado en el boton seria asi: Private Sub CommandButton1_Click() generadoc ComboBox1.SelText msgbox "Ok" End Sub |