Macro para pegar rangos Excell

15/10/2007 - 10:36 por violeta | Informe spam
Hola a todos, os cuento lo que me pasa:

Al ejecutar una macro que pega o que vincula distintos rangos de excell a un
documento de word, la ejecuta pegando o vinculando solamente el último rango
marcado. El código que genera la macro es siguiente:


Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 15/10/2007
'
Selection.MoveDown Unit:=wdLine, Count:q
Selection.MoveUp Unit:=wdLine, Count:
Selection.PasteExcelTable False, False, False
Selection.MoveDown Unit:=wdLine, Count:ƒ
Selection.PasteExcelTable False, False, False
Selection.MoveDown Unit:=wdLine, Count:x
Selection.PasteExcelTable False, False, False
Selection.MoveDown Unit:=wdLine, Count:=2
End Sub


Gracias, espero me podais ayudar.

Preguntas similare

Leer las respuestas

#6 Pablo
02/11/2007 - 16:23 | Informe spam
Hola Tux, como creo el marcador en word? Soy bastante nuevo con esto
del Visual Basic. Mi problema es parecido al que se expone.

Muchas gracias.
Respuesta Responder a este mensaje
#7 Pablo
02/11/2007 - 17:07 | Informe spam
Hola de nuevo Tux

Te explico mi problemática. Tengo una plantilla de word en la que solo
cambian varios números, que calculo mediante una hoja de excel (con
sus respectivos cálculos y formulas). Esos datos los debería importar
desde excel a mi plantilla de word en varios sitios determinados.

He copiado los códigos de las macros que has puesto, pero al
ejecutarlo me dan fallos (que te pongo dentro del código). Lo he hecho
de prueba, solo con una casilla de excel.

Ya he visto donde crear marcadores. Ahora paso a explicarte el error
que me surge cuando ejecuto las macros.

Copio y pego todo lo que pones.

Sub rangos_input_word()

Dim x As Excel.Application
Dim Y As Excel.Workbook
Dim problems As Boolean
Dim Definido As String

On Error Resume Next

Set x = GetObject(, "Excel.Application")

If Err Then
problems = True
Set x = New Excel.Application
End If

On Error GoTo 0

Set Y = x.Workbooks.Open _
("c:\prueba.xls") ->
lo he cambiado para que abra ese archivo
Definido = InputBox("B3")->
también lo he cambiado

Y.Sheets("hoja1").Range(Definido).Copy
Selection.PasteExcelTable False, False, False

x.Quit

Set Y = Nothing:
Set x = Nothing

End Sub

El segundo código no me da problemas de momento pero no importa nada
de nada.

Espero tu respuesta. Gracias de antemano.
Respuesta Responder a este mensaje
#8 Tux
02/11/2007 - 18:29 | Informe spam
Pablo escribió:
Hola de nuevo Tux

Te explico mi problemática. Tengo una plantilla de word en la que solo
cambian varios números, que calculo mediante una hoja de excel (con
sus respectivos cálculos y formulas). Esos datos los debería importar
desde excel a mi plantilla de word en varios sitios determinados.

He copiado los códigos de las macros que has puesto, pero al
ejecutarlo me dan fallos (que te pongo dentro del código). Lo he hecho
de prueba, solo con una casilla de excel.

Ya he visto donde crear marcadores. Ahora paso a explicarte el error
que me surge cuando ejecuto las macros.

Copio y pego todo lo que pones.

Sub rangos_input_word()

Dim x As Excel.Application
Dim Y As Excel.Workbook
Dim problems As Boolean
Dim Definido As String


..


Bien Asegurate OJO que » la Celda B3 » Contenga datos o el commando
fallara ok? :-) NO obstante te paso el siguiente codigo que ya tiene
controlado ese error , añadiendole [ on error resume next ] no obstante
se podria controlar el error de coger celdas vacias sin datos desde
excel o bien tal cual te lo he puesto en el codigo de abajo o bien
poniendo algun msgbox :-)

No obstante prueba y comentanos cualquier error o modificacion del
codigo ok? :-)

Saludos
Monica




- Nuevo Codigo

'[]

Sub rangos_input_word()

Dim x As Excel.Application
Dim Y As Excel.Workbook
Dim problems As Boolean
Dim Definido As String

On Error Resume Next

Set x = GetObject(, "Excel.Application")

If Err Then
problems = True
Set x = New Excel.Application
End If

On Error GoTo 0

Set Y = x.Workbooks.Open _
("c:\prueba.xls")

Definido = InputBox("B3", "Introduccion de rangos", "B3")
If Definido = "" Then Exit Sub

Y.Sheets("hoja1").Range(Definido).Copy

On Error Resume Next
Selection.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=True, _
RTF:=True
x.Quit


Set Y = Nothing:
Set x = Nothing



End Sub

'[]



Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

» Now We are free [Enya]
» United states of love [ Westbam and the love commitee ]

www.fermu.com
Respuesta Responder a este mensaje
#9 Pablo
05/11/2007 - 23:05 | Informe spam
Al final use la combinacion de correspondencia de word para traerme
los datos de excel, utilizando este ultimo como "Base de Datos". Era
mas facil que la macro.

Muchas gracias por los comentarios.

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida