Cambiar nombres de las celdas en un rango

El dilema es el siguiente:
En una planilla Excel cualquiera se seleccionan unas celdas cualquiera, busco un macro que al tener seleccionadas estas celdas lea lo que tiene cada celda, luego busque este nombre dentro de una matriz, que este dentro del código(que no la vea el usuario), y luego cambie lo que dice en cada celda por lo que corresponde en la matriz.
Un ejemplo:
Si en unas celdas dice:
cl
br
Las selecciono apretó ejecutar el macro y luego en las celdas aparece escrito:
Chile
¿Brasil
se entiende?
Espero que nos sea muy complicado!
De antemano gracias.

1 Respuesta

Respuesta
1
Puedes hacerlo de las siguientes dios maneras:
Const cl = "cl"
Const br = "br"
Const mx = "mx"
Const ar = "ar"
Range("a1").Select
Do While Not IsEmpty(ActiveCell)
Select Case ActiveCell
    Case Is = cl
            ActiveCell = Sheets("hoja3").Range("b1")
    End Select
ActiveCell.Offset(1, 0).Select
Loop
En esta tendrías que definir una lista de constantes para decirle a la macro que hacer en caso de que el valor de la celda sea igual al de las constantes.
Y tendrías que estar modificando el código cada vez que incluyeras alguna nueva constante o valor.
El siguiente es un poco más sencillo de dar mantenimiento ya que en este actualizas directamente en las hojas de excel y no es necesario modificar el código
Range("a1").Select
    Do While Not IsEmpty(ActiveCell)
    ActiveCell.Offset(0, 1).Select
    Selection.FormulaR1C1 = "=VLOOKUP(RC1,Hoja3!C1:C2,2,0)"
    Selection.Copy
    ActiveCell.Offset(0, -1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveCell.Offset(0, 1).Select
    Selection.ClearContents
    ActiveCell.Offset(1, -1).Select
   Loop
En ambos casos puedes dejar la hoja oculta o las celdas y el código funcionara correctamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas