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
Que parece que el VB cambia el objeto Clipboard en la versi�n 2007
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
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 !