Pegado Especial - Paste Values

19/11/2008 - 17:24 por JC | Informe spam
Hola a Tod@s:

De nuevo al ataque, a daros algo en que pensar, ya que como me lo habeis
resuelto siempre todo... Pues, me obligáis a continuar preguntadoos... :)

En esta ocasión y tras haceros caso y empezar a utilizar este tipo de
sentencias:

Worksheets("BOM_DESMAN").Range("D4:H19").Copy _
Destination:=Worksheets("FICHA").Range("D4")

Se me plantea el problema de que el rango: D4:H19, de la hoja BOM_DESMAN es
un rango con formulación.
Y cuando llega a pegar en el rango D4, de la hoja FICHA, me pega las
fórmulas. Cuestión que obviamente me crea problemas, porque el resultado es
erroneo.

He intentado incrustar de varias maneras, comandos del tipo "PasteSpecial
Paste:=xlPasteValues", pero no he encontrado la sintaxis adecuada y me da
nuevamente error.
Me podríais, por favor, ayudar de nuevo y decirme, si hay alguna forma de
que, sin variar el tipo de sentencia, poder hacer de que cuando llegue a
pegar a su destino, pegue tan solo valores, respetando el formato original.

Como siempre mil sinceras gracias por vuestro interés y apoyo.

Un atento saludo.

JC

Preguntas similare

Leer las respuestas

#1 juanma.marti
19/11/2008 - 17:46 | Informe spam
On 19 nov, 14:24, JC wrote:
Hola a :

De nuevo al ataque, a daros algo en que pensar, ya que como me lo habeis
resuelto siempre todo... Pues, me obligáis a continuar preguntadoos... :)

En esta ocasión y tras haceros caso y empezar a utilizar este tipo de
sentencias:

    Worksheets("BOM_DESMAN").Range("D4:H19").Copy _
    Destination:=Worksheets("FICHA").Range("D4")

Se me plantea el problema de que el rango: D4:H19, de la hoja BOM_DESMAN es
un rango con formulación.
Y cuando llega a pegar en el rango D4, de la hoja FICHA, me pega las
fórmulas. Cuestión que obviamente me crea problemas, porque el resultado es
erroneo.

He intentado incrustar de varias maneras, comandos del tipo "PasteSpecial
Paste:=xlPasteValues", pero no he encontrado la sintaxis adecuada y me da
nuevamente error.
Me podríais, por favor, ayudar de nuevo y decirme, si hay alguna forma de
que, sin variar el tipo de sentencia, poder hacer de que cuando llegue a
pegar a su destino, pegue tan solo valores, respetando el formato original.

Como siempre mil sinceras gracias por vuestro interés y apoyo.

Un atento saludo.

JC



Yo lo haria de otra forma:

Worksheets("BOM_DESMAN").Activate
Range("D4:H19").Copy
Worksheets("FICHA").Activate
Range("D4").PasteSpecial Paste:=xlPasteValues

Siempre lo hice asi y me funcionó... fijate capaz te sirve.

Podes probar tambien con:

Worksheets("FICHA").Activate
Range("D4:H19").PasteSpecial Paste:=xlPasteValues


Saludos
Respuesta Responder a este mensaje
#2 Cacho
19/11/2008 - 21:17 | Informe spam
Hola! JC. Te muestro dos variantes más:

1º) Esta variante equivale a la que te mostrara "Juanma" pero sin
movilizarse entre las hojas del libro:

Worksheets("BOM_DESMAN").[D4:H19].Copy
Worksheets("FICHA").[D4].PasteSpecial xlValues


2º) Y esta variante aprovecha el método Evaluate:

Worksheets("FICHA").[D4:H19]=[transpose(transpose(BOM_DESMAN!D4:H19))]


Saludos, Cacho.
Respuesta Responder a este mensaje
#3 Héctor Miguel
19/11/2008 - 22:55 | Informe spam
hola, JC !

... tras haceros caso y empezar a utilizar este tipo de sentencias:
Worksheets("BOM_DESMAN").Range("D4:H19").Copy _
Destination:=Worksheets("FICHA").Range("D4")
Se me plantea el problema de que el rango: D4:H19, de la hoja BOM_DESMAN es un rango con formulacion.
Y cuando llega a pegar en el rango D4, de la hoja FICHA, me pega las formulas.
Cuestion que obviamente me crea problemas, porque el resultado es erroneo.
He intentado incrustar de varias maneras, comandos del tipo "PasteSpecial Paste:=xlPasteValues"
pero no he encontrado la sintaxis adecuada y me da nuevamente error



una alternativa mas (sencilla y directa)...

[ficha!d4:h19].value = [boom_desman!d4:h19].value

saludos,
hector.
Respuesta Responder a este mensaje
#4 JC
20/11/2008 - 08:58 | Informe spam
Mil gracias... (como siempre) !!!

No se pueden ofrecer más opciones, en menos tiempo.
Gracias Juanma, por tu solución... pero ese tipo de comandos es el que estoy
intentando abandonar... Tú utilizas el "activate" y yo el "select", pero no
hacemos más que ir y venir entre hojas y libros y acaba no siendo práctico.
Pero mi sincero agradecimiento por ayudar.
Gracias Cacho y encantado, te he leido en alguna ocasión en respuestas a
otros Compañeros de Foro. Tu respuesta y la sintaxis son las que yo
buscaba... lo que me tienes que disculpar (por mi falta de nivel), es no
entender lo de: "Aprovechar el método "evaluate"... ignoro lo que es y como
se puede aprovechar... intentaré ponerme poco a poco al día. Mil gracias de
nuevo por tu ayuda y precisión en la respuesta.
Y lo que no se, es que decirle, al "Maestro" Héctor Miguel, porque su
solución, ya no solo me ha dejado atontado por ser tan obvia y simple, sino,
porque me abre un abanico enorme de posibilidades, a la hora de mejorar mi
lenguaje y reducir líneas en mis textos de VBA.
Sé que a lo peor me extiendo demasiado en mis contestaciones a las
respuestas que me haceis siempre, pero no puedo por menos agradecer a los
tres, vuestro enorme interés, las ganas de hacerme crecer con vuestros
conocimientos y como siempre sacarme de un "atolladero" linguistico, que como
en el inglés... siempre me falta vocabolario. Y hay veces que en el trabajo,
cuando no consigues dar con una rápìda y eficiente solución, lo pasas
francamente mal.
Gracias Juanma, Gracias Cacho y Gracias una vez más Héctor Miguel... Por
seguir haciendonos la vida mucho más fácil y encima tener la oportunidad de
aprender.

Un abrazo y hasta siempre Amigos.

JC
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida