Foros del Web » Programación para mayores de 30 ;) » Programación General »

ayuda con macro para excel

Estas en el tema de ayuda con macro para excel en el foro de Programación General en Foros del Web. Necesito hacer una macro en excel que me permita abrir un documento word y pasar los datos al excel, en el documento word los datos ...
  #1 (permalink)  
Antiguo 17/11/2004, 15:44
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
Busqueda ayuda con macro para excel

Necesito hacer una macro en excel que me permita abrir un documento word y pasar los datos al excel, en el documento word los datos estan separados por espacios.
bueno espero que algun maestro me explique como podria hacer esto, yo programo en visual basic 6, no soy el super programador pero me defiendo, pero en el tema de macros en office nada, si bien se que la programacion es similar al visual basic.
desde ya muchas gracias a los maestros que me puedan dar una mano.
virla
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #2 (permalink)  
Antiguo 17/11/2004, 16:01
Avatar de judoka  
Fecha de Ingreso: enero-2004
Ubicación: viña del mar
Mensajes: 180
Antigüedad: 20 años, 3 meses
Puntos: 3
hola mira la siguiente macro abre un archivo numeros.txt y copia los valores en la hoj ade caculo a pertirde la celda A10

Sub Macro1()
ChDir "C:\mis documentos"
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\mis documentos\numeros.txt", Destination:=Range("a10"))
.Name = "numeros"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
End Sub
estoy lejos de ser un maestro , pero espero haberte podido ayudar
__________________
hay tres tipos de matemáticos, los que saben contar y los que no.
Oscar
  #3 (permalink)  
Antiguo 17/11/2004, 16:02
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
MIRA ESTA PAGINA TAL VES TE SIRVA
http://www.xltoday.net/sitemap.asp
  #4 (permalink)  
Antiguo 19/11/2004, 09:32
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
todavia no lo prove, pero se puede hacer que en vez de ponerle el nombre del archivo pueda abrir una ventana abrir para que se pueda seleccionar el archivo necesario, lo otro es que necesitaria que sea un archivo doc y no txt
gracias igual por tu ayuda ahora voy a probarlo de cualquier manera
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #5 (permalink)  
Antiguo 24/11/2004, 11:16
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
helpme, plissss
he probado el de yudoca, y funciona pero el tema es que en el archivo doc, las columnas vienen diferentes a la de la plantilla excel se puede solucionar esto, y lo otro es que necesito que se pueda abrir el documento word y no el txt, para agilizar el trabajo.
si no se puede, se prodria hacer algo desde visual basic 6 digamos, un programita que me abra la plantilla excel y que con un boton me habra el word y me haga la transicion de los datos de uno al otro?
gracias y espero tu ayuda
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla

Última edición por virla; 24/11/2004 a las 11:22 Razón: porque me olvide de poner algo mas
  #6 (permalink)  
Antiguo 24/11/2004, 15:54
Avatar de judoka  
Fecha de Ingreso: enero-2004
Ubicación: viña del mar
Mensajes: 180
Antigüedad: 20 años, 3 meses
Puntos: 3
o intente con un .doc , pero no resulta....vere si encuentro una solución ...podrias mandarme un ejemplo del archivo .doc para intentar algo??? te doy mi correo en un privado.
__________________
hay tres tipos de matemáticos, los que saben contar y los que no.
Oscar
  #7 (permalink)  
Antiguo 24/11/2004, 15:56
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
ok, mandame un privado con tu email
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #8 (permalink)  
Antiguo 05/12/2004, 21:39
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
alguien que me de una mano con esto plisssss
lo necesitaria solucionar urgente
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #9 (permalink)  
Antiguo 10/12/2004, 05:16
 
Fecha de Ingreso: diciembre-2004
Ubicación: Gran Canaria, España
Mensajes: 3
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola, has probado la funcion CreateObject? /anders

Option Base 1
Public varText()

Sub AbrirWordDesdeExcel()

Dim strWordArchivo As Variant
Dim i, r, intLineas As Integer
Dim appWord As Word.Application
Dim appDoc As Word.Document
Dim rngDoc As Word.Range

'dialogo 'abrir archivo'
strWordArchivo = Application.GetOpenFilename ("Documentos Word (*.doc), *.doc"): On Error GoTo 99

'crear objeto Word
Set appWord = CreateObject("Word.Application")
Set appDoc = appWord.Documents.Open(strWordArchivo)

'leer Word
intLineas = appDoc.Paragraphs.Count: ReDim varText(intLineas)

r = 1
For i = 1 To intLineas
Set rngDoc = appDoc.Range( _
Start:=appDoc.Paragraphs(i).Range.Start, _
End:=appDoc.Paragraphs(i).Range.End)
varText(i) = rngDoc.Text
r = r + 1
Next i

'traspasar datos...
For x = 1 To UBound(varText)
Cells(x, 1) = varText(x)
Next x

appDoc.Close: Set appDoc = Nothing
appWord.Quit: Set appWord = Nothing

99:
End Sub
  #10 (permalink)  
Antiguo 11/12/2004, 08:14
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
lo prove pero me sale definicion de usuario no valida o algo por el estilo
me gustaria probarlo para ver si funciona bien
gracias amigo
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #11 (permalink)  
Antiguo 12/12/2004, 02:05
 
Fecha de Ingreso: diciembre-2004
Ubicación: Gran Canaria, España
Mensajes: 3
Antigüedad: 19 años, 4 meses
Puntos: 0
No olvides marcar 'Microsoft Word x.xx Object Library' en Herramientas - Referencias del editor VBA/anders
  #12 (permalink)  
Antiguo 13/12/2004, 10:45
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
haa ok gracias en un rato lo pruebo muchas gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #13 (permalink)  
Antiguo 24/12/2004, 13:06
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
sigo en la espera de una ayuda con esto, si alguien puede darme una mano, estoy mas que apurado ya que es para el trabajo y sino esto lo tengo que hacer manualmente.
Desde ya muchas gracias y felices fiestas a todos los maestros y a los no maestros tambien
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #14 (permalink)  
Antiguo 29/12/2004, 12:18
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
andersj lo que vos me pasastes no funciona porque me pone todo los datos en una sola columna y ademas con basura.
pliss alguien que me de una mano, porque esto sino tengo que hacerlo a mano y me lleva mucho tiempo
espero sus colaboraciones muchas gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #15 (permalink)  
Antiguo 29/12/2004, 12:26
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
La otra podria ser, hacer un programita que me permita hacer lo mismo, quizas sea mas facil.
AYUDENMEEEEEEEEEEEEE
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #16 (permalink)  
Antiguo 30/12/2004, 07:15
 
Fecha de Ingreso: diciembre-2004
Ubicación: Gran Canaria, España
Mensajes: 3
Antigüedad: 19 años, 4 meses
Puntos: 0
Bueno, inserta estas líneas de código justo antes del "99:".

'a columnas
Columns("A:A").TextToColumns _
Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=True, _
Other:=False

'suprimir filas vacías
intUltimaFila = ActiveSheet.UsedRange.Row - 1 + _
ActiveSheet.UsedRange.Rows.Count
For i = intUltimaFila To 1 Step -1
If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete
Next r
  #17 (permalink)  
Antiguo 01/01/2005, 17:55
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
Muchas gracias, ahora mismo voy a probarlo
Felices Fiestas a todos
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
  #18 (permalink)  
Antiguo 19/01/2005, 09:05
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 21 años, 9 meses
Puntos: 1
La verdad que lo prove pero no funciona, no se porque
Alguien puede darme una mano con esto
gracias
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:11.