Con un macro.. ¿Cómo rellenar automáticamente una celda según el valor de lo que se escribe en otra?

Paso mucho tiempo buscando (muchísimo), y solo de que no encuentro la solución buscando me decido a preguntar.

De que llega un momento así siempre me acuerdo de todoexpertos, donde en otras ocasiones me han respondido excelentemente bien.

Voy al asunto:

Como ejemplo, diré que en la Hoja1 tengo 2 columnas de una tabla, que empiezan en C5 y D5.

La columna D la relleno desde una lista desplegable dentro de un formulario (la lista está en la Hoja2).

Bien, lo que busco es que si de la lista desplegable elijo "Manzanas" y la inserto, la celda de al lado (Col C) se rellene automáticamente con el texto "Frutas"; Si elijo "Peras" o "Plátanos" exactamente igual; pero si de la lista elijo algo que no sean Frutas se rellene con la categoría del elemento elegido; por ejemplo, si elijo "Yogurt" o "Leche" la celda homónima de la col C se rellene con el texto "Lácteos"; y bueno, así con varios tipos de elementos.

He encontrado algunas soluciones sencillas por internet, pero no me sirven por 2 motivos:

1- Necesito que sea un macro y no una formula que se repita continuamente en las celdas que vaya añadiendo, ya que me hará el libro más lento o pesado.

2- Necesito que se puedan modificar las categorías y/o sus elementos con relativa facilidad, por si preciso añadir más categorías o más elementos a una categoría.

1 Respuesta

Respuesta
1

Pero en la hoja2 tienes la lista de frutas (manzana, pera, plátano, etc) y a un lado de cada fruta tienes que pertenecen a la categoría: ¿Frutas?

¿Lo mismo para todos los elementos?

Puedes enviarme un archivo con ejemplos y te creo la macro.

Hola

No, tengo las listas separadas.

Son 2 listas desplegables las que me aparecen en el formulario ahora; es decir, yo selecciono manualmente tanto la categoría (Ejemplo: Frutas) como el elemento (Ejemplo: Peras).

Como cada elemento va siempre asociado a una categoría, se me había ocurrido que para facilitar las cosas podría prescindir en el formulario de la lista desplegable de categorías y que se escribiera automáticamente en la celda correspondiente al escribir el elemento asociado al lado.

No tengo inconveniente en modificar las listas de la Hoja2 como mejor creas conveniente; solo necesito que no sea demasiado complejo editar las listas más adelante y que funcione con macro.

Como mi libro es bastante complejo te envío un ejemplo simple, solo con lo que pido, para facilitarte las cosas.

Muchas gracias por tu ayuda.

Te envié a tu correo el archivo con la macro, la propuesta que te estoy enviando es una alternativa, existen otras, pero lo más importante es, que cualquier alternativa va a funcionar con los comentarios que te puse en la hoja2, si no tienes lo que dicen mis comentarios, cualquier alternativa NO funcionará BIEN.

Saludos. Dam

Si la alternativa cumple con lo que necesitas, podrías de favor finalizar la pregunta.

Genial trabajo; No se puede hacer mejor, de verdad.

Con tu permiso, muestro el macro por si a alguien más le sirve:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("D")) Is Nothing Then
cat = Application.VLookup(Target.Value, Sheets("Hoja2").Range("E:F"), 2, 0)
If IsError(cat) = True Then
' No lo encontró
Cells(Target.Row, "C") = ""
Else
Cells(Target.Row, "C") = cat
End If
End If
End Sub

En la hoja2 hay que tener la lista de frutas (manzana, pera, plátano,etc) y a un lado de cada fruta la categoría a la que pertenecen : Frutas, y así con el resto de categorías y elementos.

Muchas gracias por tu ayuda. ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas