Cargar texto en CLIPBOARD

27/01/2010 - 02:41 por Juan Español | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Juan Español
27/01/2010 - 02:47 | Informe spam
Se me olvidó comentar que es Excel 2003.

Que parece que el VB cambia el objeto Clipboard en la versión 2007
Respuesta Responder a este mensaje
#2 Héctor Miguel
27/01/2010 - 04:07 | Informe spam
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/defaul...us;q207438
-> http://techsupt.winbatch.com/TS/T000001071F4.html
-> http://support.microsoft.com/defaul...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
Sheets("H_DIA").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

Alguna idea de como avanzar?
Respuesta Responder a este mensaje
#3 Juan Español
27/01/2010 - 19:01 | Informe spam
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" escribió en el mensaje de
noticias news:%23g$
hola, Juan !
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida