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

Cargar texto en CLIPBOARD

161 views
Skip to first unread message

Juan Español

unread,
Jan 26, 2010, 8:41:25 PM1/26/10
to
Hola a todos:
Estoy afinando un c�digo y en un momento determinado necesitar�a
pasar el valor de una celda al CLIPBOARD para utilizarlo en otra aplicaci�n
no Office.

En concreto el c�digo que estoy manejando es:

Private Sub CommandButton1_Click()
Dim r_LIS As Range, n_FICH As Variant
Set r_LIS = Worksheets("LIS_CJ").Range("AD" & [A1])
r_LIS.Value = [A2]
n_FICH = [B2]
'la siguiente linea me da error "No se ha definido la variable" y se�ala
CLIPBOARD
Clipboard.Clear
Clipboard.SetText n_FICH, vbCFText
' De forma provisional, para probar si carga el portapapeles intento
"recuperar" el valor en C3
If Clipboard.GetFormat(vbCFText) Then
[C3] = Clipboard.GetText(vbCFText)
End If
'Rutina de impresi�n en PDF, donde deber�a "pegar" el portapapeles
Sheets("H_DIA").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

�Alguna idea de como avanzar?

Gracias de antemano, un saludo.

Desde Salamanca,
Juan Espa�ol

Juan Español

unread,
Jan 26, 2010, 8:47:14 PM1/26/10
to
Se me olvid� comentar que es Excel 2003.

Que parece que el VB cambia el objeto Clipboard en la versi�n 2007

H�ctor Miguel

unread,
Jan 26, 2010, 10:07:48 PM1/26/10
to
hola, Juan !

para trabajar con el portapapeles (de windows) desde vba, necesitaras mas de dos lineas de codigo
(dependiendo de lo que necesites hacer con los datos en/a dicho clipboard)
prueba consultando la informacion de la siguiente pagina:
-> Using The Clipboard In VBA
http://www.cpearson.com/Excel/clipboard.aspx

el portapapeles de office ?... visita:
-> http://www.mvps.org/skp/off00004.htm#2
-> http://support.microsoft.com/default.aspx?scid=kb;en-us;q207438
-> http://techsupt.winbatch.com/TS/T000001071F4.html
-> http://support.microsoft.com/default.aspx?scid=kb;ES;A196620

saludos,
hector.

__ OP __
> Estoy afinando un codigo y en un momento determinado necesitaria pasar el valor de una celda
> al CLIPBOARD para utilizarlo en otra aplicacion no Office.


> En concreto el c�digo que estoy manejando es:
> Private Sub CommandButton1_Click()
> Dim r_LIS As Range, n_FICH As Variant
> Set r_LIS = Worksheets("LIS_CJ").Range("AD" & [A1])
> r_LIS.Value = [A2]
> n_FICH = [B2]
> 'la siguiente linea me da error "No se ha definido la variable" y se�ala CLIPBOARD
> Clipboard.Clear
> Clipboard.SetText n_FICH, vbCFText
> ' De forma provisional, para probar si carga el portapapeles intento "recuperar" el valor en C3
> If Clipboard.GetFormat(vbCFText) Then
> [C3] = Clipboard.GetText(vbCFText)
> End If

> 'Rutina de impresion en PDF, donde deberia "pegar" el portapapeles

Juan Español

unread,
Jan 27, 2010, 1:01:24 PM1/27/10
to
Gracias H�ctor, directo a la diana.

10 "movimientos" con sus correspondientes posibilidades de error, reducidos
a un solo Ctrl+V y sin posibilidad de error.
Para guardar el �rea de impresi�n de un Hoja en un PDF con un nombre
variable pero configurable.
La parte del c�digo que interesa qued� as�:

Dim DataObj As New MSForms.DataObject
Dim S As String
' En B2 est� la f�rmula para obtener el nombre para guardar el PDF
S = [B2] & ".pdf"
DataObj.SetText S
DataObj.PutInClipboard


En el VB > Herramientas > Referencias > MARCAR Microsoft Forms 2.0 Object
Library
Como bien se indica en cpearson.com

Gracias H�ctor una vez m�s.

"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje de
noticias news:%23g$9p3vnK...@TK2MSFTNGP04.phx.gbl...
> hola, Juan !

0 new messages