Pegado de Valores

26/01/2005 - 19:21 por Angelo | Informe spam
Buenas como estan?

Tengo una preguntita de algo que necesito hacer, por ej. tengo seleccionado
lo siguiente el rango b1:b5 y el b9:b15 (son muchos mas rangos) quisiera
saber puedo hacer para copiar y solamente pegar valores en rangos multiples,
cada vez que lo hago me manda el error que no puedo ejecutar este comando en
selecciones multiples, pero me iamgino que esto se podría hacer con algún
codígo, lo que pasa es que extraigo datos de otros archivos con formulas,
pero despues quiero que estos datos queden solo como valores, y tengo que
seleccionar rango por rango y copiar y pegar valores, quisera que pudiera
selleccionar a la vez varios rangos y copiarlos y pegarlos como valores pero
todos a la vez, y no puedo :(, espero que me puedan ayudar,

Saludos,
Angelo...!

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
26/01/2005 - 19:57 | Informe spam
"Angelo" escribió en el mensaje news:
Buenas como estan?

Tengo una preguntita de algo que necesito hacer, por ej. tengo seleccionado
lo siguiente el rango b1:b5 y el b9:b15 (son muchos mas rangos) quisiera
saber puedo hacer para copiar y solamente pegar valores en rangos multiples,
cada vez que lo hago me manda el error que no puedo ejecutar este comando en
selecciones multiples, pero me iamgino que esto se podría hacer con algún
codígo, lo que pasa es que extraigo datos de otros archivos con formulas,
pero despues quiero que estos datos queden solo como valores, y tengo que
seleccionar rango por rango y copiar y pegar valores, quisera que pudiera
selleccionar a la vez varios rangos y copiarlos y pegarlos como valores pero
todos a la vez, y no puedo :(, espero que me puedan ayudar,

Saludos,
Angelo...!




Prueba con el siguiente código, pero hazlo con una copia de los datos, no vaya a ser que no haga lo que necesitas y "la jeringuemos" :-)


Sub prueba()
Dim rngA As Range
Dim strDirec As String, mtr As Variant
Dim n As Integer

With Selection
For Each rngA In .Areas
strDirec = strDirec & rngA.Address & ","
Next rngA
End With

mtr = Split(Left(strDirec, Len(strDirec) - 1), ",")

For n = LBound(mtr) To UBound(mtr)
Selection.Parent.Range(mtr(n)).Copy
Selection.Parent.Range(mtr(n)).PasteSpecial Paste:=xlPasteValues
Next n

Application.CutCopyMode = False

Set rngA = Nothing
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#2 Angelo
26/01/2005 - 20:17 | Informe spam
Excelente Fernando, Muchas gracias, me has quitado un millon de trabajo de
encima, lo que voy a hacer ahora es asignarle esa macro al botón de pegado de
valores en el libro personal para que me quede esa en vez, de lo normal,
espero eso no traiga ninguna consecuencia verdad?

Saludos,

"Fernando Arroyo" escribió:

"Angelo" escribió en el mensaje news:
> Buenas como estan?
>
> Tengo una preguntita de algo que necesito hacer, por ej. tengo seleccionado
> lo siguiente el rango b1:b5 y el b9:b15 (son muchos mas rangos) quisiera
> saber puedo hacer para copiar y solamente pegar valores en rangos multiples,
> cada vez que lo hago me manda el error que no puedo ejecutar este comando en
> selecciones multiples, pero me iamgino que esto se podría hacer con algún
> codígo, lo que pasa es que extraigo datos de otros archivos con formulas,
> pero despues quiero que estos datos queden solo como valores, y tengo que
> seleccionar rango por rango y copiar y pegar valores, quisera que pudiera
> selleccionar a la vez varios rangos y copiarlos y pegarlos como valores pero
> todos a la vez, y no puedo :(, espero que me puedan ayudar,
>
> Saludos,
> Angelo...!


Prueba con el siguiente código, pero hazlo con una copia de los datos, no vaya a ser que no haga lo que necesitas y "la jeringuemos" :-)


Sub prueba()
Dim rngA As Range
Dim strDirec As String, mtr As Variant
Dim n As Integer

With Selection
For Each rngA In .Areas
strDirec = strDirec & rngA.Address & ","
Next rngA
End With

mtr = Split(Left(strDirec, Len(strDirec) - 1), ",")

For n = LBound(mtr) To UBound(mtr)
Selection.Parent.Range(mtr(n)).Copy
Selection.Parent.Range(mtr(n)).PasteSpecial Paste:=xlPasteValues
Next n

Application.CutCopyMode = False

Set rngA = Nothing
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel

Respuesta Responder a este mensaje
#3 Fernando Arroyo
27/01/2005 - 09:10 | Informe spam
"Angelo" escribió en el mensaje news:
Excelente Fernando, Muchas gracias, me has quitado un millon de trabajo de
encima,



Me alegro :-)

lo que voy a hacer ahora es asignarle esa macro al botón de pegado de
valores en el libro personal para que me quede esa en vez, de lo normal,
espero eso no traiga ninguna consecuencia verdad?




Está claro que tú eres quien mejor conoce tanto tu propia forma de trabajar como lo que necesitas hacer, pero en cualquier caso debo recordarte que tras ejecutar el código la opción 'Deshacer' de Excel se pierde, así que quizás sería conveniente que el código tuviese que ser llamado de alguna forma más "consciente", más que nada para prevenir que se pudiera ejecutar de forma accidental.

Saludos,



Un saludo.


Fernando Arroyo
MS MVP - Excel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida