Bloqueo de datos ya introducidos

Tengo un archivo de Excel con dos hojas.

En la primera tengo todos los datos sobre los que quiero buscar.

En la segunda, con la función "BuscarV" le voy indicando los datos que quiero que me busque de la primera hoja, para que al final de la línea me haga un calculo.

Por ejemplo yo relleno 50 líneas.

Ahora necesito modificar algunos datos de la primera hoja, pero que no me modifique nada en las 50 líneas rellenas de la segunda, es decir, que si toco algún valor al que hago referencia en alguna de estas filas ya rellenas, que no se me cambien, que solo suceda esto en las líneas nuevas.

¿Cómo puedo hacerlo?

Muchas gracias. Y un saludo.

2 respuestas

Respuesta
1

Las fórmulas te traen el contenido de las celdas que le indicas... mientras tengas las fórmulas 'siempre' te van a mostrar esos contenidos, por lo que si los modificas las fórmulas te mostrarán esos datos actualizados... esto ya lo estás viendo, solo es una aclaración para Doppler.

La única manera de modificar los datos originales sin que se modifiquen los resultados es copiar las celdas con fórmulas y pegarlas como 'valores'.

Podrías mantener tu rango con fórmulas pero antes de realizar alguna modificación pasar ese rango a otro pegando como 'solo valores'.

Si necesitas ayuda para hacerlo con algún código, avisame y deja indicado bien el rango de las fórmulas y si se pueden pegar en la misma hoja.

¡Gracias! Ya había pensado en esa opción, pero pensé que se podría hacer de una forma más automática, ya que no querría depender de que otra persona lo haga o no, pero parece ser que no queda otra. Muchas gracias de todas formas.

Y podrías automatizarlo un poco. Antes de realizar algún cambio en la hoja origen ejecutar un pequeño código para que haga esos pasos. Pero nada más porque no tenés ningún evento o proceso sino que lo estás haciendo de modo manual. Por lo menos así parece.

Si necesitas ese código adjuntá aquí una imagen de tu hoja con fórmulas indicando cuáles son las col que las tienen.

Sdos.

PD) Si el tema quedó resuelto no olvides valorar la respuesta (Excelente o buena)

¡Gracias! Lo dejamos así, si veo que me da problemas y que necesito automatizarlo, retomo el tema. Muchas gracias.

La verdad es que pensándolo bien, si me puedes poner un ejemplo de como seria... ya sabes, el saber no ocupa lugar.

El rango de celdas a bloquear seria B2:I2, por ejemplo, y en todas las que me interesa bloquear tendrían la fórmula BusrcaV, y ya intentaría yo adaptarlo a lo que finalmente sea, por que es un archivo que sigo desarrollando y no tengo muy claro como de largo sera.

Muchas gracias.

Esta es la macro, solo ajusta el nombre de tu hoja con fórmulas y a partir de qué columna querrás la tabla 'solo valores'.

Entrá al Editor (con atajo ALT + F11), insertá un módulo y allí copiá lo siguiente:

Sub soloValores()
'x Elsamatilde
'activar la hoja que tiene las fórmulas
Sheets("Hoja2").Select
'última fila ocupada según col B
filx = Range("B" & Rows.Count).End(xlUp).Row
'copiar el rango B:I a otro rgo auxiliar como 'solo valores'
Range("B2:I" & filx).Copy
[L2].PasteSpecial (xlPasteValues)
'quitar modo de copiado
Application.CutCopyMode = False
[B2].Select
End Sub

Para ejecutarla podrías colocar un botón o un atajo de teclado o directamente desde menú Macros..... esto lo tengo explicado en la sección Macros de mi sitio.

Respuesta

¿Y por qué se van a modificar?

Entiendo que la única causa de que una fórmula excel (BUSCARV en este caso) "machaque" los datos de otras celdas es porque estás metiendo esos datos en las mismas celdas que la fórmula.

Se me cambia.

Pongo un ejemplo.

Tengo el siguiente cuadro, en el cual los números están rellenos con la función BuscarV.

Nombre aaa bbb ccc

Maria       10   20   30

Victor       40   40   40

Maria        10   20   30

Si yo voy ahora a donde hace referencia la función BuscarV, y modificado los datos que corresponden a la columna ccc, se me cambia en todos los registros, y yo lo que quiero es que se empiece a cambiar en los registros nuevos, y los antiguos que me los deje como estaban, ya que al tener un importe al final de la fila, al cambiar esto me descuadraría lo que en su día me cuadraba.

No se si me explicado mejor, o prefieres otro ejemplo.

Muchas gracias por tu tiempo.

Pues no queda claro, tampoco. Pero sospecho lo que tal vez quieres decir.

¿Me puedes pegar aquí las dos primeras fórmulas BUSCARV? Es decir, las de la primera y las de la segunda fila donde comienzas la búsqueda.

Esta son las dos fórmulas del ejemplo.

=BUSCARV($A2;$Hoja2.$A$1:$D$5;2;0)

=BUSCARV($A2;$Hoja2.$A$1:$D$5;3;0)

Voy a intentar explicarme mejor con imágenes y ejemplos.

En la siguiente imagen es donde meto el nombre en la columna A y en la B, C y D es donde pongo las fórmulas. Hoja 2.

En la siguiente es de donde saco los datos. Hoja 1.

Si yo ahora modifico en la Hoja 1 el valor que tenemos de cualquier columna B, C o D, me lo cambia en todos los registro que ya había introducido en la Hoja 2.

Necesito poder modificar los números de la Hoja 1 y que no me los cambie en la Hoja 2 a no ser que sea un nuevo registro.

Espero haberme explicado así mejor, que ya me quedo sin argumentos.,-)

Muchas gracias-

Creo que tienes un error en esas fórmulas.

La fórmula correcta, si tienes los datos en Hoja2 sería:

=BUSCARV(Hoja2!$A2;Hoja2!$A$1:$D$5;2;0)   para la columna B.  

Para la columna C, cambias el 2 por el 3. Para la D es el 4.

Prueba y me dices.

De todas formas, si solo se trata de copiar los datos que hay en la hoja2, también podrías referenciar directamente la celda de la hoja2.

Por ejemplo:  =Hoja2!B2   =Hoja2!C2   = Hoja2!D2

Basta teclear una y arrastrar la fórmula.

La fórmula está bien, yo le digo que busque en la hoja 1 el valor que introduzco en la celda A2 de la Hoja 2, para que me devuelva el valor que quiero, y funciona como quiero.

No puedo hacer referencia directamente por que esto es un ejemplo con 2 registros, el original tiene más de 100, y tendré que ir introduciendo un dato en la columna A y que me devuelva los que quiero en el resto de columnas, y van variando y sin orden lógico.

Muchas gracias.

Lo siento. Tengo la impresión de que no nos entendemos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas