UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

hcuestat


Me echáis una mano para cerrar un proyecto que me lleva loca?

Tengo una hoja con formatos condicionales importantes en las celdas, en la cual se pegan continuamente datos de otros archivos.

Por esto, necesito alguna forma de bloquear la opción de pegado completo, permitiendo solo pegado especial valores o mejor dicho, que aunque se peguen datos, solo pegue los valores por defecto sin modificar el formato de las celdas.

¿Se os ocurre algo?

Mil gracias

davidmarin


hola no se si te sirva esta es la que utilizo para copiar solo valores
Código:
Sub  añadealbaran()
'COPIA  TODO  COMO  VALORES 
Range("B2:F25").Copy Range("I2").PasteSpecial  Paste:=xlPasteValuesAndNumberFormats,  Operation:=  _
xlNone, SkipBlanks:=False,  Transpose:=False
Application.CutCopyMode  =  False
End  Sub

 Very Happy

http://www.siremtec.com

hcuestat


Ante todo muchisimas gracias por echarme una mano DavidMarin, pues estoy desesperada con este tema.

No me funciona, me sigue permitiendo pegados completos (incluidos formatos) y la sub me da error. No soy demasiado experta en VBA y no consigo encontrar donde esta el error  Sad

jhon1904


hola, hcuestat


para poderte ayudar deberás ver las Normas para efectuar preguntas

y cada vez que habrás un tema deberá ir con su archivo de ejemplo

saludos

jhon

davidmarin


sube tu proyecto para echarle un ojo para ayudarte mejor o un ejemplo de tu proyecto por si tienes políticas de privacidad

http://www.siremtec.com

hcuestat


Hecho.

Subo un ejemplo con explicación de lo que necesito.

En el archivo en hoja "CONDICIONALES" Hay un cuadro con formato condicional en todas sus celdas de forma que si el valor es igual a 5 aparezca en rojo.

En la hoja "OTROS" Esta el mismo cuadro condicionado a que si el valor es 4, aparezca relleno en verde.

Lo que necesito es que si alguien copia y pega los datos de "OTROS" o de cualquier otro archivo a "CONDICIONALES" solo traslade los valores estando bloqueada la opcion de pegado completo.

No puedo proteger la hoja ni el libro ya que se copian y pegan datos a diario.

MIL GRACIAS¡¡¡¡¡¡¡
Archivos
EJEMPLO.xls
No tienes los permisos para descargar los archivos.
(33 KB)

jhon1904


hola, hcuestat


utiliza este codigo haber si te sirve

Sub Pegado()

' selecciona el rango que desea copear
Hoja1.Range("B5:G7").Copy
' selecciona la hoja donde sea pegar
Sheets("Hoja3").Select
' selecciona el rango donde desea pegar y hace pegado especial sin bordes
Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("B3").Select
End Sub


saludos
jhon

hcuestat


Jejejeje, por eso no queria poner el ejemplo, es complicado de explicar.

Lo intento explicar de otra forma. Lo que necesito es que copie lo que copie y venga de donde venga, al pegarlo en la hoja "CONDICIONALES", solo se peguen los valores de las celdas copiadas.

En el archivo real, toda la hoja tiene aplicado formato condicional en todas sus celdas y lo que se hace es copiar de otros archivos datos y pegar en esta. Por eso necesito proteger esta hoja de forma que unicamente se peguen los valores, insisto, sea cual sea ese valor y venga de donde venga.

Vamos que en la hoja, hagas lo que hagas, solo pegue valores

QUE PACIENCIA TENEIS¡¡¡

hcuestat


Hace tiempo, buscando una solución, encontre en un foro esta Macro que bloquea el pegado, pero lo bloquea completamente. Yo necesito que automaticamente al darle a pegar, solo pegue valores, no que bloquee la opcion pegar

Private Sub Workbook_SheetActivate(ByVal Sh As Object) ' Macro que no permite copiar y pegar en las celdas
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.CutCopyMode = True
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    Application.CutCopyMode = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CutCopyMode = True
End Sub

Igtelo


Hola a todos.

hcuestat, entiendo que no quieres que te alteren tu hoja final de trabajo, me imagino que varias personas le meten mano al archivo y no se preocupan por pasar sólo los valores.

Una forma sencilla y eficaz de lograrlo es la siguiente:

1.- Crea una hoja extra igual a tu hoja de trabajo final (donde tienes tus formatos)
2.- Oculta tu hoja de trabajo final para que no le metan mano.
3.- Las personas trabajarán en una copia fiel de tu hoja final, no importa que te pongan formatos.
4.- Ya de esa copia jala los valores a tu hoja que ocultaste.

Con copiar y pegado especial valores lo obtienes, sino quieres hacerlo manualmente Jhon y David ya te dieron códigos.
El chiste es que la gente piense que está trabajando en el original, pero lo está haciendo en una copia.

Espero te sirva la idea.
Saludos
Ignacio Téllez

11RESUELTO Repetir valor segun cantidad el 20/07/14, 09:23 am

hcuestat


Hola Igtelo y gracias por la ayuda.

Tampoco me sirve. En el archivo original se van pegando datos a diario y al final del mes tiene unas 40000 líneas de datos Shocked 

La única opción es que al pegar datos, independientemente del tipo de pegado, solo pegue valores.

Llevo un montón de meses intentándolo y ya empiezo a pensar que no es posible y me da rabia pues si no consigo hacer esta limitación, el archivo no funciona y lleva detrás un curro de formulación y VBA importante.

Bueno, gracias a todos de todas formas. Sois unos cracks

wibly


Hola hcuestat,

Una alternativa que se me ocurre es hacer una macro que al ejecutarla selecciones toda la hoja, borre los formatos y reglas de formatos condicionales y luego defina la regla para poner en rojo los valores iguales a "5". Creo que no sería dificil de hacer con el grabador de macros... igual si te parece que te sirve y no logras hacerlo te seguimos ayudando.

Saludos

Adrián

Igtelo


Hola a todos.

hcuestat te paso un ejemplo.
La macro pide el nombre del archivo, lo abre, pide el rango a copiar y te lo pasa como valores a tu archivo principal.
Dentro de VBA en el módulo1 encuentras explicación línea por línea para que te sea fácil modificar si lo requieres.

Hasta donde yo se, inhabilitar la función de copiado y dejar sólo copiar valores "NO" se puede, inhabilitas todo o nada. Con esto aseguras que siempre pasarás valores.

Saludos
Ignacio Téllez.
P.d: Ví que entraste después de que te dió una alternativa Wibly, ten la atención de responder. Sirva o no.
Archivos
hcuestat-Solo valores.zip
No tienes los permisos para descargar los archivos.
(33 KB)

14RESUELTO Permitir solo pegado especial valores el 22/07/14, 02:44 pm

hcuestat


Gracias  a todos por vuestra ayuda. Al final no tengo mas remedio que hacerlo mediante macros como decís pues no he encontrado otra opción.

Da gusto que te echen una mano cuando hace falta. MIL GRACIAS.

PD. Igtelo, no pude contestar antes pues entre desde el móvil.

Un saludo¡¡

Igtelo


Hola hcuestat.

Pues no necesariamente con macros, ya te dimos ideas y dices que tienes mucho VBA, entonces una macro más no creo que afecte...

Lo pongo como resuelto.

Saludos
Ignacio Téllez

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.