Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pegar datos de excel, abrir notepad y pegar

1,268 views
Skip to first unread message

Yrjo, Inc.

unread,
Jul 29, 2009, 11:15:02 AM7/29/09
to
Buenos días, tengo este código que toma una celda de excel, abre el block de
notas y pega la información copiada de excel.

'The range that contains the values
Sheets("Datos Origen").Range("C43").Copy
'Start Notepad And let it recieve focus
Shell "notepad.exe", vbNormalFocus
'Send the keys CTRL+V To Notepad (i.e the window that has focus)
SendKeys "^V"
DoEvents

Lo que no tengo y necesito es cómo hacer que luego se seleccione el texto
del block de notas y se copie de nuevo.

Traté de hacerlo continuando con el código:
SendKeys "^E"
SendKeys "^C"
pero no me funciona

Hay forma de hacer esto y si es posible hacer que se cierre el block de
notas sin guardar cambios?

Gracias por la ayuda que me puedan brindar

Jorge Martínez

Juan M

unread,
Jul 29, 2009, 12:16:29 PM7/29/09
to

"Yrjo, Inc." escribi�
> Buenos d�as, tengo este c�digo que toma una celda de excel, abre el block
> de
> notas y pega la informaci�n copiada de excel.

>
> 'The range that contains the values
> Sheets("Datos Origen").Range("C43").Copy
> 'Start Notepad And let it recieve focus
> Shell "notepad.exe", vbNormalFocus
> 'Send the keys CTRL+V To Notepad (i.e the window that has focus)
> SendKeys "^V"
> DoEvents
>
> Lo que no tengo y necesito es c�mo hacer que luego se seleccione el texto

> del block de notas y se copie de nuevo.
>
> Trat� de hacerlo continuando con el c�digo:

> SendKeys "^E"
> SendKeys "^C"
> pero no me funciona
>
> Hay forma de hacer esto y si es posible hacer que se cierre el block de
> notas sin guardar cambios?
>
> Gracias por la ayuda que me puedan brindar
>
> Jorge Mart�nez

Hola Jorge,

Y no podrias emplear los metodos de escritura y lectura de archivos para
hacer eso que necesitas copiando y pegando?
Revisa la ayuda del metodo input #, Open, Print #, Write #....
O si necesitas mas ayuda comentas m�s detalles?

Un saludo,
Juan


Yrjo, Inc.

unread,
Jul 29, 2009, 12:55:02 PM7/29/09
to
Hola, gracias, pero no quiero leer ni escribir o leer de otro archivo de
texto, sólo hacer el procedimiento que mensioné para mantenerlo en el
portapapeles. Ya sé que con el copy estaría en el portapapeles pero hay otro
procedimiento que me está borrando lo del clipboard

Saludos,

Jorge M

"Juan M" wrote:

>
> "Yrjo, Inc." escribió
> > Buenos días, tengo este código que toma una celda de excel, abre el block
> > de
> > notas y pega la información copiada de excel.


> >
> > 'The range that contains the values
> > Sheets("Datos Origen").Range("C43").Copy
> > 'Start Notepad And let it recieve focus
> > Shell "notepad.exe", vbNormalFocus
> > 'Send the keys CTRL+V To Notepad (i.e the window that has focus)
> > SendKeys "^V"
> > DoEvents
> >

> > Lo que no tengo y necesito es cómo hacer que luego se seleccione el texto


> > del block de notas y se copie de nuevo.
> >

> > Traté de hacerlo continuando con el código:


> > SendKeys "^E"
> > SendKeys "^C"
> > pero no me funciona
> >
> > Hay forma de hacer esto y si es posible hacer que se cierre el block de
> > notas sin guardar cambios?
> >
> > Gracias por la ayuda que me puedan brindar
> >

> > Jorge Martínez


>
> Hola Jorge,
>
> Y no podrias emplear los metodos de escritura y lectura de archivos para
> hacer eso que necesitas copiando y pegando?
> Revisa la ayuda del metodo input #, Open, Print #, Write #....

> O si necesitas mas ayuda comentas más detalles?
>
> Un saludo,
> Juan
>
>
>

Juan M

unread,
Jul 29, 2009, 1:12:58 PM7/29/09
to
Hola Jorge,

Pues lo siento no puedo ayudarte con los requisitos de tu consulta.
Aunque deber�as exponer todo el procedimiento que sigues ya que

> .... pero hay otro
> procedimiento que me est� borrando lo del clipboard

en mi opini�n, habr�a que localizar que procedimiento est�s realizando que
borra el portapapeles y no depender de una aplicaci�n externa.
Incluso si la soluci�n de copiar/pegar el contenido de la celda es la
soluci�n que m�s te conviene, hacerlo en una celda auxiliar del mismo
documento.

Un saludo,
Juan

"Yrjo, Inc." escribi�


> Hola, gracias, pero no quiero leer ni escribir o leer de otro archivo de

> texto, s�lo hacer el procedimiento que mension� para mantenerlo en el
> portapapeles. Ya s� que con el copy estar�a en el portapapeles pero hay
> otro
> procedimiento que me est� borrando lo del clipboard


>
> Saludos,
>
> Jorge M
>
> "Juan M" wrote:
>
>>

>> "Yrjo, Inc." escribi�
>> > Buenos d�as, tengo este c�digo que toma una celda de excel, abre el
>> > block
>> > de
>> > notas y pega la informaci�n copiada de excel.


>> >
>> > 'The range that contains the values
>> > Sheets("Datos Origen").Range("C43").Copy
>> > 'Start Notepad And let it recieve focus
>> > Shell "notepad.exe", vbNormalFocus
>> > 'Send the keys CTRL+V To Notepad (i.e the window that has focus)
>> > SendKeys "^V"
>> > DoEvents
>> >

>> > Lo que no tengo y necesito es c�mo hacer que luego se seleccione el

>> > texto
>> > del block de notas y se copie de nuevo.
>> >

>> > Trat� de hacerlo continuando con el c�digo:


>> > SendKeys "^E"
>> > SendKeys "^C"
>> > pero no me funciona
>> >
>> > Hay forma de hacer esto y si es posible hacer que se cierre el block de
>> > notas sin guardar cambios?
>> >
>> > Gracias por la ayuda que me puedan brindar
>> >

>> > Jorge Mart�nez


>>
>> Hola Jorge,
>>
>> Y no podrias emplear los metodos de escritura y lectura de archivos para
>> hacer eso que necesitas copiando y pegando?
>> Revisa la ayuda del metodo input #, Open, Print #, Write #....

Yrjo, Inc.

unread,
Jul 29, 2009, 5:37:01 PM7/29/09
to
Hola, bueno, el caso es que estaba trtando de imprimir automátivcamente en
PDF pero tengo instalado el DoPDF en mi PC, el cual no ha podido funcionar de
ninguna manera con los códigos que me han dado, asíque finalmente decidí
pegarle la ruta y nombre del archivo manualmente una vez hiciera el llamado a
la impresión. Para pegar manualmente la ruta y nombre tomaba dicha
información de una celda de excel y lo hacía con un copiar, pero al abrirse
la aplciación, el copiar o contenido del clipboard, se perdía... por eso
recurrí a pegar el texto en un programa externo (notepad) y quería hacer el
resto de una manera más automática. Aún no sé trabajar con objetos como me
propones en la primer respuesta.

Gracias

Jorge M

"Juan M" wrote:

> Hola Jorge,
>
> Pues lo siento no puedo ayudarte con los requisitos de tu consulta.

> Aunque deberías exponer todo el procedimiento que sigues ya que
>
> > .... pero hay otro
> > procedimiento que me está borrando lo del clipboard
>
> en mi opinión, habría que localizar que procedimiento estás realizando que
> borra el portapapeles y no depender de una aplicación externa.
> Incluso si la solución de copiar/pegar el contenido de la celda es la
> solución que más te conviene, hacerlo en una celda auxiliar del mismo
> documento.
>
> Un saludo,
> Juan
>
> "Yrjo, Inc." escribió


> > Hola, gracias, pero no quiero leer ni escribir o leer de otro archivo de

> > texto, sólo hacer el procedimiento que mensioné para mantenerlo en el
> > portapapeles. Ya sé que con el copy estaría en el portapapeles pero hay
> > otro
> > procedimiento que me está borrando lo del clipboard


> >
> > Saludos,
> >
> > Jorge M
> >
> > "Juan M" wrote:
> >
> >>

> >> "Yrjo, Inc." escribió
> >> > Buenos días, tengo este código que toma una celda de excel, abre el
> >> > block
> >> > de
> >> > notas y pega la información copiada de excel.


> >> >
> >> > 'The range that contains the values
> >> > Sheets("Datos Origen").Range("C43").Copy
> >> > 'Start Notepad And let it recieve focus
> >> > Shell "notepad.exe", vbNormalFocus
> >> > 'Send the keys CTRL+V To Notepad (i.e the window that has focus)
> >> > SendKeys "^V"
> >> > DoEvents
> >> >

> >> > Lo que no tengo y necesito es cómo hacer que luego se seleccione el

> >> > texto
> >> > del block de notas y se copie de nuevo.
> >> >

> >> > Traté de hacerlo continuando con el código:


> >> > SendKeys "^E"
> >> > SendKeys "^C"
> >> > pero no me funciona
> >> >
> >> > Hay forma de hacer esto y si es posible hacer que se cierre el block de
> >> > notas sin guardar cambios?
> >> >
> >> > Gracias por la ayuda que me puedan brindar
> >> >

> >> > Jorge Martínez


> >>
> >> Hola Jorge,
> >>
> >> Y no podrias emplear los metodos de escritura y lectura de archivos para
> >> hacer eso que necesitas copiando y pegando?
> >> Revisa la ayuda del metodo input #, Open, Print #, Write #....

Fajardo

unread,
Jul 29, 2009, 6:58:54 PM7/29/09
to

Una idea nada más...

Ya probaste con Ctrl+A en lugar de Ctrl+E, ya que si tu programa esta en
ingles no te reconoce Seleccionar todo con Ctrl+E, sino con A.

"Yrjo, Inc." <Yrj...@discussions.microsoft.com> escribió en el mensaje de
noticias news:969BAE9C-B6FC-4C7A...@microsoft.com...

H�ctor Miguel

unread,
Jul 30, 2009, 1:03:51 AM7/30/09
to
hola, Jorge !

> ... el caso es que estaba trtando de imprimir automativcamente en PDF pero tengo instalado el DoPDF en mi PC
> ... no ha podido funcionar de ninguna manera con los codigos que me han dado
> asi que finalmente decidi pegarle la ruta y nombre del archivo manualmente una vez hiciera el llamado a la impresion.
> Para pegar manualmente la ruta y nombre tomaba dicha informacion de una celda de excel y lo hacia con un copiar
> pero al abrirse la aplciacion, el copiar o contenido del clipboard, se perdia
> ... por eso recurri a pegar el texto en un programa externo (notepad) y queria hacer el resto de una manera mas automatica.
> Aun no se trabajar con objetos como me propones en la primer respuesta...

1) revisa en tu consulta anterior, te he dejado unos enlaces al foro de Softland y la respuesta es que "no se puede" (por vba) :-((

2) el siguiente procedimiento pone en el portapapeles de windows el texto contenido en una celda de alguna hoja de tu libro
cuando se muestra el dialogo "final" en el doPDF para la impresion, podras usar el ctrl+V para reemplazar la ruta propuesta
(solo cambia en el codigo el nombre de la hoja y la celda apropiadas <= OJO)

saludos,
hector.

Sub Imprimir_doPDF()
Dim DataObj As New MSForms.DataObject
DataObj.SetText Worksheets("hoja1").Range("a1").Text
DataObj.PutInClipboard
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="doPDF v6 en DOP6:"
End Sub


Yrjo, Inc.

unread,
Jul 30, 2009, 9:44:01 AM7/30/09
to
Hola, muchas gracias por responder, ya hábía ensayado con Ctrl+A pero igual
no sirve, lo tengo en español... voy a ensayar lo que dice Héctor

Yrjo, Inc.

unread,
Jul 30, 2009, 10:01:01 AM7/30/09
to
Uyyy Sos grande! muchas gracias, eso hizo tal cual lo que necesitaba. lástima
que los de Softland lo mejoren ese aspecto ya que también había visto el foro
y preguntan los usuarios por lo mismo.

Gracias de nuevo Héctor

Saudos,

Jorge M

Yrjo, Inc.

unread,
Jul 30, 2009, 11:10:01 AM7/30/09
to
Hola, otra pregunta con base en algo que se me ocurre... como el DoPDF
recuerda la última ruta utilizada y pone por dafecto el nombre del archivo,
hay forma de cambiar el nombre del libro de excel temporalmente antes de
imprimir y si guardarlo para que al dar imprimir ya tenga todo listo.

Yo el archivo siempre lo trabajo en excel ya que es una plantilla para
imprimir unas facturas

Muchas gracias

H�ctor Miguel

unread,
Jul 30, 2009, 8:56:37 PM7/30/09
to
hola, Jorge !

> ... como el DoPDF recuerda la ultima ruta utilizada y pone por dafecto el nombre del archivo

(con pocas pruebas) por omision, sugiere el nombre del libro a imprimirse, pero... como lleva un registro (en el registro de windows)...
"recuerda" varios anteriores y, aunque los "reales" los elimines del DD, con cualquiera de esos nombres pregunta si lo quieres "reescribir"

> ... forma de cambiar el nombre del libro... temporalmente antes de imprimir y si guardarlo para que al dar imprimir ya tenga todo listo.
> ... el archivo siempre lo trabajo en excel ya que es una plantilla para imprimir unas facturas ...

- tendrias que hacer primero un "guardar como..." (por codigo: ThisWorkbook.SaveAs ...) como libro normal
(usando el nombre que resulta en la celda concatenada SIN la EXTension (si estas completando la ruta con el *.PDF)

- despues lanzas el comento de impresion

- luego ELIMINAS el libro activo (o sea, el mismo que acabas de renombrar)

- y finalmente vuelves a guardarlo con su nombre original

comenta como queda el valor "final" en la celda concatenada (y cual es esa celda y en cual hoja se encuentra)
(para poder ofrecer una propuesta mas acercada a la realidad ?)

saludos,
hector.


Yrjo, Inc.

unread,
Jul 31, 2009, 8:55:01 AM7/31/09
to
Hola, de nuevo muchas gracias, muy útil todo lo que siempre propones

Saludos,

Jorge M

0 new messages