Importar de word a vba

Hola cmcaminam, quisiera saber si se puede y de que manera importar un fichero de texto de Word a un textbox o un label de VBA.
Gracias anticipadas.

1 Respuesta

Respuesta
1
Intento contestar las preguntas por orden de entrada. Tenía otras anteriores a la tuya.
En cualquier caso, disculpa el retraso.
He estado haciendo pruebas con un fichero de Word y todavía no he conseguido incluirlo en un "Label".
Sí lo he conseguido desde un fichero "*.txt" de texto sin formato y con dos líneas de texto (si tiene más líneas, solamente tienes que modificar la macro).
Si te sirve esta solución, te envío el código de la macro que realiza el proceso. Si tiene que ser necesariamente una archivo Word (recuerda que desde el Word también se puede grabar como fichero de texto *.txt sin formato), tengo que hacer más pruebas.
código para un fichero *.txt:
*****************************
Sub Importar_texto_txt()
'
' Macro grabada el 13/06/2003 por cmcaminam
'
'
Workbooks.OpenText Filename:= _
"C:\TodoExpertos\Texto a importar en label.txt" _
, Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(0, 2), TrailingMinusNumbers:=True
Cells.Select
Selection.Copy
Windows("Libro1").Activate
Cells.Select
ActiveSheet.Paste
Range("A1").Select
Windows("Texto a importar en label.txt").Activate
ActiveWindow.Close
With UserForm1
.Label1.Caption = Range("A1").Value & Chr(13) & Range("A2")
End With
DoEvents
UserForm1.Show
End Sub
***** FIN DE CODIGO ****
Tendrás que tener en cuenta que:
1. El fichero de texto debe llamarse "Texto a importar en label.txt". En caso contrario tendrás que modificar la macro.
2. Dicho fichero tiene que estar ubicado en "C:\TodoExpertos\". En caso contrario tendrás que modificar la macro.
3. Tendrás que crear un "UserForm1" que contenga un "Label1".
4. Si el fichero contiene más de 2 líneas tendrás que modificar:
.Label1.Caption = Range("A1").Value & Chr(13) & Range("A2")
por
.Label1.Caption = Range("A1").Value & Chr(13) & Range("A2") & Chr(13) & Range ("..").value
Llevo varios días esperando la contestación, no sé si es que no te ha llegado la pregunta o es que he hecho algo mal; el caso es que si no me contestas no puedo cerrar la pregunta, que es la siguiente:
Importar un gtexto de word y meterlo en un Textbox o en un label
Gracias de nuevo
Bueno cmcaminam, acabo de probar el código que me has pasado adaptándolo a un fichero de texto que yo he creado y efectivamente con ficheros de texto funciona, lo cual se adecua en parte a mis pretensiones. Ahora bien, he de comentarte algunas cosas:
1/ la instrucción Trailingminusnumbers=true he tenido que quitarla porque me daba error (falta de nombre de argumento)
2/ He aumento el numero de lineas del fichero que he creado a 4 y el array (0,2) no ha hecho falta modificarlo.
3/ antes de que me aparezca el userform1 aparece un mensaje que me dice si quiero guardar la inmensa cantidad de información que se ha grabado en el portapapeles. Este mensaje queda feísimo y sale siempre. Creo que habrá alguna instrucción para vaciar el portapapeles, ya me lo dirás.
Por lo demás, funciona perfectamente. Yo había encontrado otro medio alternativo que era poner un hipervínculo en una celda que mostrara el fichero de Word.
Bueno Cmcaminam, ya no me enrollo más. Espero que me digas como limpiar el portapapeles y cerramos la pregunta.
Gracias
Un saludo
Introduce al principio del código esta instrucción:
Application.DisplayAlerts = False
Esto hará que no pregunte en ningún caso.
Después de cerrar el fichero del que extraemos la información puedes volver a activarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas