Macro Excel para copiar el portapapeles en una variable

10/10/2006 - 23:28 por taller_inf | Informe spam
Hola, lo que equiero hacer seguro que es muy simple para quien sepa utilizar
las macros de excel pero se me esta haciendo dificil.

Quiero definir una variable a la que copiar el contenido del portapapeles.

Y despues asignar (pegar) el contenido de esta variable en el comentario de
una celda (idealmente la celda actual).

Lo que he hecho es:

Dim Texto As DataObject
Texto.GetFromClipboard
ActiveCell.AddComment Texto

pero me dice que la variable no esta definida¿?

He probado muchas cosas que salen en forums pero nada de nada, me podeis
echar una mano? Muchas gracias de antemano.

Preguntas similare

Leer las respuestas

#6 taller_inf
11/10/2006 - 19:03 | Informe spam
Gracias Hector, eso ya lo habia probado.

NO tengo muy claro como debo declarar la variable o si lo hago bien.

Hay alguna forma de sacar por pantalla el contenido de la variable para
comprobar si ha cogido el portapapeles?


"Héctor Miguel" wrote:

hola, 'anonimo/a' !

-> si la celda activa no tiene un comentario [como se deduce del codigo que expones]...
establecer un texto 'inicial' para un comentario de celda... -> NO requiere del signo '='

-> prueba modificando la instruccion:
de: -> ActiveCell.AddComment = MyDataObj.GetText
a: -> ActiveCell.AddComment MyDataObj.GetText

saludos,
hector.

__ la consulta original __
> La web es absolutamente la indicada para este caso.
> He puesto lo siguiente siguiendo sus indicaciones en la macro que tengo:
> Dim MyDataObj As New DataObject
> Sub Macro2()
> ' Macro2 Macro
> ' Macro grabada el 10/10/2006 por Info
> ' Acceso directo: CTRL+z
> MyDataObj.GetFromClipboard
> ActiveCell.AddComment = MyDataObj.GetText
> End Sub
> Donde:
> 1- Creo la variable para almacenar texto del portapapeles
> 2- Copio el texto del portapapeles en esa variable
> 3- Introduzco el contenido de la variable en el campo comentarios de la celda actual.
> Pero chico, no funciona. Soy nuevo en esto del VB y las macros a ver si pudieras darme algo de luz en esto...



Respuesta Responder a este mensaje
#7 taller_inf
11/10/2006 - 19:55 | Informe spam
Bueno, por fin lo he conseguido.

Sub copiar()
Set MyData = New DataObject
MyData.GetFromClipboard
Dim cmt As Comment
Set cmt = ActiveCell.Comment
If cmt Is Nothing Then
Set cmt = ActiveCell.AddComment
cmt.Text MyData.GetText(1)
End If
With ActiveCell.Comment
.Shape.TextFrame.AutoSize = True
End With
End Sub

UN SALUDO Y GRACIAS POR TODO




"taller_inf" wrote:

Gracias Hector, eso ya lo habia probado.

NO tengo muy claro como debo declarar la variable o si lo hago bien.

Hay alguna forma de sacar por pantalla el contenido de la variable para
comprobar si ha cogido el portapapeles?


"Héctor Miguel" wrote:

> hola, 'anonimo/a' !
>
> -> si la celda activa no tiene un comentario [como se deduce del codigo que expones]...
> establecer un texto 'inicial' para un comentario de celda... -> NO requiere del signo '='
>
> -> prueba modificando la instruccion:
> de: -> ActiveCell.AddComment = MyDataObj.GetText
> a: -> ActiveCell.AddComment MyDataObj.GetText
>
> saludos,
> hector.
>
> __ la consulta original __
> > La web es absolutamente la indicada para este caso.
> > He puesto lo siguiente siguiendo sus indicaciones en la macro que tengo:
> > Dim MyDataObj As New DataObject
> > Sub Macro2()
> > ' Macro2 Macro
> > ' Macro grabada el 10/10/2006 por Info
> > ' Acceso directo: CTRL+z
> > MyDataObj.GetFromClipboard
> > ActiveCell.AddComment = MyDataObj.GetText
> > End Sub
> > Donde:
> > 1- Creo la variable para almacenar texto del portapapeles
> > 2- Copio el texto del portapapeles en esa variable
> > 3- Introduzco el contenido de la variable en el campo comentarios de la celda actual.
> > Pero chico, no funciona. Soy nuevo en esto del VB y las macros a ver si pudieras darme algo de luz en esto...
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida